On Sun, 6 Oct 2019 15:22:04 +0200 Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote: > Add the possibility to enable/disable wakeup source through > st_sensors_platform_data and not only through device tree > > Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> I'm going to assume you need this for something... In general I'm not that keen on expanding platform data support. Applied, Thanks, Jonathan > --- > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 ++++-- > include/linux/platform_data/st_sensors_pdata.h | 2 ++ > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > index b0623b837abd..a2a0ac81e3d3 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c > @@ -2089,7 +2089,9 @@ static int st_lsm6dsx_irq_setup(struct st_lsm6dsx_hw *hw) > int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, > struct regmap *regmap) > { > + struct st_sensors_platform_data *pdata = dev->platform_data; > const struct st_lsm6dsx_shub_settings *hub_settings; > + struct device_node *np = dev->of_node; > struct st_lsm6dsx_hw *hw; > const char *name = NULL; > int i, err; > @@ -2152,8 +2154,8 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, > return err; > } > > - if (dev->of_node && > - of_property_read_bool(dev->of_node, "wakeup-source")) > + if ((np && of_property_read_bool(np, "wakeup-source")) || > + (pdata && pdata->wakeup_source)) > device_init_wakeup(dev, true); > > return 0; > diff --git a/include/linux/platform_data/st_sensors_pdata.h b/include/linux/platform_data/st_sensors_pdata.h > index 30929c22227d..e40b28ca892e 100644 > --- a/include/linux/platform_data/st_sensors_pdata.h > +++ b/include/linux/platform_data/st_sensors_pdata.h > @@ -18,12 +18,14 @@ > * @open_drain: set the interrupt line to be open drain if possible. > * @spi_3wire: enable spi-3wire mode. > * @pullups: enable/disable i2c controller pullup resistors. > + * @wakeup_source: enable/disable device as wakeup generator. > */ > struct st_sensors_platform_data { > u8 drdy_int_pin; > bool open_drain; > bool spi_3wire; > bool pullups; > + bool wakeup_source; > }; > > #endif /* ST_SENSORS_PDATA_H */