Message ID | 20201101122833.1111424-2-linus.walleij@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/3] iio: accel: bmc150-accel: Add DT bindings | expand |
On Sun, 1 Nov 2020 13:28:32 +0100 Linus Walleij <linus.walleij@linaro.org> wrote: > This adds support for the BMA222 version of this sensor, > found in for example the Samsung GT-I9070 mobile phone. > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Looks good to me. Jonathan > --- > drivers/iio/accel/bmc150-accel-core.c | 17 +++++++++++++++++ > drivers/iio/accel/bmc150-accel-i2c.c | 4 ++++ > drivers/iio/accel/bmc150-accel-spi.c | 2 ++ > drivers/iio/accel/bmc150-accel.h | 1 + > 4 files changed, 24 insertions(+) > > diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c > index 48435865fdaf..0dafe4052856 100644 > --- a/drivers/iio/accel/bmc150-accel-core.c > +++ b/drivers/iio/accel/bmc150-accel-core.c > @@ -5,6 +5,7 @@ > * - BMI055 > * - BMA255 > * - BMA250E > + * - BMA222 > * - BMA222E > * - BMA280 > * > @@ -1013,6 +1014,8 @@ static const struct iio_event_spec bmc150_accel_event = { > IIO_CHAN_SOFT_TIMESTAMP(3), \ > } > > +static const struct iio_chan_spec bma222_accel_channels[] = > + BMC150_ACCEL_CHANNELS(8); > static const struct iio_chan_spec bma222e_accel_channels[] = > BMC150_ACCEL_CHANNELS(8); > static const struct iio_chan_spec bma250e_accel_channels[] = > @@ -1063,6 +1066,20 @@ static const struct bmc150_accel_chip_info bmc150_accel_chip_info_tbl[] = { > {153277, BMC150_ACCEL_DEF_RANGE_8G}, > {306457, BMC150_ACCEL_DEF_RANGE_16G} }, > }, > + [bma222] = { > + .name = "BMA222", > + .chip_id = 0x03, > + .channels = bma222_accel_channels, > + .num_channels = ARRAY_SIZE(bma222_accel_channels), > + /* > + * The datasheet page 17 says: > + * 15.6, 31.3, 62.5 and 125 mg per LSB. > + */ > + .scale_table = { {156000, BMC150_ACCEL_DEF_RANGE_2G}, > + {313000, BMC150_ACCEL_DEF_RANGE_4G}, > + {625000, BMC150_ACCEL_DEF_RANGE_8G}, > + {1250000, BMC150_ACCEL_DEF_RANGE_16G} }, > + }, > [bma222e] = { > .name = "BMA222E", > .chip_id = 0xF8, > diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c > index 06021c8685a7..bba92dd33179 100644 > --- a/drivers/iio/accel/bmc150-accel-i2c.c > +++ b/drivers/iio/accel/bmc150-accel-i2c.c > @@ -5,6 +5,7 @@ > * - BMI055 > * - BMA255 > * - BMA250E > + * - BMA222 > * - BMA222E > * - BMA280 > * > @@ -54,6 +55,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { > {"BMI055A", bmi055}, > {"BMA0255", bma255}, > {"BMA250E", bma250e}, > + {"BMA222", bma222}, > {"BMA222E", bma222e}, > {"BMA0280", bma280}, > {"BOSC0200"}, > @@ -66,6 +68,7 @@ static const struct i2c_device_id bmc150_accel_id[] = { > {"bmi055_accel", bmi055}, > {"bma255", bma255}, > {"bma250e", bma250e}, > + {"bma222", bma222}, > {"bma222e", bma222e}, > {"bma280", bma280}, > {} > @@ -78,6 +81,7 @@ static const struct of_device_id bmc150_accel_of_match[] = { > { .compatible = "bosch,bmi055_accel" }, > { .compatible = "bosch,bma255" }, > { .compatible = "bosch,bma250e" }, > + { .compatible = "bosch,bma222" }, > { .compatible = "bosch,bma222e" }, > { .compatible = "bosch,bma280" }, > { }, > diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c > index 2a8c311d6f5a..74a8aee4f612 100644 > --- a/drivers/iio/accel/bmc150-accel-spi.c > +++ b/drivers/iio/accel/bmc150-accel-spi.c > @@ -39,6 +39,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { > {"BMI055A", bmi055}, > {"BMA0255", bma255}, > {"BMA250E", bma250e}, > + {"BMA222", bma222}, > {"BMA222E", bma222e}, > {"BMA0280", bma280}, > { }, > @@ -50,6 +51,7 @@ static const struct spi_device_id bmc150_accel_id[] = { > {"bmi055_accel", bmi055}, > {"bma255", bma255}, > {"bma250e", bma250e}, > + {"bma222", bma222}, > {"bma222e", bma222e}, > {"bma280", bma280}, > {} > diff --git a/drivers/iio/accel/bmc150-accel.h b/drivers/iio/accel/bmc150-accel.h > index ae6118ae11b1..f5427103574d 100644 > --- a/drivers/iio/accel/bmc150-accel.h > +++ b/drivers/iio/accel/bmc150-accel.h > @@ -9,6 +9,7 @@ enum { > bmi055, > bma255, > bma250e, > + bma222, > bma222e, > bma280, > };
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c index 48435865fdaf..0dafe4052856 100644 --- a/drivers/iio/accel/bmc150-accel-core.c +++ b/drivers/iio/accel/bmc150-accel-core.c @@ -5,6 +5,7 @@ * - BMI055 * - BMA255 * - BMA250E + * - BMA222 * - BMA222E * - BMA280 * @@ -1013,6 +1014,8 @@ static const struct iio_event_spec bmc150_accel_event = { IIO_CHAN_SOFT_TIMESTAMP(3), \ } +static const struct iio_chan_spec bma222_accel_channels[] = + BMC150_ACCEL_CHANNELS(8); static const struct iio_chan_spec bma222e_accel_channels[] = BMC150_ACCEL_CHANNELS(8); static const struct iio_chan_spec bma250e_accel_channels[] = @@ -1063,6 +1066,20 @@ static const struct bmc150_accel_chip_info bmc150_accel_chip_info_tbl[] = { {153277, BMC150_ACCEL_DEF_RANGE_8G}, {306457, BMC150_ACCEL_DEF_RANGE_16G} }, }, + [bma222] = { + .name = "BMA222", + .chip_id = 0x03, + .channels = bma222_accel_channels, + .num_channels = ARRAY_SIZE(bma222_accel_channels), + /* + * The datasheet page 17 says: + * 15.6, 31.3, 62.5 and 125 mg per LSB. + */ + .scale_table = { {156000, BMC150_ACCEL_DEF_RANGE_2G}, + {313000, BMC150_ACCEL_DEF_RANGE_4G}, + {625000, BMC150_ACCEL_DEF_RANGE_8G}, + {1250000, BMC150_ACCEL_DEF_RANGE_16G} }, + }, [bma222e] = { .name = "BMA222E", .chip_id = 0xF8, diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c index 06021c8685a7..bba92dd33179 100644 --- a/drivers/iio/accel/bmc150-accel-i2c.c +++ b/drivers/iio/accel/bmc150-accel-i2c.c @@ -5,6 +5,7 @@ * - BMI055 * - BMA255 * - BMA250E + * - BMA222 * - BMA222E * - BMA280 * @@ -54,6 +55,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { {"BMI055A", bmi055}, {"BMA0255", bma255}, {"BMA250E", bma250e}, + {"BMA222", bma222}, {"BMA222E", bma222e}, {"BMA0280", bma280}, {"BOSC0200"}, @@ -66,6 +68,7 @@ static const struct i2c_device_id bmc150_accel_id[] = { {"bmi055_accel", bmi055}, {"bma255", bma255}, {"bma250e", bma250e}, + {"bma222", bma222}, {"bma222e", bma222e}, {"bma280", bma280}, {} @@ -78,6 +81,7 @@ static const struct of_device_id bmc150_accel_of_match[] = { { .compatible = "bosch,bmi055_accel" }, { .compatible = "bosch,bma255" }, { .compatible = "bosch,bma250e" }, + { .compatible = "bosch,bma222" }, { .compatible = "bosch,bma222e" }, { .compatible = "bosch,bma280" }, { }, diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c index 2a8c311d6f5a..74a8aee4f612 100644 --- a/drivers/iio/accel/bmc150-accel-spi.c +++ b/drivers/iio/accel/bmc150-accel-spi.c @@ -39,6 +39,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { {"BMI055A", bmi055}, {"BMA0255", bma255}, {"BMA250E", bma250e}, + {"BMA222", bma222}, {"BMA222E", bma222e}, {"BMA0280", bma280}, { }, @@ -50,6 +51,7 @@ static const struct spi_device_id bmc150_accel_id[] = { {"bmi055_accel", bmi055}, {"bma255", bma255}, {"bma250e", bma250e}, + {"bma222", bma222}, {"bma222e", bma222e}, {"bma280", bma280}, {} diff --git a/drivers/iio/accel/bmc150-accel.h b/drivers/iio/accel/bmc150-accel.h index ae6118ae11b1..f5427103574d 100644 --- a/drivers/iio/accel/bmc150-accel.h +++ b/drivers/iio/accel/bmc150-accel.h @@ -9,6 +9,7 @@ enum { bmi055, bma255, bma250e, + bma222, bma222e, bma280, };
This adds support for the BMA222 version of this sensor, found in for example the Samsung GT-I9070 mobile phone. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/iio/accel/bmc150-accel-core.c | 17 +++++++++++++++++ drivers/iio/accel/bmc150-accel-i2c.c | 4 ++++ drivers/iio/accel/bmc150-accel-spi.c | 2 ++ drivers/iio/accel/bmc150-accel.h | 1 + 4 files changed, 24 insertions(+) -- 2.26.2