diff mbox series

[v3,2/4] dt-bindings: iio: magnetometer: ak8975: add gpio reset support

Message ID 20200519124402.26076-3-jonathan.albrieux@gmail.com
State Superseded
Headers show
Series iio: magnetometer: ak8975: Add gpio reset support | expand

Checks

Context Check Description
robh/dt-meta-schema success
robh/checkpatch success

Commit Message

Jonathan Albrieux May 19, 2020, 12:43 p.m. UTC
Add reset-gpio support.

Without reset's deassertion during ak8975_power_on(), driver's probe fails
on ak8975_who_i_am() while checking for device identity for AK09911 chip.

AK09911 has an active low reset gpio to handle register's reset.
AK09911 datasheed says that, if not used, reset pin should be connected
to VID. This patch emulates this situation.

Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com>
---
 .../devicetree/bindings/iio/magnetometer/ak8975.yaml          | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Stephan Gerhold May 19, 2020, 1:23 p.m. UTC | #1
On Tue, May 19, 2020 at 02:43:52PM +0200, Jonathan Albrieux wrote:
> Add reset-gpio support.
> 
> Without reset's deassertion during ak8975_power_on(), driver's probe fails
> on ak8975_who_i_am() while checking for device identity for AK09911 chip.
> 
> AK09911 has an active low reset gpio to handle register's reset.
> AK09911 datasheed says that, if not used, reset pin should be connected

datasheed -> datasheet

> to VID. This patch emulates this situation.
> 
> Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com>
> ---
>  .../devicetree/bindings/iio/magnetometer/ak8975.yaml          | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> index 86e3efa693a8..a82c0ff5d098 100644
> --- a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> +++ b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> @@ -37,6 +37,9 @@ properties:
>    mount-matrix:
>      description: an optional 3x3 mounting rotation matrix
>  
> +  reset-gpio:
> +    description: an optional pin needed for AK09911 to set the reset state

Maybe add a comment that this should be "usually active low".

> +
>  required:
>    - compatible
>    - reg
> @@ -53,6 +56,7 @@ examples:
>              reg = <0x0c>;
>              gpios = <&gpj0 7 0>;
>              vdd-supply = <&ldo_3v3_gnss>;
> +            reset-gpio = <&msmgpio 111 1>;

Same here, reset-gpio = <&msmgpio 111 GPIO_ACTIVE_LOW>,
would be more clear.

>              mount-matrix = "-0.984807753012208",  /* x0 */
>                             "0",                   /* y0 */
>                             "-0.173648177666930",  /* z0 */
> -- 
> 2.17.1
Jonathan Albrieux May 19, 2020, 2:09 p.m. UTC | #2
On Tue, May 19, 2020 at 03:23:54PM +0200, Stephan Gerhold wrote:
> On Tue, May 19, 2020 at 02:43:52PM +0200, Jonathan Albrieux wrote:
> > Add reset-gpio support.
> > 
> > Without reset's deassertion during ak8975_power_on(), driver's probe fails
> > on ak8975_who_i_am() while checking for device identity for AK09911 chip.
> > 
> > AK09911 has an active low reset gpio to handle register's reset.
> > AK09911 datasheed says that, if not used, reset pin should be connected
> 
> datasheed -> datasheet
>

Will fix that soon
 
> > to VID. This patch emulates this situation.
> > 
> > Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com>
> > ---
> >  .../devicetree/bindings/iio/magnetometer/ak8975.yaml          | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> > index 86e3efa693a8..a82c0ff5d098 100644
> > --- a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> > +++ b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> > @@ -37,6 +37,9 @@ properties:
> >    mount-matrix:
> >      description: an optional 3x3 mounting rotation matrix
> >  
> > +  reset-gpio:
> > +    description: an optional pin needed for AK09911 to set the reset state
> 
> Maybe add a comment that this should be "usually active low".
> 
> > +
> >  required:
> >    - compatible
> >    - reg
> > @@ -53,6 +56,7 @@ examples:
> >              reg = <0x0c>;
> >              gpios = <&gpj0 7 0>;
> >              vdd-supply = <&ldo_3v3_gnss>;
> > +            reset-gpio = <&msmgpio 111 1>;
> 
> Same here, reset-gpio = <&msmgpio 111 GPIO_ACTIVE_LOW>,
> would be more clear.
> 
> >              mount-matrix = "-0.984807753012208",  /* x0 */
> >                             "0",                   /* y0 */
> >                             "-0.173648177666930",  /* z0 */
> > -- 
> > 2.17.1

Thank you for the suggestions, will work on them,

Best regards,
Jonathan Albrieux
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
index 86e3efa693a8..a82c0ff5d098 100644
--- a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
+++ b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
@@ -37,6 +37,9 @@  properties:
   mount-matrix:
     description: an optional 3x3 mounting rotation matrix
 
+  reset-gpio:
+    description: an optional pin needed for AK09911 to set the reset state
+
 required:
   - compatible
   - reg
@@ -53,6 +56,7 @@  examples:
             reg = <0x0c>;
             gpios = <&gpj0 7 0>;
             vdd-supply = <&ldo_3v3_gnss>;
+            reset-gpio = <&msmgpio 111 1>;
             mount-matrix = "-0.984807753012208",  /* x0 */
                            "0",                   /* y0 */
                            "-0.173648177666930",  /* z0 */