This patch adds DT support for the lps331ap barometer sensor. Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> --- .../devicetree/bindings/iio/pressure/lps331ap.txt | 41 ++++++++++++++++++++ drivers/iio/pressure/st_pressure_i2c.c | 11 +++++- drivers/iio/pressure/st_pressure_spi.c | 11 +++++- 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/pressure/lps331ap.txt diff --git a/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt b/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt new file mode 100644 index 0000000..e05b45e --- /dev/null +++ b/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt @@ -0,0 +1,41 @@ +* STMicroelectronics LPS331AP barometer sensor + +Required properties: + + - compatible : should be "st,lps331ap" + - reg : the I2C address of the barometer + +Optional properties: + + - drdy-int-pin : redirect DRDY on pin INT1 (1) or pin INT2 (2) (u8) + - interrupt-parent : phandle to the interrupt map subnode + - interrupts : interrupt mapping for LPS331AP interrupt sources: + 2 sources: 0 - data ready, 1 - threshold event + - irq-map : irq sub-node defining interrupt map + (all properties listed below are required): + - #interrupt-cells : should be 1 + - #address-cells : should be 0 + - #size-cells : should be 0 + - interrupt-map : table of entries consisting of three child elements: + - unit_interrupt_specifier - 0 : data ready, 1 : threshold event + - interrupt parent phandle + - parent unit interrupt specifier consisiting of two elements: + - index of the interrupt within the controller + - flags : should be 0 + +Example: + +lps331ap@5d { + compatible = "st,lps331ap"; + reg = <0x5d>; + drdy-int-pin = /bits/ 8 <2>; + interrupt-parent = <&irq_map>; + interrupts = <0>, <1>; + + irq_map: irq-map { + #interrupt-cells = <1>; + #address-cells = <0>; + #size-cells = <0>; + interrupt-map = <0 &gpf0 5 0>; + }; +}; diff --git a/drivers/iio/pressure/st_pressure_i2c.c b/drivers/iio/pressure/st_pressure_i2c.c index 7cebcc7..1683ebe 100644 --- a/drivers/iio/pressure/st_pressure_i2c.c +++ b/drivers/iio/pressure/st_pressure_i2c.c @@ -56,15 +56,24 @@ static int st_press_i2c_remove(struct i2c_client *client) } static const struct i2c_device_id st_press_id_table[] = { - { LPS331AP_PRESS_DEV_NAME }, + { "st,lps331ap" }, {}, }; MODULE_DEVICE_TABLE(i2c, st_press_id_table); +#ifdef CONFIG_OF +static const struct of_device_id lps331ap_of_match[] = { + { .compatible = "st,lps331ap", }, + { } +}; +MODULE_DEVICE_TABLE(of, lps331ap_of_match); +#endif + static struct i2c_driver st_press_driver = { .driver = { .owner = THIS_MODULE, .name = "st-press-i2c", + .of_match_table = of_match_ptr(lps331ap_of_match), }, .probe = st_press_i2c_probe, .remove = st_press_i2c_remove, diff --git a/drivers/iio/pressure/st_pressure_spi.c b/drivers/iio/pressure/st_pressure_spi.c index 17a1490..05c30d6 100644 --- a/drivers/iio/pressure/st_pressure_spi.c +++ b/drivers/iio/pressure/st_pressure_spi.c @@ -55,15 +55,24 @@ static int st_press_spi_remove(struct spi_device *spi) } static const struct spi_device_id st_press_id_table[] = { - { LPS331AP_PRESS_DEV_NAME }, + { "st,lps331ap" }, {}, }; MODULE_DEVICE_TABLE(spi, st_press_id_table); +#ifdef CONFIG_OF +static const struct of_device_id lps331ap_of_match[] = { + { .compatible = "st,lps331ap", }, + { } +}; +MODULE_DEVICE_TABLE(of, lps331ap_of_match); +#endif + static struct spi_driver st_press_driver = { .driver = { .owner = THIS_MODULE, .name = "st-press-spi", + .of_match_table = of_match_ptr(lps331ap_of_match), }, .probe = st_press_spi_probe, .remove = st_press_spi_remove, -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html