nfc: st-nci: set is_ese_present and is_uicc_present properly
authorChristophe Ricard <christophe.ricard@gmail.com>
Sat, 30 Apr 2016 07:12:39 +0000 (09:12 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Tue, 3 May 2016 23:31:07 +0000 (01:31 +0200)
When they're present, set is_ese_present and set is_uicc_present
to the value describe in their package description.

So far is_ese_present and is_uicc_present was set to true if their
property was present.

Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/st-nci/i2c.c
drivers/nfc/st-nci/spi.c

index 6645972..a6a1977 100644 (file)
@@ -214,6 +214,7 @@ static int st_nci_i2c_acpi_request_resources(struct i2c_client *client)
        const struct acpi_device_id *id;
        struct gpio_desc *gpiod_reset;
        struct device *dev;
+       u8 tmp;
 
        if (!client)
                return -EINVAL;
@@ -237,10 +238,18 @@ static int st_nci_i2c_acpi_request_resources(struct i2c_client *client)
 
        phy->irq_polarity = irq_get_trigger_type(client->irq);
 
-       phy->se_status.is_ese_present =
-                               device_property_present(dev, "ese-present");
-       phy->se_status.is_uicc_present =
-                               device_property_present(dev, "uicc-present");
+       phy->se_status.is_ese_present = false;
+       phy->se_status.is_uicc_present = false;
+
+       if (device_property_present(dev, "ese-present")) {
+               device_property_read_u8(dev, "ese-present", &tmp);
+               phy->se_status.is_ese_present = tmp;
+       }
+
+       if (device_property_present(dev, "uicc-present")) {
+               device_property_read_u8(dev, "uicc-present", &tmp);
+               phy->se_status.is_uicc_present = tmp;
+       }
 
        return 0;
 }
index e015015..51a863f 100644 (file)
@@ -229,6 +229,7 @@ static int st_nci_spi_acpi_request_resources(struct spi_device *spi_dev)
        const struct acpi_device_id *id;
        struct gpio_desc *gpiod_reset;
        struct device *dev;
+       u8 tmp;
 
        if (!spi_dev)
                return -EINVAL;
@@ -252,10 +253,18 @@ static int st_nci_spi_acpi_request_resources(struct spi_device *spi_dev)
 
        phy->irq_polarity = irq_get_trigger_type(spi_dev->irq);
 
-       phy->se_status.is_ese_present =
-                               device_property_present(dev, "ese-present");
-       phy->se_status.is_uicc_present =
-                               device_property_present(dev, "uicc-present");
+       phy->se_status.is_ese_present = false;
+       phy->se_status.is_uicc_present = false;
+
+       if (device_property_present(dev, "ese-present")) {
+               device_property_read_u8(dev, "ese-present", &tmp);
+               tmp = phy->se_status.is_ese_present;
+       }
+
+       if (device_property_present(dev, "uicc-present")) {
+               device_property_read_u8(dev, "uicc-present", &tmp);
+               tmp = phy->se_status.is_uicc_present;
+       }
 
        return 0;
 }