diff mbox series

[2/3] iio: accel: bmc150-accel: Add support for BMA222

Message ID 20201101122833.1111424-2-linus.walleij@linaro.org
State New
Headers show
Series [1/3] iio: accel: bmc150-accel: Add DT bindings | expand

Commit Message

Linus Walleij Nov. 1, 2020, 12:28 p.m. UTC
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

Comments

Jonathan Cameron Nov. 1, 2020, 8:47 p.m. UTC | #1
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 mbox series

Patch

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,
 };