* [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support @ 2020-05-19 7:50 Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux ` (3 more replies) 0 siblings, 4 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-19 7:50 UTC (permalink / raw) To: linux-kernel Cc: Jonathan Albrieux, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler v2: fixed missing description for iio: imu: bmi160: added regulator support Convert txt format documentation to yaml. Add documentation about vdd-supply, vddio-supply and mount-matrix. Add vdd-supply and vddio-supply support. Without this support, vdd and vddio should be set to always-on in device tree. Add mount-matrix binding support. As chip could have different orientations a mount matrix support is needed to correctly translate these differences Jonathan Albrieux (4): dt-bindings: iio: imu: bmi160: convert txt format to yaml dt-bindings: iio: imu: bmi160: add regulators and mount-matrix iio: imu: bmi160: added regulator support iio: imu: bmi160: added mount-matrix support .../devicetree/bindings/iio/imu/bmi160.txt | 37 ------ .../devicetree/bindings/iio/imu/bmi160.yaml | 105 ++++++++++++++++++ drivers/iio/imu/bmi160/bmi160.h | 3 + drivers/iio/imu/bmi160/bmi160_core.c | 47 +++++++- 4 files changed, 154 insertions(+), 38 deletions(-) delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml -- 2.17.1 ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 7:50 [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support Jonathan Albrieux @ 2020-05-19 7:50 ` Jonathan Albrieux 2020-05-19 17:37 ` Rob Herring ` (2 more replies) 2020-05-19 7:50 ` [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix Jonathan Albrieux ` (2 subsequent siblings) 3 siblings, 3 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-19 7:50 UTC (permalink / raw) To: linux-kernel Cc: Jonathan Albrieux, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring Converts documentation from txt format to yaml Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> --- .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ 2 files changed, 84 insertions(+), 37 deletions(-) delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt deleted file mode 100644 index 900c169de00f..000000000000 --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt +++ /dev/null @@ -1,37 +0,0 @@ -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope -and externally connectable Magnetometer - -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 - -Required properties: - - compatible : should be "bosch,bmi160" - - reg : the I2C address or SPI chip select number of the sensor - - spi-max-frequency : set maximum clock frequency (only for SPI) - -Optional properties: - - interrupts : interrupt mapping for IRQ - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt - input, set to "INT2" if INT2 pin should be used instead - - drive-open-drain : set if the specified interrupt pin should be configured as - open drain. If not set, defaults to push-pull. - -Examples: - -bmi160@68 { - compatible = "bosch,bmi160"; - reg = <0x68>; - - interrupt-parent = <&gpio4>; - interrupts = <12 IRQ_TYPE_EDGE_RISING>; - interrupt-names = "INT1"; -}; - -bmi160@0 { - compatible = "bosch,bmi160"; - reg = <0>; - spi-max-frequency = <10000000>; - - interrupt-parent = <&gpio2>; - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; - interrupt-names = "INT2"; -}; diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml new file mode 100644 index 000000000000..6b464ce5ed0b --- /dev/null +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml @@ -0,0 +1,84 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bosch BMI160 + +maintainers: + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> + +description: | + Inertial Measurement Unit with Accelerometer, Gyroscope and externally + connectable Magnetometer + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 + +properties: + compatible: + const: bosch,bmi160 + + reg: + maxItems: 1 + description: the I2C address or SPI chip select number of the sensor + + spi-max-frequency: + maxItems: 1 + description: set maximum clock frequency (required only for SPI) + + interrupts: + maxItems: 1 + description: interrupt mapping for IRQ + + interrupt-names: + minItems: 1 + maxItems: 1 + items: + enum: + - INT1 + - INT2 + description: | + set to "INT1" if INT1 pin should be used as interrupt input, set + to "INT2" if INT2 pin should be used instead + + drive-open-drain: + description: | + set if the specified interrupt pin should be configured as + open drain. If not set, defaults to push-pull. + +required: + - compatible + - reg + +examples: + - | + // Example for I2C + i2c@78b7000 { + reg = <0x78b6000 0x600>; + #address-cells = <1>; + #size-cells = <0>; + + bmi160@68 { + compatible = "bosch,bmi160"; + reg = <0x68>; + interrupt-parent = <&gpio4>; + interrupts = <12 1>; + interrupt-names = "INT1"; + }; + - | + // Example for SPI + spi@78b7000 { + reg = <0x78b7000 0x600>, + <0x7884000 0x23000>; + #address-cells = <1>; + #size-cells = <0>; + + bmi160@0 { + compatible = "bosch,bmi160"; + reg = <0>; + spi-max-frequency = <10000000>; + interrupt-parent = <&gpio2>; + interrupts = <12 1>; + interrupt-names = "INT2"; + }; + }; -- 2.17.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux @ 2020-05-19 17:37 ` Rob Herring 2020-05-20 7:06 ` Jonathan Albrieux 2020-05-19 17:49 ` Jonathan Cameron 2020-05-19 18:20 ` Rob Herring 2 siblings, 1 reply; 25+ messages in thread From: Rob Herring @ 2020-05-19 17:37 UTC (permalink / raw) To: Jonathan Albrieux Cc: Rob Herring, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Lars-Peter Clausen, Jonathan Cameron, Hartmut Knaack On Tue, 19 May 2020 09:50:57 +0200, Jonathan Albrieux wrote: > Converts documentation from txt format to yaml > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > --- > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > 2 files changed, 84 insertions(+), 37 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > My bot found errors running 'make dt_binding_check' on your patch: Error: Documentation/devicetree/bindings/iio/imu/bmi160.example.dts:37.1-2 syntax error FATAL ERROR: Unable to parse input tree scripts/Makefile.lib:312: recipe for target 'Documentation/devicetree/bindings/iio/imu/bmi160.example.dt.yaml' failed make[1]: *** [Documentation/devicetree/bindings/iio/imu/bmi160.example.dt.yaml] Error 1 Makefile:1300: recipe for target 'dt_binding_check' failed make: *** [dt_binding_check] Error 2 See https://patchwork.ozlabs.org/patch/1293085 If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure dt-schema is up to date: pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade Please check and re-submit. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 17:37 ` Rob Herring @ 2020-05-20 7:06 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:06 UTC (permalink / raw) To: Rob Herring Cc: Rob Herring, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Lars-Peter Clausen, Jonathan Cameron, Hartmut Knaack On Tue, May 19, 2020 at 11:37:38AM -0600, Rob Herring wrote: > On Tue, 19 May 2020 09:50:57 +0200, Jonathan Albrieux wrote: > > Converts documentation from txt format to yaml > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > --- > > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > > 2 files changed, 84 insertions(+), 37 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > > My bot found errors running 'make dt_binding_check' on your patch: > > Error: Documentation/devicetree/bindings/iio/imu/bmi160.example.dts:37.1-2 syntax error > FATAL ERROR: Unable to parse input tree > scripts/Makefile.lib:312: recipe for target 'Documentation/devicetree/bindings/iio/imu/bmi160.example.dt.yaml' failed > make[1]: *** [Documentation/devicetree/bindings/iio/imu/bmi160.example.dt.yaml] Error 1 > Makefile:1300: recipe for target 'dt_binding_check' failed > make: *** [dt_binding_check] Error 2 > > See https://patchwork.ozlabs.org/patch/1293085 > > If you already ran 'make dt_binding_check' and didn't see the above > error(s), then make sure dt-schema is up to date: > > pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade > > Please check and re-submit. > Uhm I don't get that error, will try to update to see if it gives me the same error, Thank you, Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux 2020-05-19 17:37 ` Rob Herring @ 2020-05-19 17:49 ` Jonathan Cameron 2020-05-20 7:24 ` Jonathan Albrieux 2020-05-19 18:20 ` Rob Herring 2 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-19 17:49 UTC (permalink / raw) To: Jonathan Albrieux Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring, Daniel Baluta On Tue, 19 May 2020 09:50:57 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > Converts documentation from txt format to yaml > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > --- > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > 2 files changed, 84 insertions(+), 37 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > deleted file mode 100644 > index 900c169de00f..000000000000 > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > +++ /dev/null > @@ -1,37 +0,0 @@ > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > -and externally connectable Magnetometer > - > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > - > -Required properties: > - - compatible : should be "bosch,bmi160" > - - reg : the I2C address or SPI chip select number of the sensor > - - spi-max-frequency : set maximum clock frequency (only for SPI) > - > -Optional properties: > - - interrupts : interrupt mapping for IRQ > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > - input, set to "INT2" if INT2 pin should be used instead > - - drive-open-drain : set if the specified interrupt pin should be configured as > - open drain. If not set, defaults to push-pull. > - > -Examples: > - > -bmi160@68 { > - compatible = "bosch,bmi160"; > - reg = <0x68>; > - > - interrupt-parent = <&gpio4>; > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > - interrupt-names = "INT1"; > -}; > - > -bmi160@0 { > - compatible = "bosch,bmi160"; > - reg = <0>; > - spi-max-frequency = <10000000>; > - > - interrupt-parent = <&gpio2>; > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > - interrupt-names = "INT2"; > -}; > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > new file mode 100644 > index 000000000000..6b464ce5ed0b > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > @@ -0,0 +1,84 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bosch BMI160 > + > +maintainers: > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> Daniel is still active in the kernel, just not at Intel any more. +CC > + > +description: | > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > + connectable Magnetometer > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > + > +properties: > + compatible: > + const: bosch,bmi160 > + > + reg: > + maxItems: 1 > + description: the I2C address or SPI chip select number of the sensor As standard for i2c and spi, usually no need to have a description line for this element. > + > + spi-max-frequency: > + maxItems: 1 > + description: set maximum clock frequency (required only for SPI) Standard spi binding. Probably doesn't need to be included here. > + > + interrupts: > + maxItems: 1 > + description: interrupt mapping for IRQ > + > + interrupt-names: > + minItems: 1 > + maxItems: 1 > + items: > + enum: > + - INT1 > + - INT2 > + description: | > + set to "INT1" if INT1 pin should be used as interrupt input, set > + to "INT2" if INT2 pin should be used instead > + > + drive-open-drain: > + description: | > + set if the specified interrupt pin should be configured as > + open drain. If not set, defaults to push-pull. > + > +required: > + - compatible > + - reg > + > +examples: > + - | > + // Example for I2C > + i2c@78b7000 { > + reg = <0x78b6000 0x600>; > + #address-cells = <1>; > + #size-cells = <0>; Take a look at some of the other binding examples. We normally just focus on the driver so don't supply details for the bus. e.g. https://elixir.bootlin.com/linux/v5.7-rc6/source/Documentation/devicetree/bindings/iio/adc/maxim,max1363.yaml#L39 > + > + bmi160@68 { > + compatible = "bosch,bmi160"; > + reg = <0x68>; > + interrupt-parent = <&gpio4>; > + interrupts = <12 1>; > + interrupt-names = "INT1"; > + }; > + - | > + // Example for SPI > + spi@78b7000 { > + reg = <0x78b7000 0x600>, > + <0x7884000 0x23000>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + bmi160@0 { > + compatible = "bosch,bmi160"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + interrupt-parent = <&gpio2>; > + interrupts = <12 1>; > + interrupt-names = "INT2"; > + }; > + }; ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 17:49 ` Jonathan Cameron @ 2020-05-20 7:24 ` Jonathan Albrieux 2020-05-21 18:27 ` Jonathan Cameron 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:24 UTC (permalink / raw) To: Jonathan Cameron Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring, Daniel Baluta On Tue, May 19, 2020 at 06:49:33PM +0100, Jonathan Cameron wrote: > On Tue, 19 May 2020 09:50:57 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > Converts documentation from txt format to yaml > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > --- > > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > > 2 files changed, 84 insertions(+), 37 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > deleted file mode 100644 > > index 900c169de00f..000000000000 > > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > +++ /dev/null > > @@ -1,37 +0,0 @@ > > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > > -and externally connectable Magnetometer > > - > > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > - > > -Required properties: > > - - compatible : should be "bosch,bmi160" > > - - reg : the I2C address or SPI chip select number of the sensor > > - - spi-max-frequency : set maximum clock frequency (only for SPI) > > - > > -Optional properties: > > - - interrupts : interrupt mapping for IRQ > > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > > - input, set to "INT2" if INT2 pin should be used instead > > - - drive-open-drain : set if the specified interrupt pin should be configured as > > - open drain. If not set, defaults to push-pull. > > - > > -Examples: > > - > > -bmi160@68 { > > - compatible = "bosch,bmi160"; > > - reg = <0x68>; > > - > > - interrupt-parent = <&gpio4>; > > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > > - interrupt-names = "INT1"; > > -}; > > - > > -bmi160@0 { > > - compatible = "bosch,bmi160"; > > - reg = <0>; > > - spi-max-frequency = <10000000>; > > - > > - interrupt-parent = <&gpio2>; > > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > > - interrupt-names = "INT2"; > > -}; > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > new file mode 100644 > > index 000000000000..6b464ce5ed0b > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > @@ -0,0 +1,84 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Bosch BMI160 > > + > > +maintainers: > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > Daniel is still active in the kernel, just not at Intel any more. +CC > Oh ok thank you! Daniel are you still maintaining this driver? > > + > > +description: | > > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > > + connectable Magnetometer > > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > + > > +properties: > > + compatible: > > + const: bosch,bmi160 > > + > > + reg: > > + maxItems: 1 > > + description: the I2C address or SPI chip select number of the sensor > > As standard for i2c and spi, usually no need to have a description line for > this element. > Thank you, will remove the description then. > > + > > + spi-max-frequency: > > + maxItems: 1 > > + description: set maximum clock frequency (required only for SPI) > > Standard spi binding. Probably doesn't need to be included here. > So should I completely remove it from properties? > > + > > + interrupts: > > + maxItems: 1 > > + description: interrupt mapping for IRQ > > + > > + interrupt-names: > > + minItems: 1 > > + maxItems: 1 > > + items: > > + enum: > > + - INT1 > > + - INT2 > > + description: | > > + set to "INT1" if INT1 pin should be used as interrupt input, set > > + to "INT2" if INT2 pin should be used instead > > + > > + drive-open-drain: > > + description: | > > + set if the specified interrupt pin should be configured as > > + open drain. If not set, defaults to push-pull. > > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + // Example for I2C > > + i2c@78b7000 { > > + reg = <0x78b6000 0x600>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > Take a look at some of the other binding examples. We normally > just focus on the driver so don't supply details for the bus. > > e.g. https://elixir.bootlin.com/linux/v5.7-rc6/source/Documentation/devicetree/bindings/iio/adc/maxim,max1363.yaml#L39 > Will check :-) > > + > > + bmi160@68 { > > + compatible = "bosch,bmi160"; > > + reg = <0x68>; > > + interrupt-parent = <&gpio4>; > > + interrupts = <12 1>; > > + interrupt-names = "INT1"; > > + }; > > + - | > > + // Example for SPI > > + spi@78b7000 { > > + reg = <0x78b7000 0x600>, > > + <0x7884000 0x23000>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + bmi160@0 { > > + compatible = "bosch,bmi160"; > > + reg = <0>; > > + spi-max-frequency = <10000000>; > > + interrupt-parent = <&gpio2>; > > + interrupts = <12 1>; > > + interrupt-names = "INT2"; > > + }; > > + }; > > Thank you, Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-20 7:24 ` Jonathan Albrieux @ 2020-05-21 18:27 ` Jonathan Cameron 2020-05-22 8:22 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-21 18:27 UTC (permalink / raw) To: Jonathan Albrieux Cc: Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring, Daniel Baluta On Wed, 20 May 2020 09:24:23 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > On Tue, May 19, 2020 at 06:49:33PM +0100, Jonathan Cameron wrote: > > On Tue, 19 May 2020 09:50:57 +0200 > > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > > > Converts documentation from txt format to yaml > > > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > > --- > > > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > > > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > > > 2 files changed, 84 insertions(+), 37 deletions(-) > > > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > deleted file mode 100644 > > > index 900c169de00f..000000000000 > > > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > +++ /dev/null > > > @@ -1,37 +0,0 @@ > > > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > > > -and externally connectable Magnetometer > > > - > > > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > > - > > > -Required properties: > > > - - compatible : should be "bosch,bmi160" > > > - - reg : the I2C address or SPI chip select number of the sensor > > > - - spi-max-frequency : set maximum clock frequency (only for SPI) > > > - > > > -Optional properties: > > > - - interrupts : interrupt mapping for IRQ > > > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > > > - input, set to "INT2" if INT2 pin should be used instead > > > - - drive-open-drain : set if the specified interrupt pin should be configured as > > > - open drain. If not set, defaults to push-pull. > > > - > > > -Examples: > > > - > > > -bmi160@68 { > > > - compatible = "bosch,bmi160"; > > > - reg = <0x68>; > > > - > > > - interrupt-parent = <&gpio4>; > > > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > > > - interrupt-names = "INT1"; > > > -}; > > > - > > > -bmi160@0 { > > > - compatible = "bosch,bmi160"; > > > - reg = <0>; > > > - spi-max-frequency = <10000000>; > > > - > > > - interrupt-parent = <&gpio2>; > > > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > > > - interrupt-names = "INT2"; > > > -}; > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > new file mode 100644 > > > index 000000000000..6b464ce5ed0b > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > @@ -0,0 +1,84 @@ > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: Bosch BMI160 > > > + > > > +maintainers: > > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > > > Daniel is still active in the kernel, just not at Intel any more. +CC > > > > Oh ok thank you! Daniel are you still maintaining this driver? > > > > + > > > +description: | > > > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > > > + connectable Magnetometer > > > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > > + > > > +properties: > > > + compatible: > > > + const: bosch,bmi160 > > > + > > > + reg: > > > + maxItems: 1 > > > + description: the I2C address or SPI chip select number of the sensor > > > > As standard for i2c and spi, usually no need to have a description line for > > this element. > > > > Thank you, will remove the description then. > > > > + > > > + spi-max-frequency: > > > + maxItems: 1 > > > + description: set maximum clock frequency (required only for SPI) > > > > Standard spi binding. Probably doesn't need to be included here. > > > > So should I completely remove it from properties? Yes Thanks, Jonathan ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-21 18:27 ` Jonathan Cameron @ 2020-05-22 8:22 ` Jonathan Albrieux 2020-05-22 10:47 ` Daniel Baluta 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-22 8:22 UTC (permalink / raw) To: Jonathan Cameron Cc: Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring, Daniel Baluta On Thu, May 21, 2020 at 07:27:36PM +0100, Jonathan Cameron wrote: > On Wed, 20 May 2020 09:24:23 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > On Tue, May 19, 2020 at 06:49:33PM +0100, Jonathan Cameron wrote: > > > On Tue, 19 May 2020 09:50:57 +0200 > > > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > > > > > Converts documentation from txt format to yaml > > > > > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > > > --- > > > > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > > > > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > > > > 2 files changed, 84 insertions(+), 37 deletions(-) > > > > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > > deleted file mode 100644 > > > > index 900c169de00f..000000000000 > > > > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > > > +++ /dev/null > > > > @@ -1,37 +0,0 @@ > > > > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > > > > -and externally connectable Magnetometer > > > > - > > > > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > > > - > > > > -Required properties: > > > > - - compatible : should be "bosch,bmi160" > > > > - - reg : the I2C address or SPI chip select number of the sensor > > > > - - spi-max-frequency : set maximum clock frequency (only for SPI) > > > > - > > > > -Optional properties: > > > > - - interrupts : interrupt mapping for IRQ > > > > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > > > > - input, set to "INT2" if INT2 pin should be used instead > > > > - - drive-open-drain : set if the specified interrupt pin should be configured as > > > > - open drain. If not set, defaults to push-pull. > > > > - > > > > -Examples: > > > > - > > > > -bmi160@68 { > > > > - compatible = "bosch,bmi160"; > > > > - reg = <0x68>; > > > > - > > > > - interrupt-parent = <&gpio4>; > > > > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > > > > - interrupt-names = "INT1"; > > > > -}; > > > > - > > > > -bmi160@0 { > > > > - compatible = "bosch,bmi160"; > > > > - reg = <0>; > > > > - spi-max-frequency = <10000000>; > > > > - > > > > - interrupt-parent = <&gpio2>; > > > > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > > > > - interrupt-names = "INT2"; > > > > -}; > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > new file mode 100644 > > > > index 000000000000..6b464ce5ed0b > > > > --- /dev/null > > > > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > > > @@ -0,0 +1,84 @@ > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > > > +%YAML 1.2 > > > > +--- > > > > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > + > > > > +title: Bosch BMI160 > > > > + > > > > +maintainers: > > > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > > > > > Daniel is still active in the kernel, just not at Intel any more. +CC > > > > > > > Oh ok thank you! Daniel are you still maintaining this driver? > > > > > > + > > > > +description: | > > > > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > > > > + connectable Magnetometer > > > > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > > > + > > > > +properties: > > > > + compatible: > > > > + const: bosch,bmi160 > > > > + > > > > + reg: > > > > + maxItems: 1 > > > > + description: the I2C address or SPI chip select number of the sensor > > > > > > As standard for i2c and spi, usually no need to have a description line for > > > this element. > > > > > > > Thank you, will remove the description then. > > > > > > + > > > > + spi-max-frequency: > > > > + maxItems: 1 > > > > + description: set maximum clock frequency (required only for SPI) > > > > > > Standard spi binding. Probably doesn't need to be included here. > > > > > > > So should I completely remove it from properties? > > Yes > > > Thanks, > > Jonathan Ok I will remove it completely in next patch, Thank you, Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-22 8:22 ` Jonathan Albrieux @ 2020-05-22 10:47 ` Daniel Baluta 2020-05-22 14:26 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Daniel Baluta @ 2020-05-22 10:47 UTC (permalink / raw) To: Jonathan Albrieux, Jonathan Cameron Cc: Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring >>>>> + >>>>> +maintainers: >>>>> + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> >>>> Daniel is still active in the kernel, just not at Intel any more. +CC >>>> >>> Oh ok thank you! Daniel are you still maintaining this driver? I can do reviews if requested but I'm not actively maintaining this driver. If anyone wants to take this over, will be more than happy. Other than that we can add my gmail address: Daniel Baluta <daniel.baluta@gmail.com> ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-22 10:47 ` Daniel Baluta @ 2020-05-22 14:26 ` Jonathan Albrieux 2020-05-22 14:59 ` Daniel Baluta 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-22 14:26 UTC (permalink / raw) To: Daniel Baluta Cc: Jonathan Cameron, Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring On Fri, May 22, 2020 at 01:47:21PM +0300, Daniel Baluta wrote: > > > > > > > + > > > > > > +maintainers: > > > > > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > > > > Daniel is still active in the kernel, just not at Intel any more. +CC > > > > Oh ok thank you! Daniel are you still maintaining this driver? > > I can do reviews if requested but I'm not actively maintaining this driver. > If anyone wants > > to take this over, will be more than happy. > > > Other than that we can add my gmail address: Daniel Baluta > <daniel.baluta@gmail.com> > > > Well if you'd like to review this patch I'd really appreciate :-) Forgive me for not having understood your answer regarding the maintainer field, can I add you to this binding as maintainer or are you saying to not add you? Thank you and sorry for the repeated question, Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-22 14:26 ` Jonathan Albrieux @ 2020-05-22 14:59 ` Daniel Baluta 2020-05-22 15:44 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Daniel Baluta @ 2020-05-22 14:59 UTC (permalink / raw) To: Jonathan Albrieux Cc: Jonathan Cameron, Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring On 22.05.2020 17:26, Jonathan Albrieux wrote: > On Fri, May 22, 2020 at 01:47:21PM +0300, Daniel Baluta wrote: >>>>>>> + >>>>>>> +maintainers: >>>>>>> + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> >>>>>> Daniel is still active in the kernel, just not at Intel any more. +CC >>>>> Oh ok thank you! Daniel are you still maintaining this driver? >> I can do reviews if requested but I'm not actively maintaining this driver. >> If anyone wants >> >> to take this over, will be more than happy. >> >> >> Other than that we can add my gmail address: Daniel Baluta >> <daniel.baluta@gmail.com> >> >> >> > Well if you'd like to review this patch I'd really appreciate :-) > Forgive me for not having understood your answer regarding the maintainer > field, can I add you to this binding as maintainer or are you saying to > not add you? Thank you and sorry for the repeated question, > > OK, so I think would be better not to add me as a maintainer because this would set some expecation from people, and I most likely won't have time to met them. Can you instead add the linux-iio mailing list as a maintainer, not sure if this is a common practice though. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-22 14:59 ` Daniel Baluta @ 2020-05-22 15:44 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-22 15:44 UTC (permalink / raw) To: Daniel Baluta Cc: Jonathan Cameron, Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Rob Herring On Fri, May 22, 2020 at 05:59:11PM +0300, Daniel Baluta wrote: > > On 22.05.2020 17:26, Jonathan Albrieux wrote: > > On Fri, May 22, 2020 at 01:47:21PM +0300, Daniel Baluta wrote: > > > > > > > > + > > > > > > > > +maintainers: > > > > > > > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > > > > > > Daniel is still active in the kernel, just not at Intel any more. +CC > > > > > > Oh ok thank you! Daniel are you still maintaining this driver? > > > I can do reviews if requested but I'm not actively maintaining this driver. > > > If anyone wants > > > > > > to take this over, will be more than happy. > > > > > > > > > Other than that we can add my gmail address: Daniel Baluta > > > <daniel.baluta@gmail.com> > > > > > > > > > > > Well if you'd like to review this patch I'd really appreciate :-) > > Forgive me for not having understood your answer regarding the maintainer > > field, can I add you to this binding as maintainer or are you saying to > > not add you? Thank you and sorry for the repeated question, > > > > > > OK, so I think would be better not to add me as a maintainer because > > this would set some expecation from people, and I most likely won't > > have time to met them. > > > Can you instead add the linux-iio mailing list as a maintainer, not sure > > if this is a common practice though. > > Ok thank you! I don't know, maybe someone else could point out the right direction to take, it would be sad to drop yaml documentation format just for this. Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux 2020-05-19 17:37 ` Rob Herring 2020-05-19 17:49 ` Jonathan Cameron @ 2020-05-19 18:20 ` Rob Herring 2020-05-20 7:29 ` Jonathan Albrieux 2 siblings, 1 reply; 25+ messages in thread From: Rob Herring @ 2020-05-19 18:20 UTC (permalink / raw) To: Jonathan Albrieux Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, May 19, 2020 at 09:50:57AM +0200, Jonathan Albrieux wrote: > Converts documentation from txt format to yaml > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > --- > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > 2 files changed, 84 insertions(+), 37 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml Use compatible string for filename: bosch,bmi160.yaml > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > deleted file mode 100644 > index 900c169de00f..000000000000 > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > +++ /dev/null > @@ -1,37 +0,0 @@ > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > -and externally connectable Magnetometer > - > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > - > -Required properties: > - - compatible : should be "bosch,bmi160" > - - reg : the I2C address or SPI chip select number of the sensor > - - spi-max-frequency : set maximum clock frequency (only for SPI) > - > -Optional properties: > - - interrupts : interrupt mapping for IRQ > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > - input, set to "INT2" if INT2 pin should be used instead > - - drive-open-drain : set if the specified interrupt pin should be configured as > - open drain. If not set, defaults to push-pull. > - > -Examples: > - > -bmi160@68 { > - compatible = "bosch,bmi160"; > - reg = <0x68>; > - > - interrupt-parent = <&gpio4>; > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > - interrupt-names = "INT1"; > -}; > - > -bmi160@0 { > - compatible = "bosch,bmi160"; > - reg = <0>; > - spi-max-frequency = <10000000>; > - > - interrupt-parent = <&gpio2>; > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > - interrupt-names = "INT2"; > -}; > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > new file mode 100644 > index 000000000000..6b464ce5ed0b > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > @@ -0,0 +1,84 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bosch BMI160 > + > +maintainers: > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> Would help to Cc him perhaps. > + > +description: | > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > + connectable Magnetometer > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > + > +properties: > + compatible: > + const: bosch,bmi160 > + > + reg: > + maxItems: 1 > + description: the I2C address or SPI chip select number of the sensor > + > + spi-max-frequency: > + maxItems: 1 > + description: set maximum clock frequency (required only for SPI) > + > + interrupts: > + maxItems: 1 > + description: interrupt mapping for IRQ No need for description if not adding anything unique for this device. > + > + interrupt-names: > + minItems: 1 > + maxItems: 1 > + items: > + enum: > + - INT1 > + - INT2 Just the enum is enough. > + description: | > + set to "INT1" if INT1 pin should be used as interrupt input, set > + to "INT2" if INT2 pin should be used instead > + > + drive-open-drain: > + description: | > + set if the specified interrupt pin should be configured as > + open drain. If not set, defaults to push-pull. > + > +required: > + - compatible > + - reg > + > +examples: > + - | > + // Example for I2C > + i2c@78b7000 { > + reg = <0x78b6000 0x600>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + bmi160@68 { > + compatible = "bosch,bmi160"; > + reg = <0x68>; > + interrupt-parent = <&gpio4>; > + interrupts = <12 1>; > + interrupt-names = "INT1"; > + }; > + - | > + // Example for SPI > + spi@78b7000 { > + reg = <0x78b7000 0x600>, > + <0x7884000 0x23000>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + bmi160@0 { > + compatible = "bosch,bmi160"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + interrupt-parent = <&gpio2>; > + interrupts = <12 1>; > + interrupt-names = "INT2"; > + }; > + }; > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml 2020-05-19 18:20 ` Rob Herring @ 2020-05-20 7:29 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:29 UTC (permalink / raw) To: Rob Herring Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, May 19, 2020 at 12:20:28PM -0600, Rob Herring wrote: > On Tue, May 19, 2020 at 09:50:57AM +0200, Jonathan Albrieux wrote: > > Converts documentation from txt format to yaml > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > --- > > .../devicetree/bindings/iio/imu/bmi160.txt | 37 -------- > > .../devicetree/bindings/iio/imu/bmi160.yaml | 84 +++++++++++++++++++ > > 2 files changed, 84 insertions(+), 37 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.txt > > create mode 100644 Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > Use compatible string for filename: bosch,bmi160.yaml > Ok thank you, will change filename. > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.txt b/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > deleted file mode 100644 > > index 900c169de00f..000000000000 > > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.txt > > +++ /dev/null > > @@ -1,37 +0,0 @@ > > -Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope > > -and externally connectable Magnetometer > > - > > -https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > - > > -Required properties: > > - - compatible : should be "bosch,bmi160" > > - - reg : the I2C address or SPI chip select number of the sensor > > - - spi-max-frequency : set maximum clock frequency (only for SPI) > > - > > -Optional properties: > > - - interrupts : interrupt mapping for IRQ > > - - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt > > - input, set to "INT2" if INT2 pin should be used instead > > - - drive-open-drain : set if the specified interrupt pin should be configured as > > - open drain. If not set, defaults to push-pull. > > - > > -Examples: > > - > > -bmi160@68 { > > - compatible = "bosch,bmi160"; > > - reg = <0x68>; > > - > > - interrupt-parent = <&gpio4>; > > - interrupts = <12 IRQ_TYPE_EDGE_RISING>; > > - interrupt-names = "INT1"; > > -}; > > - > > -bmi160@0 { > > - compatible = "bosch,bmi160"; > > - reg = <0>; > > - spi-max-frequency = <10000000>; > > - > > - interrupt-parent = <&gpio2>; > > - interrupts = <12 IRQ_TYPE_LEVEL_LOW>; > > - interrupt-names = "INT2"; > > -}; > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > new file mode 100644 > > index 000000000000..6b464ce5ed0b > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > @@ -0,0 +1,84 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/iio/imu/bmi160.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Bosch BMI160 > > + > > +maintainers: > > + - can't find a mantainer, author is Daniel Baluta <daniel.baluta@intel.com> > > Would help to Cc him perhaps. > Thank you, I will add him too on the next version. > > + > > +description: | > > + Inertial Measurement Unit with Accelerometer, Gyroscope and externally > > + connectable Magnetometer > > + https://www.bosch-sensortec.com/bst/products/all_products/bmi160 > > + > > +properties: > > + compatible: > > + const: bosch,bmi160 > > + > > + reg: > > + maxItems: 1 > > + description: the I2C address or SPI chip select number of the sensor > > + > > + spi-max-frequency: > > + maxItems: 1 > > + description: set maximum clock frequency (required only for SPI) > > + > > + interrupts: > > + maxItems: 1 > > + description: interrupt mapping for IRQ > > No need for description if not adding anything unique for this device. > Will remove it then. > > + > > + interrupt-names: > > + minItems: 1 > > + maxItems: 1 > > + items: > > + enum: > > + - INT1 > > + - INT2 > > Just the enum is enough. > Ok, will clean this. > > + description: | > > + set to "INT1" if INT1 pin should be used as interrupt input, set > > + to "INT2" if INT2 pin should be used instead > > + > > + drive-open-drain: > > + description: | > > + set if the specified interrupt pin should be configured as > > + open drain. If not set, defaults to push-pull. > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + // Example for I2C > > + i2c@78b7000 { > > + reg = <0x78b6000 0x600>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + bmi160@68 { > > + compatible = "bosch,bmi160"; > > + reg = <0x68>; > > + interrupt-parent = <&gpio4>; > > + interrupts = <12 1>; > > + interrupt-names = "INT1"; > > + }; > > + - | > > + // Example for SPI > > + spi@78b7000 { > > + reg = <0x78b7000 0x600>, > > + <0x7884000 0x23000>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + bmi160@0 { > > + compatible = "bosch,bmi160"; > > + reg = <0>; > > + spi-max-frequency = <10000000>; > > + interrupt-parent = <&gpio2>; > > + interrupts = <12 1>; > > + interrupt-names = "INT2"; > > + }; > > + }; > > -- > > 2.17.1 > > Thank you for your help, Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix 2020-05-19 7:50 [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux @ 2020-05-19 7:50 ` Jonathan Albrieux 2020-05-19 17:51 ` Jonathan Cameron 2020-05-19 7:50 ` [PATCH v2 3/4] iio: imu: bmi160: added regulator support Jonathan Albrieux 2020-05-19 7:51 ` [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support Jonathan Albrieux 3 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-19 7:50 UTC (permalink / raw) To: linux-kernel Cc: Jonathan Albrieux, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring Add vdd-supply and vddio-supply support. Add mount-matrix support. Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> --- .../devicetree/bindings/iio/imu/bmi160.yaml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml index 6b464ce5ed0b..5b13af7a209f 100644 --- a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml @@ -46,6 +46,21 @@ properties: set if the specified interrupt pin should be configured as open drain. If not set, defaults to push-pull. + vdd-supply: + maxItems: 1 + description: | + an optional regulator that needs to be on to provide VDD power to + the sensor. + + vddio-supply: + maxItems: 1 + description: | + an optional regulator that needs to be on to provide the VDD IO power to + the sensor. + + mount-matrix: + description: an optional 3x3 mounting rotation matrix + required: - compatible - reg @@ -61,9 +76,15 @@ examples: bmi160@68 { compatible = "bosch,bmi160"; reg = <0x68>; + vdd-supply = <&pm8916_l17>; + vddio-supply = <&pm8916_l6>; interrupt-parent = <&gpio4>; interrupts = <12 1>; interrupt-names = "INT1"; + mount-matrix = "0", "1", "0", + "-1", "0", "0", + "0", "0", "1"; + }; }; - | // Example for SPI -- 2.17.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix 2020-05-19 7:50 ` [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix Jonathan Albrieux @ 2020-05-19 17:51 ` Jonathan Cameron 2020-05-20 7:11 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-19 17:51 UTC (permalink / raw) To: Jonathan Albrieux Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring On Tue, 19 May 2020 09:50:58 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > Add vdd-supply and vddio-supply support. > Add mount-matrix support. > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> A few minor comments inline. > --- > .../devicetree/bindings/iio/imu/bmi160.yaml | 21 +++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > index 6b464ce5ed0b..5b13af7a209f 100644 > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > @@ -46,6 +46,21 @@ properties: > set if the specified interrupt pin should be configured as > open drain. If not set, defaults to push-pull. > > + vdd-supply: > + maxItems: 1 > + description: | > + an optional regulator that needs to be on to provide VDD power to > + the sensor. They aren't optional. Whether we specify them or rely on stub regulators being provided because they aren't controllable is the optional bit. That's clearly defined by them not being in the required list below. So say something li.e description: | provide VDD power to the sensor. > + > + vddio-supply: > + maxItems: 1 > + description: | > + an optional regulator that needs to be on to provide the VDD IO power to > + the sensor. > + > + mount-matrix: > + description: an optional 3x3 mounting rotation matrix > + > required: > - compatible > - reg > @@ -61,9 +76,15 @@ examples: > bmi160@68 { > compatible = "bosch,bmi160"; > reg = <0x68>; > + vdd-supply = <&pm8916_l17>; > + vddio-supply = <&pm8916_l6>; > interrupt-parent = <&gpio4>; > interrupts = <12 1>; > interrupt-names = "INT1"; > + mount-matrix = "0", "1", "0", > + "-1", "0", "0", > + "0", "0", "1"; > + }; > }; > - | > // Example for SPI ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix 2020-05-19 17:51 ` Jonathan Cameron @ 2020-05-20 7:11 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:11 UTC (permalink / raw) To: Jonathan Cameron Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron, Rob Herring On Tue, May 19, 2020 at 06:51:59PM +0100, Jonathan Cameron wrote: > On Tue, 19 May 2020 09:50:58 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > Add vdd-supply and vddio-supply support. > > Add mount-matrix support. > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > A few minor comments inline. > > > --- > > .../devicetree/bindings/iio/imu/bmi160.yaml | 21 +++++++++++++++++++ > > 1 file changed, 21 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > index 6b464ce5ed0b..5b13af7a209f 100644 > > --- a/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > +++ b/Documentation/devicetree/bindings/iio/imu/bmi160.yaml > > @@ -46,6 +46,21 @@ properties: > > set if the specified interrupt pin should be configured as > > open drain. If not set, defaults to push-pull. > > > > + vdd-supply: > > + maxItems: 1 > > + description: | > > + an optional regulator that needs to be on to provide VDD power to > > + the sensor. > > They aren't optional. Whether we specify them or rely on stub regulators > being provided because they aren't controllable is the optional bit. > That's clearly defined by them not being in the required list below. > So say something li.e > > description: | > provide VDD power to the sensor. > Oh ok thank you, will work on that > > + > > + vddio-supply: > > + maxItems: 1 > > + description: | > > + an optional regulator that needs to be on to provide the VDD IO power to > > + the sensor. > > + > > + mount-matrix: > > + description: an optional 3x3 mounting rotation matrix > > + > > required: > > - compatible > > - reg > > @@ -61,9 +76,15 @@ examples: > > bmi160@68 { > > compatible = "bosch,bmi160"; > > reg = <0x68>; > > + vdd-supply = <&pm8916_l17>; > > + vddio-supply = <&pm8916_l6>; > > interrupt-parent = <&gpio4>; > > interrupts = <12 1>; > > interrupt-names = "INT1"; > > + mount-matrix = "0", "1", "0", > > + "-1", "0", "0", > > + "0", "0", "1"; > > + }; > > }; > > - | > > // Example for SPI > > ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 3/4] iio: imu: bmi160: added regulator support 2020-05-19 7:50 [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix Jonathan Albrieux @ 2020-05-19 7:50 ` Jonathan Albrieux 2020-05-19 17:55 ` Jonathan Cameron 2020-05-19 7:51 ` [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support Jonathan Albrieux 3 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-19 7:50 UTC (permalink / raw) To: linux-kernel Cc: Jonathan Albrieux, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron v2: fixed missing description Add vdd-supply and vddio-supply support. Without this support vdd and vddio should be set to always-on in device tree Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> --- drivers/iio/imu/bmi160/bmi160.h | 2 ++ drivers/iio/imu/bmi160/bmi160_core.c | 27 ++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h index 621f5309d735..923c3b274fde 100644 --- a/drivers/iio/imu/bmi160/bmi160.h +++ b/drivers/iio/imu/bmi160/bmi160.h @@ -3,10 +3,12 @@ #define BMI160_H_ #include <linux/iio/iio.h> +#include <linux/regulator/consumer.h> struct bmi160_data { struct regmap *regmap; struct iio_trigger *trig; + struct regulator_bulk_data supplies[2]; }; extern const struct regmap_config bmi160_regmap_config; diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c index 6af65d6f1d28..9bbe0d8e6720 100644 --- a/drivers/iio/imu/bmi160/bmi160_core.c +++ b/drivers/iio/imu/bmi160/bmi160_core.c @@ -15,6 +15,7 @@ #include <linux/delay.h> #include <linux/irq.h> #include <linux/of_irq.h> +#include <linux/regulator/consumer.h> #include <linux/iio/iio.h> #include <linux/iio/triggered_buffer.h> @@ -709,6 +710,12 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) unsigned int val; struct device *dev = regmap_get_device(data->regmap); + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); + if (ret) { + dev_err(dev, "Failed to enable regulators: %d\n", ret); + return ret; + } + ret = regmap_write(data->regmap, BMI160_REG_CMD, BMI160_CMD_SOFTRESET); if (ret) return ret; @@ -793,9 +800,17 @@ int bmi160_probe_trigger(struct iio_dev *indio_dev, int irq, u32 irq_type) static void bmi160_chip_uninit(void *data) { struct bmi160_data *bmi_data = data; + struct device *dev = regmap_get_device(bmi_data->regmap); + int ret; bmi160_set_mode(bmi_data, BMI160_GYRO, false); bmi160_set_mode(bmi_data, BMI160_ACCEL, false); + + ret = regulator_bulk_disable(ARRAY_SIZE(bmi_data->supplies), + bmi_data->supplies); + if (ret) { + dev_err(dev, "Failed to disable regulators: %d\n", ret); + } } int bmi160_core_probe(struct device *dev, struct regmap *regmap, @@ -815,6 +830,16 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, dev_set_drvdata(dev, indio_dev); data->regmap = regmap; + data->supplies[0].supply = "vdd"; + data->supplies[1].supply = "vddio"; + ret = devm_regulator_bulk_get(dev, + ARRAY_SIZE(data->supplies), + data->supplies); + if (ret) { + dev_err(dev, "Failed to get regulators: %d\n", ret); + return ret; + } + ret = bmi160_chip_init(data, use_spi); if (ret) return ret; @@ -853,6 +878,6 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, } EXPORT_SYMBOL_GPL(bmi160_core_probe); -MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com"); +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); MODULE_DESCRIPTION("Bosch BMI160 driver"); MODULE_LICENSE("GPL v2"); -- 2.17.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH v2 3/4] iio: imu: bmi160: added regulator support 2020-05-19 7:50 ` [PATCH v2 3/4] iio: imu: bmi160: added regulator support Jonathan Albrieux @ 2020-05-19 17:55 ` Jonathan Cameron 2020-05-20 7:17 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-19 17:55 UTC (permalink / raw) To: Jonathan Albrieux Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, 19 May 2020 09:50:59 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > v2: fixed missing description Don't put change log here.... > > Add vdd-supply and vddio-supply support. Without this support vdd and vddio > should be set to always-on in device tree Kind of the opposite. If they are always on we don't have to provide them in the device tree. A few trivial things inline. > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > --- Change log goes here so we don't end up keeping it in the git log. > drivers/iio/imu/bmi160/bmi160.h | 2 ++ > drivers/iio/imu/bmi160/bmi160_core.c | 27 ++++++++++++++++++++++++++- > 2 files changed, 28 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > index 621f5309d735..923c3b274fde 100644 > --- a/drivers/iio/imu/bmi160/bmi160.h > +++ b/drivers/iio/imu/bmi160/bmi160.h > @@ -3,10 +3,12 @@ > #define BMI160_H_ > > #include <linux/iio/iio.h> > +#include <linux/regulator/consumer.h> > > struct bmi160_data { > struct regmap *regmap; > struct iio_trigger *trig; > + struct regulator_bulk_data supplies[2]; > }; > > extern const struct regmap_config bmi160_regmap_config; > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > index 6af65d6f1d28..9bbe0d8e6720 100644 > --- a/drivers/iio/imu/bmi160/bmi160_core.c > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > @@ -15,6 +15,7 @@ > #include <linux/delay.h> > #include <linux/irq.h> > #include <linux/of_irq.h> > +#include <linux/regulator/consumer.h> > > #include <linux/iio/iio.h> > #include <linux/iio/triggered_buffer.h> > @@ -709,6 +710,12 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) > unsigned int val; > struct device *dev = regmap_get_device(data->regmap); > > + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); > + if (ret) { > + dev_err(dev, "Failed to enable regulators: %d\n", ret); > + return ret; > + } > + > ret = regmap_write(data->regmap, BMI160_REG_CMD, BMI160_CMD_SOFTRESET); > if (ret) > return ret; > @@ -793,9 +800,17 @@ int bmi160_probe_trigger(struct iio_dev *indio_dev, int irq, u32 irq_type) > static void bmi160_chip_uninit(void *data) > { > struct bmi160_data *bmi_data = data; > + struct device *dev = regmap_get_device(bmi_data->regmap); > + int ret; > > bmi160_set_mode(bmi_data, BMI160_GYRO, false); > bmi160_set_mode(bmi_data, BMI160_ACCEL, false); > + > + ret = regulator_bulk_disable(ARRAY_SIZE(bmi_data->supplies), > + bmi_data->supplies); > + if (ret) { > + dev_err(dev, "Failed to disable regulators: %d\n", ret); > + } No need for brackets around a 1 line if block if (ret) dev_err(dev, "failed to disable regulators: %d\n", ret); > } > > int bmi160_core_probe(struct device *dev, struct regmap *regmap, > @@ -815,6 +830,16 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > dev_set_drvdata(dev, indio_dev); > data->regmap = regmap; > > + data->supplies[0].supply = "vdd"; > + data->supplies[1].supply = "vddio"; > + ret = devm_regulator_bulk_get(dev, > + ARRAY_SIZE(data->supplies), > + data->supplies); > + if (ret) { > + dev_err(dev, "Failed to get regulators: %d\n", ret); > + return ret; > + } > + > ret = bmi160_chip_init(data, use_spi); > if (ret) > return ret; > @@ -853,6 +878,6 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > } > EXPORT_SYMBOL_GPL(bmi160_core_probe); > > -MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com"); > +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); Good fix but shouldn't be in this patch. Put it a separate patch on it's own. > MODULE_DESCRIPTION("Bosch BMI160 driver"); > MODULE_LICENSE("GPL v2"); ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 3/4] iio: imu: bmi160: added regulator support 2020-05-19 17:55 ` Jonathan Cameron @ 2020-05-20 7:17 ` Jonathan Albrieux 2020-05-21 18:30 ` Jonathan Cameron 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:17 UTC (permalink / raw) To: Jonathan Cameron Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, May 19, 2020 at 06:55:35PM +0100, Jonathan Cameron wrote: > On Tue, 19 May 2020 09:50:59 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > v2: fixed missing description > > Don't put change log here.... Yep I will put it in the cover letter > > > > Add vdd-supply and vddio-supply support. Without this support vdd and vddio > > should be set to always-on in device tree > > Kind of the opposite. If they are always on we don't have to provide them > in the device tree. > I wrote that because, testing on msm8916, without setting the regulators to always on they were controlled by other components and it happened that the line wasn't ready during probe causing failure to load the module. I will try to reword based on your comment, thank you. > A few trivial things inline. > > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > --- > > Change log goes here so we don't end up keeping it in the git log. > > > drivers/iio/imu/bmi160/bmi160.h | 2 ++ > > drivers/iio/imu/bmi160/bmi160_core.c | 27 ++++++++++++++++++++++++++- > > 2 files changed, 28 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > > index 621f5309d735..923c3b274fde 100644 > > --- a/drivers/iio/imu/bmi160/bmi160.h > > +++ b/drivers/iio/imu/bmi160/bmi160.h > > @@ -3,10 +3,12 @@ > > #define BMI160_H_ > > > > #include <linux/iio/iio.h> > > +#include <linux/regulator/consumer.h> > > > > struct bmi160_data { > > struct regmap *regmap; > > struct iio_trigger *trig; > > + struct regulator_bulk_data supplies[2]; > > }; > > > > extern const struct regmap_config bmi160_regmap_config; > > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > > index 6af65d6f1d28..9bbe0d8e6720 100644 > > --- a/drivers/iio/imu/bmi160/bmi160_core.c > > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > > @@ -15,6 +15,7 @@ > > #include <linux/delay.h> > > #include <linux/irq.h> > > #include <linux/of_irq.h> > > +#include <linux/regulator/consumer.h> > > > > #include <linux/iio/iio.h> > > #include <linux/iio/triggered_buffer.h> > > @@ -709,6 +710,12 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) > > unsigned int val; > > struct device *dev = regmap_get_device(data->regmap); > > > > + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); > > + if (ret) { > > + dev_err(dev, "Failed to enable regulators: %d\n", ret); > > + return ret; > > + } > > + > > ret = regmap_write(data->regmap, BMI160_REG_CMD, BMI160_CMD_SOFTRESET); > > if (ret) > > return ret; > > @@ -793,9 +800,17 @@ int bmi160_probe_trigger(struct iio_dev *indio_dev, int irq, u32 irq_type) > > static void bmi160_chip_uninit(void *data) > > { > > struct bmi160_data *bmi_data = data; > > + struct device *dev = regmap_get_device(bmi_data->regmap); > > + int ret; > > > > bmi160_set_mode(bmi_data, BMI160_GYRO, false); > > bmi160_set_mode(bmi_data, BMI160_ACCEL, false); > > + > > + ret = regulator_bulk_disable(ARRAY_SIZE(bmi_data->supplies), > > + bmi_data->supplies); > > + if (ret) { > > + dev_err(dev, "Failed to disable regulators: %d\n", ret); > > + } > No need for brackets around a 1 line if block > Thank you, I didn't noticed that :-) > if (ret) > dev_err(dev, "failed to disable regulators: %d\n", ret); > > > } > > > > int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > @@ -815,6 +830,16 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > dev_set_drvdata(dev, indio_dev); > > data->regmap = regmap; > > > > + data->supplies[0].supply = "vdd"; > > + data->supplies[1].supply = "vddio"; > > + ret = devm_regulator_bulk_get(dev, > > + ARRAY_SIZE(data->supplies), > > + data->supplies); > > + if (ret) { > > + dev_err(dev, "Failed to get regulators: %d\n", ret); > > + return ret; > > + } > > + > > ret = bmi160_chip_init(data, use_spi); > > if (ret) > > return ret; > > @@ -853,6 +878,6 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > } > > EXPORT_SYMBOL_GPL(bmi160_core_probe); > > > > -MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com"); > > +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); > > Good fix but shouldn't be in this patch. Put it a separate patch on it's own. > Ok will separate this fix into another patch, thank you! > > MODULE_DESCRIPTION("Bosch BMI160 driver"); > > MODULE_LICENSE("GPL v2"); > > Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 3/4] iio: imu: bmi160: added regulator support 2020-05-20 7:17 ` Jonathan Albrieux @ 2020-05-21 18:30 ` Jonathan Cameron 2020-05-22 8:25 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-21 18:30 UTC (permalink / raw) To: Jonathan Albrieux Cc: Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler On Wed, 20 May 2020 09:17:51 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > On Tue, May 19, 2020 at 06:55:35PM +0100, Jonathan Cameron wrote: > > On Tue, 19 May 2020 09:50:59 +0200 > > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > > > v2: fixed missing description > > > > Don't put change log here.... > > Yep I will put it in the cover letter > > > > > > > Add vdd-supply and vddio-supply support. Without this support vdd and vddio > > > should be set to always-on in device tree > > > > Kind of the opposite. If they are always on we don't have to provide them > > in the device tree. > > > > I wrote that because, testing on msm8916, without setting the regulators to > always on they were controlled by other components and it happened that > the line wasn't ready during probe causing failure to load the module. > > I will try to reword based on your comment, thank you. Ah. Understood. I'd give that explicit example in the patch description. I'd assumed this was the normal case of they weren't being described at all in DT, whereas you case is more complex. Jonathan > > > A few trivial things inline. > > > > > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > > --- > > > > Change log goes here so we don't end up keeping it in the git log. > > > > > drivers/iio/imu/bmi160/bmi160.h | 2 ++ > > > drivers/iio/imu/bmi160/bmi160_core.c | 27 ++++++++++++++++++++++++++- > > > 2 files changed, 28 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > > > index 621f5309d735..923c3b274fde 100644 > > > --- a/drivers/iio/imu/bmi160/bmi160.h > > > +++ b/drivers/iio/imu/bmi160/bmi160.h > > > @@ -3,10 +3,12 @@ > > > #define BMI160_H_ > > > > > > #include <linux/iio/iio.h> > > > +#include <linux/regulator/consumer.h> > > > > > > struct bmi160_data { > > > struct regmap *regmap; > > > struct iio_trigger *trig; > > > + struct regulator_bulk_data supplies[2]; > > > }; > > > > > > extern const struct regmap_config bmi160_regmap_config; > > > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > > > index 6af65d6f1d28..9bbe0d8e6720 100644 > > > --- a/drivers/iio/imu/bmi160/bmi160_core.c > > > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > > > @@ -15,6 +15,7 @@ > > > #include <linux/delay.h> > > > #include <linux/irq.h> > > > #include <linux/of_irq.h> > > > +#include <linux/regulator/consumer.h> > > > > > > #include <linux/iio/iio.h> > > > #include <linux/iio/triggered_buffer.h> > > > @@ -709,6 +710,12 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) > > > unsigned int val; > > > struct device *dev = regmap_get_device(data->regmap); > > > > > > + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); > > > + if (ret) { > > > + dev_err(dev, "Failed to enable regulators: %d\n", ret); > > > + return ret; > > > + } > > > + > > > ret = regmap_write(data->regmap, BMI160_REG_CMD, BMI160_CMD_SOFTRESET); > > > if (ret) > > > return ret; > > > @@ -793,9 +800,17 @@ int bmi160_probe_trigger(struct iio_dev *indio_dev, int irq, u32 irq_type) > > > static void bmi160_chip_uninit(void *data) > > > { > > > struct bmi160_data *bmi_data = data; > > > + struct device *dev = regmap_get_device(bmi_data->regmap); > > > + int ret; > > > > > > bmi160_set_mode(bmi_data, BMI160_GYRO, false); > > > bmi160_set_mode(bmi_data, BMI160_ACCEL, false); > > > + > > > + ret = regulator_bulk_disable(ARRAY_SIZE(bmi_data->supplies), > > > + bmi_data->supplies); > > > + if (ret) { > > > + dev_err(dev, "Failed to disable regulators: %d\n", ret); > > > + } > > No need for brackets around a 1 line if block > > > > Thank you, I didn't noticed that :-) > > > if (ret) > > dev_err(dev, "failed to disable regulators: %d\n", ret); > > > > > } > > > > > > int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > @@ -815,6 +830,16 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > dev_set_drvdata(dev, indio_dev); > > > data->regmap = regmap; > > > > > > + data->supplies[0].supply = "vdd"; > > > + data->supplies[1].supply = "vddio"; > > > + ret = devm_regulator_bulk_get(dev, > > > + ARRAY_SIZE(data->supplies), > > > + data->supplies); > > > + if (ret) { > > > + dev_err(dev, "Failed to get regulators: %d\n", ret); > > > + return ret; > > > + } > > > + > > > ret = bmi160_chip_init(data, use_spi); > > > if (ret) > > > return ret; > > > @@ -853,6 +878,6 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > } > > > EXPORT_SYMBOL_GPL(bmi160_core_probe); > > > > > > -MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com"); > > > +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); > > > > Good fix but shouldn't be in this patch. Put it a separate patch on it's own. > > > > Ok will separate this fix into another patch, thank you! > > > > MODULE_DESCRIPTION("Bosch BMI160 driver"); > > > MODULE_LICENSE("GPL v2"); > > > > > > Best regards, > Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 3/4] iio: imu: bmi160: added regulator support 2020-05-21 18:30 ` Jonathan Cameron @ 2020-05-22 8:25 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-22 8:25 UTC (permalink / raw) To: Jonathan Cameron Cc: Jonathan Cameron, linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler On Thu, May 21, 2020 at 07:30:55PM +0100, Jonathan Cameron wrote: > On Wed, 20 May 2020 09:17:51 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > On Tue, May 19, 2020 at 06:55:35PM +0100, Jonathan Cameron wrote: > > > On Tue, 19 May 2020 09:50:59 +0200 > > > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > > > > > v2: fixed missing description > > > > > > Don't put change log here.... > > > > Yep I will put it in the cover letter > > > > > > > > > > Add vdd-supply and vddio-supply support. Without this support vdd and vddio > > > > should be set to always-on in device tree > > > > > > Kind of the opposite. If they are always on we don't have to provide them > > > in the device tree. > > > > > > > I wrote that because, testing on msm8916, without setting the regulators to > > always on they were controlled by other components and it happened that > > the line wasn't ready during probe causing failure to load the module. > > > > I will try to reword based on your comment, thank you. > > Ah. Understood. I'd give that explicit example in the patch description. > I'd assumed this was the normal case of they weren't being described > at all in DT, whereas you case is more complex. > > Jonathan > Yep, I omitted to describe the case I was in. I'll add it to next patch, thank you, > > > > > A few trivial things inline. > > > > > > > > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > > > > --- > > > > > > Change log goes here so we don't end up keeping it in the git log. > > > > > > > drivers/iio/imu/bmi160/bmi160.h | 2 ++ > > > > drivers/iio/imu/bmi160/bmi160_core.c | 27 ++++++++++++++++++++++++++- > > > > 2 files changed, 28 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > > > > index 621f5309d735..923c3b274fde 100644 > > > > --- a/drivers/iio/imu/bmi160/bmi160.h > > > > +++ b/drivers/iio/imu/bmi160/bmi160.h > > > > @@ -3,10 +3,12 @@ > > > > #define BMI160_H_ > > > > > > > > #include <linux/iio/iio.h> > > > > +#include <linux/regulator/consumer.h> > > > > > > > > struct bmi160_data { > > > > struct regmap *regmap; > > > > struct iio_trigger *trig; > > > > + struct regulator_bulk_data supplies[2]; > > > > }; > > > > > > > > extern const struct regmap_config bmi160_regmap_config; > > > > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > > > > index 6af65d6f1d28..9bbe0d8e6720 100644 > > > > --- a/drivers/iio/imu/bmi160/bmi160_core.c > > > > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > > > > @@ -15,6 +15,7 @@ > > > > #include <linux/delay.h> > > > > #include <linux/irq.h> > > > > #include <linux/of_irq.h> > > > > +#include <linux/regulator/consumer.h> > > > > > > > > #include <linux/iio/iio.h> > > > > #include <linux/iio/triggered_buffer.h> > > > > @@ -709,6 +710,12 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) > > > > unsigned int val; > > > > struct device *dev = regmap_get_device(data->regmap); > > > > > > > > + ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); > > > > + if (ret) { > > > > + dev_err(dev, "Failed to enable regulators: %d\n", ret); > > > > + return ret; > > > > + } > > > > + > > > > ret = regmap_write(data->regmap, BMI160_REG_CMD, BMI160_CMD_SOFTRESET); > > > > if (ret) > > > > return ret; > > > > @@ -793,9 +800,17 @@ int bmi160_probe_trigger(struct iio_dev *indio_dev, int irq, u32 irq_type) > > > > static void bmi160_chip_uninit(void *data) > > > > { > > > > struct bmi160_data *bmi_data = data; > > > > + struct device *dev = regmap_get_device(bmi_data->regmap); > > > > + int ret; > > > > > > > > bmi160_set_mode(bmi_data, BMI160_GYRO, false); > > > > bmi160_set_mode(bmi_data, BMI160_ACCEL, false); > > > > + > > > > + ret = regulator_bulk_disable(ARRAY_SIZE(bmi_data->supplies), > > > > + bmi_data->supplies); > > > > + if (ret) { > > > > + dev_err(dev, "Failed to disable regulators: %d\n", ret); > > > > + } > > > No need for brackets around a 1 line if block > > > > > > > Thank you, I didn't noticed that :-) > > > > > if (ret) > > > dev_err(dev, "failed to disable regulators: %d\n", ret); > > > > > > > } > > > > > > > > int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > > @@ -815,6 +830,16 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > > dev_set_drvdata(dev, indio_dev); > > > > data->regmap = regmap; > > > > > > > > + data->supplies[0].supply = "vdd"; > > > > + data->supplies[1].supply = "vddio"; > > > > + ret = devm_regulator_bulk_get(dev, > > > > + ARRAY_SIZE(data->supplies), > > > > + data->supplies); > > > > + if (ret) { > > > > + dev_err(dev, "Failed to get regulators: %d\n", ret); > > > > + return ret; > > > > + } > > > > + > > > > ret = bmi160_chip_init(data, use_spi); > > > > if (ret) > > > > return ret; > > > > @@ -853,6 +878,6 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > > > } > > > > EXPORT_SYMBOL_GPL(bmi160_core_probe); > > > > > > > > -MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com"); > > > > +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); > > > > > > Good fix but shouldn't be in this patch. Put it a separate patch on it's own. > > > > > > > Ok will separate this fix into another patch, thank you! > > > > > > MODULE_DESCRIPTION("Bosch BMI160 driver"); > > > > MODULE_LICENSE("GPL v2"); > > > > > > > > > > Best regards, > > Jonathan Albrieux > Best regards, Jonathan Albrieux ^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support 2020-05-19 7:50 [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support Jonathan Albrieux ` (2 preceding siblings ...) 2020-05-19 7:50 ` [PATCH v2 3/4] iio: imu: bmi160: added regulator support Jonathan Albrieux @ 2020-05-19 7:51 ` Jonathan Albrieux 2020-05-19 17:57 ` Jonathan Cameron 3 siblings, 1 reply; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-19 7:51 UTC (permalink / raw) To: linux-kernel Cc: Jonathan Albrieux, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron Add mount-matrix binding support. As chip could have different orientations a mount matrix support is needed to correctly translate these differences Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> --- drivers/iio/imu/bmi160/bmi160.h | 1 + drivers/iio/imu/bmi160/bmi160_core.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h index 923c3b274fde..a82e040bd109 100644 --- a/drivers/iio/imu/bmi160/bmi160.h +++ b/drivers/iio/imu/bmi160/bmi160.h @@ -9,6 +9,7 @@ struct bmi160_data { struct regmap *regmap; struct iio_trigger *trig; struct regulator_bulk_data supplies[2]; + struct iio_mount_matrix orientation; }; extern const struct regmap_config bmi160_regmap_config; diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c index 9bbe0d8e6720..78c8ca962359 100644 --- a/drivers/iio/imu/bmi160/bmi160_core.c +++ b/drivers/iio/imu/bmi160/bmi160_core.c @@ -110,6 +110,7 @@ .storagebits = 16, \ .endianness = IIO_LE, \ }, \ + .ext_info = bmi160_ext_info, \ } /* scan indexes follow DATA register order */ @@ -265,6 +266,20 @@ static const struct bmi160_odr_item bmi160_odr_table[] = { }, }; +static const struct iio_mount_matrix * +bmi160_get_mount_matrix(const struct iio_dev *indio_dev, + const struct iio_chan_spec *chan) +{ + struct bmi160_data *data = iio_priv(indio_dev); + + return &data->orientation; +} + +static const struct iio_chan_spec_ext_info bmi160_ext_info[] = { + IIO_MOUNT_MATRIX(IIO_SHARED_BY_DIR, bmi160_get_mount_matrix), + { } +}; + static const struct iio_chan_spec bmi160_channels[] = { BMI160_CHANNEL(IIO_ACCEL, X, BMI160_SCAN_ACCEL_X), BMI160_CHANNEL(IIO_ACCEL, Y, BMI160_SCAN_ACCEL_Y), @@ -840,6 +855,11 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, return ret; } + ret = iio_read_mount_matrix(dev, "mount-matrix", + &data->orientation); + if (ret) + return ret; + ret = bmi160_chip_init(data, use_spi); if (ret) return ret; -- 2.17.1 ^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support 2020-05-19 7:51 ` [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support Jonathan Albrieux @ 2020-05-19 17:57 ` Jonathan Cameron 2020-05-20 7:20 ` Jonathan Albrieux 0 siblings, 1 reply; 25+ messages in thread From: Jonathan Cameron @ 2020-05-19 17:57 UTC (permalink / raw) To: Jonathan Albrieux Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, 19 May 2020 09:51:00 +0200 Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > Add mount-matrix binding support. As chip could have different orientations > a mount matrix support is needed to correctly translate these differences > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> Hi Jonathan, Looks good to me. I'll pick this up once 1-3 are tidied up and we have a device tree review in for the binding doc. I'm rubbish at reviewing those as Rob will certify so may well have missed something! Jonathan > --- > drivers/iio/imu/bmi160/bmi160.h | 1 + > drivers/iio/imu/bmi160/bmi160_core.c | 20 ++++++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > index 923c3b274fde..a82e040bd109 100644 > --- a/drivers/iio/imu/bmi160/bmi160.h > +++ b/drivers/iio/imu/bmi160/bmi160.h > @@ -9,6 +9,7 @@ struct bmi160_data { > struct regmap *regmap; > struct iio_trigger *trig; > struct regulator_bulk_data supplies[2]; > + struct iio_mount_matrix orientation; > }; > > extern const struct regmap_config bmi160_regmap_config; > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > index 9bbe0d8e6720..78c8ca962359 100644 > --- a/drivers/iio/imu/bmi160/bmi160_core.c > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > @@ -110,6 +110,7 @@ > .storagebits = 16, \ > .endianness = IIO_LE, \ > }, \ > + .ext_info = bmi160_ext_info, \ > } > > /* scan indexes follow DATA register order */ > @@ -265,6 +266,20 @@ static const struct bmi160_odr_item bmi160_odr_table[] = { > }, > }; > > +static const struct iio_mount_matrix * > +bmi160_get_mount_matrix(const struct iio_dev *indio_dev, > + const struct iio_chan_spec *chan) > +{ > + struct bmi160_data *data = iio_priv(indio_dev); > + > + return &data->orientation; > +} > + > +static const struct iio_chan_spec_ext_info bmi160_ext_info[] = { > + IIO_MOUNT_MATRIX(IIO_SHARED_BY_DIR, bmi160_get_mount_matrix), > + { } > +}; > + > static const struct iio_chan_spec bmi160_channels[] = { > BMI160_CHANNEL(IIO_ACCEL, X, BMI160_SCAN_ACCEL_X), > BMI160_CHANNEL(IIO_ACCEL, Y, BMI160_SCAN_ACCEL_Y), > @@ -840,6 +855,11 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > return ret; > } > > + ret = iio_read_mount_matrix(dev, "mount-matrix", > + &data->orientation); > + if (ret) > + return ret; > + > ret = bmi160_chip_init(data, use_spi); > if (ret) > return ret; ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support 2020-05-19 17:57 ` Jonathan Cameron @ 2020-05-20 7:20 ` Jonathan Albrieux 0 siblings, 0 replies; 25+ messages in thread From: Jonathan Albrieux @ 2020-05-20 7:20 UTC (permalink / raw) To: Jonathan Cameron Cc: linux-kernel, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Hartmut Knaack, Lars-Peter Clausen, open list:IIO SUBSYSTEM AND DRIVERS, Peter Meerwald-Stadler, Jonathan Cameron On Tue, May 19, 2020 at 06:57:11PM +0100, Jonathan Cameron wrote: > On Tue, 19 May 2020 09:51:00 +0200 > Jonathan Albrieux <jonathan.albrieux@gmail.com> wrote: > > > Add mount-matrix binding support. As chip could have different orientations > > a mount matrix support is needed to correctly translate these differences > > > > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com> > Hi Jonathan, > > Looks good to me. I'll pick this up once 1-3 are tidied up and > we have a device tree review in for the binding doc. I'm rubbish > at reviewing those as Rob will certify so may well have missed something! > > Jonathan > > Thank you! I'm going to work on suggestions now, Best regards, Jonathan Albrieux > > > --- > > drivers/iio/imu/bmi160/bmi160.h | 1 + > > drivers/iio/imu/bmi160/bmi160_core.c | 20 ++++++++++++++++++++ > > 2 files changed, 21 insertions(+) > > > > diff --git a/drivers/iio/imu/bmi160/bmi160.h b/drivers/iio/imu/bmi160/bmi160.h > > index 923c3b274fde..a82e040bd109 100644 > > --- a/drivers/iio/imu/bmi160/bmi160.h > > +++ b/drivers/iio/imu/bmi160/bmi160.h > > @@ -9,6 +9,7 @@ struct bmi160_data { > > struct regmap *regmap; > > struct iio_trigger *trig; > > struct regulator_bulk_data supplies[2]; > > + struct iio_mount_matrix orientation; > > }; > > > > extern const struct regmap_config bmi160_regmap_config; > > diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c > > index 9bbe0d8e6720..78c8ca962359 100644 > > --- a/drivers/iio/imu/bmi160/bmi160_core.c > > +++ b/drivers/iio/imu/bmi160/bmi160_core.c > > @@ -110,6 +110,7 @@ > > .storagebits = 16, \ > > .endianness = IIO_LE, \ > > }, \ > > + .ext_info = bmi160_ext_info, \ > > } > > > > /* scan indexes follow DATA register order */ > > @@ -265,6 +266,20 @@ static const struct bmi160_odr_item bmi160_odr_table[] = { > > }, > > }; > > > > +static const struct iio_mount_matrix * > > +bmi160_get_mount_matrix(const struct iio_dev *indio_dev, > > + const struct iio_chan_spec *chan) > > +{ > > + struct bmi160_data *data = iio_priv(indio_dev); > > + > > + return &data->orientation; > > +} > > + > > +static const struct iio_chan_spec_ext_info bmi160_ext_info[] = { > > + IIO_MOUNT_MATRIX(IIO_SHARED_BY_DIR, bmi160_get_mount_matrix), > > + { } > > +}; > > + > > static const struct iio_chan_spec bmi160_channels[] = { > > BMI160_CHANNEL(IIO_ACCEL, X, BMI160_SCAN_ACCEL_X), > > BMI160_CHANNEL(IIO_ACCEL, Y, BMI160_SCAN_ACCEL_Y), > > @@ -840,6 +855,11 @@ int bmi160_core_probe(struct device *dev, struct regmap *regmap, > > return ret; > > } > > > > + ret = iio_read_mount_matrix(dev, "mount-matrix", > > + &data->orientation); > > + if (ret) > > + return ret; > > + > > ret = bmi160_chip_init(data, use_spi); > > if (ret) > > return ret; > > ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2020-05-22 15:44 UTC | newest] Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-05-19 7:50 [PATCH v2 0/4] iio: imu: bmi160: added regulator and mount-matrix support Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 1/4] dt-bindings: iio: imu: bmi160: convert txt format to yaml Jonathan Albrieux 2020-05-19 17:37 ` Rob Herring 2020-05-20 7:06 ` Jonathan Albrieux 2020-05-19 17:49 ` Jonathan Cameron 2020-05-20 7:24 ` Jonathan Albrieux 2020-05-21 18:27 ` Jonathan Cameron 2020-05-22 8:22 ` Jonathan Albrieux 2020-05-22 10:47 ` Daniel Baluta 2020-05-22 14:26 ` Jonathan Albrieux 2020-05-22 14:59 ` Daniel Baluta 2020-05-22 15:44 ` Jonathan Albrieux 2020-05-19 18:20 ` Rob Herring 2020-05-20 7:29 ` Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 2/4] dt-bindings: iio: imu: bmi160: add regulators and mount-matrix Jonathan Albrieux 2020-05-19 17:51 ` Jonathan Cameron 2020-05-20 7:11 ` Jonathan Albrieux 2020-05-19 7:50 ` [PATCH v2 3/4] iio: imu: bmi160: added regulator support Jonathan Albrieux 2020-05-19 17:55 ` Jonathan Cameron 2020-05-20 7:17 ` Jonathan Albrieux 2020-05-21 18:30 ` Jonathan Cameron 2020-05-22 8:25 ` Jonathan Albrieux 2020-05-19 7:51 ` [PATCH v2 4/4] iio: imu: bmi160: added mount-matrix support Jonathan Albrieux 2020-05-19 17:57 ` Jonathan Cameron 2020-05-20 7:20 ` Jonathan Albrieux
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).