From: Jonathan Bakker <xc-racer2@xxxxxxx> Add device tree bindings for Bosch BMA150 Accelerometer Sensor Changes from v1: - Add properties for all of bma150_cfg - Correct IRQ type in example Signed-off-by: Jonathan Bakker <xc-racer2@xxxxxxx> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@xxxxxxxxx> --- .../bindings/input/bosch,bma150.txt | 38 +++++++++++++++++++ include/dt-bindings/input/bma150.h | 22 +++++++++++ include/linux/bma150.h | 13 +------ 3 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/bosch,bma150.txt create mode 100644 include/dt-bindings/input/bma150.h diff --git a/Documentation/devicetree/bindings/input/bosch,bma150.txt b/Documentation/devicetree/bindings/input/bosch,bma150.txt new file mode 100644 index 000000000000..f644d132f79c --- /dev/null +++ b/Documentation/devicetree/bindings/input/bosch,bma150.txt @@ -0,0 +1,38 @@ +* Bosch BMA150 Accelerometer Sensor + +Also works for the SMB380 and BMA023 accelerometers + +Required properties: +- compatible : Should be "bosch,bma150" +- reg : The I2C address of the sensor + +Optional properties: +- interrupt-parent : should be the phandle for the interrupt controller +- interrupts : Interrupt mapping for IRQ. If not present device will be polled +- any-motion-int : bool for if the any motion interrupt should be enabled +- hg-int : bool for if the high-G interrupt should be enabled +- lg-int : bool for if the low-G interrupt should be enabled +- any-motion-cfg : array of integers for any motion duration and threshold +- hg-cfg : array of integers for high-G hysterisis, duration, and threshold +- lg-cfg : array of integers for low-G hysterisis, duration, and threshold +- range : configuration of range, one of BMA150_RANGE_* as defined in [1] +- bandwidth : refresh rate of device, one of BMA150_BW_* as defined in [1] + +Example: + +bma150@38 { + compatible = "bosch,bma150"; + reg = <0x38>; + interrupt-parent = <&gph0>; + interrupts = <1 IRQ_TYPE_EDGE_RISING>; + any-motion-int; + hg-int; + lg-int; + any-motion-cfg = <0 0>; + hg-cfg = <0 150 160>; + lg-cfg = <0 150 20>; + range = <BMA150_RANGE_2G>; + bandwidth = <BMA150_BW_50HZ>; +}; + +[1] include/dt-bindings/input/bma150.h diff --git a/include/dt-bindings/input/bma150.h b/include/dt-bindings/input/bma150.h new file mode 100644 index 000000000000..fb38ca787f0f --- /dev/null +++ b/include/dt-bindings/input/bma150.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * This header provides bindings for the BMA150 accelerometer + */ +#ifndef _DT_BINDINGS_INPUT_BMA150_H +#define _DT_BINDINGS_INPUT_BMA150_H + +/* Range */ +#define BMA150_RANGE_2G 0 +#define BMA150_RANGE_4G 1 +#define BMA150_RANGE_8G 2 + +/* Refresh rate */ +#define BMA150_BW_25HZ 0 +#define BMA150_BW_50HZ 1 +#define BMA150_BW_100HZ 2 +#define BMA150_BW_190HZ 3 +#define BMA150_BW_375HZ 4 +#define BMA150_BW_750HZ 5 +#define BMA150_BW_1500HZ 6 + +#endif /* _DT_BINDINGS_INPUT_BMA150_H */ diff --git a/include/linux/bma150.h b/include/linux/bma150.h index 97ade7cdc870..b85266a9c35c 100644 --- a/include/linux/bma150.h +++ b/include/linux/bma150.h @@ -20,19 +20,10 @@ #ifndef _BMA150_H_ #define _BMA150_H_ -#define BMA150_DRIVER "bma150" +#include <dt-bindings/input/bma150.h> -#define BMA150_RANGE_2G 0 -#define BMA150_RANGE_4G 1 -#define BMA150_RANGE_8G 2 +#define BMA150_DRIVER "bma150" -#define BMA150_BW_25HZ 0 -#define BMA150_BW_50HZ 1 -#define BMA150_BW_100HZ 2 -#define BMA150_BW_190HZ 3 -#define BMA150_BW_375HZ 4 -#define BMA150_BW_750HZ 5 -#define BMA150_BW_1500HZ 6 struct bma150_cfg { bool any_motion_int; /* Set to enable any-motion interrupt */ -- 2.17.1