public inbox for linux-iio@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible
@ 2026-04-18 17:05 Piyush Patle
  2026-04-18 21:46 ` David Lechner
  0 siblings, 1 reply; 4+ messages in thread
From: Piyush Patle @ 2026-04-18 17:05 UTC (permalink / raw)
  To: jic23, ak, robh, krzk+dt, conor+dt
  Cc: dlechner, nuno.sa, andy, linux-iio, devicetree, linux-kernel

Add the HX710B compatible to the binding and describe the variant-specific
channel and gain model.

Also add an example node for HX710B so the schema covers both supported
parts.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
---
 .../bindings/iio/adc/avia-hx711.yaml          | 36 +++++++++++++++----
 1 file changed, 30 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml b/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
index 9c57eb13f892..19318c4dd994 100644
--- a/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/iio/adc/avia-hx711.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: AVIA HX711 ADC chip for weight cells
+title: AVIA HX711 and HX710B ADCs
 
 maintainers:
   - Andreas Klinger <ak@it-klinger.de>
@@ -12,9 +12,19 @@ maintainers:
 description: |
   Bit-banging driver using two GPIOs:
   - sck-gpio gives a clock to the sensor with 24 cycles for data retrieval
-    and up to 3 cycles for selection of the input channel and gain for the
-    next measurement
-  - dout-gpio is the sensor data the sensor responds to the clock
+    and 1 to 3 additional cycles for selection of the input channel and gain
+    for the next measurement
+  - dout-gpio is the sensor data output the sensor drives in response to
+    the clock
+
+  HX711: 24-bit ADC with selectable gain (32/64/128) and two differential
+  input channels. Channel A supports gain 64 and 128; channel B supports
+  gain 32.
+
+  HX710B: 24-bit ADC with fixed gain of 128. Channel 0 is the differential
+  input and channel 1 measures the DVDD-AVDD supply voltage difference.
+  Channel selection for the next conversion is controlled by the number of
+  trailing PD_SCK pulses.
 
   Specifications about the driver can be found at:
   http://www.aviaic.com/ENProducts.aspx
@@ -23,11 +33,12 @@ properties:
   compatible:
     enum:
       - avia,hx711
+      - avia,hx710b
 
   sck-gpios:
     description:
       Definition of the GPIO for the clock (output). In the datasheet it is
-      named PD_SCK
+      named PD_SCK.
     maxItems: 1
 
   dout-gpios:
@@ -43,6 +54,9 @@ properties:
       Definition of the regulator used as analog supply
 
   clock-frequency:
+    description:
+      Bit-bang clock frequency on PD_SCK. Keep the PD_SCK high time below
+      the chip power-down threshold.
     minimum: 20000
     maximum: 2500000
     default: 400000
@@ -58,10 +72,20 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
-    weight {
+    /* HX711 example */
+    weight0 {
         compatible = "avia,hx711";
         sck-gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>;
         dout-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
         avdd-supply = <&avdd>;
         clock-frequency = <100000>;
     };
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    /* HX710B example */
+    weight1 {
+        compatible = "avia,hx710b";
+        sck-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+        dout-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+        avdd-supply = <&avdd>;
+    };
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible
  2026-04-18 17:05 [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible Piyush Patle
@ 2026-04-18 21:46 ` David Lechner
  2026-04-19  5:17   ` Andreas Klinger
  0 siblings, 1 reply; 4+ messages in thread
From: David Lechner @ 2026-04-18 21:46 UTC (permalink / raw)
  To: Piyush Patle, jic23, ak, robh, krzk+dt, conor+dt
  Cc: nuno.sa, andy, linux-iio, devicetree, linux-kernel

On 4/18/26 12:05 PM, Piyush Patle wrote:
> Add the HX710B compatible to the binding and describe the variant-specific
> channel and gain model.
> 
> Also add an example node for HX710B so the schema covers both supported
> parts.
> 
> Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
> ---
>  .../bindings/iio/adc/avia-hx711.yaml          | 36 +++++++++++++++----
>  1 file changed, 30 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml b/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
> index 9c57eb13f892..19318c4dd994 100644
> --- a/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
> @@ -4,7 +4,7 @@
>  $id: http://devicetree.org/schemas/iio/adc/avia-hx711.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>  
> -title: AVIA HX711 ADC chip for weight cells
> +title: AVIA HX711 and HX710B ADCs
>  
>  maintainers:
>    - Andreas Klinger <ak@it-klinger.de>
> @@ -12,9 +12,19 @@ maintainers:
>  description: |
>    Bit-banging driver using two GPIOs:
>    - sck-gpio gives a clock to the sensor with 24 cycles for data retrieval
> -    and up to 3 cycles for selection of the input channel and gain for the
> -    next measurement
> -  - dout-gpio is the sensor data the sensor responds to the clock
> +    and 1 to 3 additional cycles for selection of the input channel and gain
> +    for the next measurement
> +  - dout-gpio is the sensor data output the sensor drives in response to
> +    the clock
> +
> +  HX711: 24-bit ADC with selectable gain (32/64/128) and two differential
> +  input channels. Channel A supports gain 64 and 128; channel B supports
> +  gain 32.
> +
> +  HX710B: 24-bit ADC with fixed gain of 128. Channel 0 is the differential
> +  input and channel 1 measures the DVDD-AVDD supply voltage difference.
> +  Channel selection for the next conversion is controlled by the number of
> +  trailing PD_SCK pulses.

The bits about "bit-banging" and "channel selection" sound like driver
implementation details that don't belong in the DT bindings.

>  
>    Specifications about the driver can be found at:
>    http://www.aviaic.com/ENProducts.aspx
> @@ -23,11 +33,12 @@ properties:
>    compatible:
>      enum:
>        - avia,hx711
> +      - avia,hx710b
>  
>    sck-gpios:
>      description:
>        Definition of the GPIO for the clock (output). In the datasheet it is
> -      named PD_SCK
> +      named PD_SCK.

Save the cleanups for a separate patch to keep the adding HX710B changes clear.

I'm guessing the existing binding for HX711 is quite old because it is quite
incomplete.

It has avdd-supply, but is missing vsup-supply and dvdd-supply.

It should probably also have a way to describe how the rate pin is wired.

And it should have a clocks property instead of clock-frequency.

It would make sense to have two clocks, on for XI/XO and one for PD_SCK.
The second one being optional because of sck-gpios.

HX710B has many fewer pins, so we will need an:

allOf:
  - if:
      properties:
	compatible:
	  const: avia,hx710b

section that sets anything for pins that chip doesn't have to false, like
vsup-supply.

HX710B also has a vref-supply that HX711 doesn't have. (Unless these are the
same thing by a different name?)


>      maxItems: 1
>  
>    dout-gpios:
> @@ -43,6 +54,9 @@ properties:
>        Definition of the regulator used as analog supply
>  
>    clock-frequency:
> +    description:
> +      Bit-bang clock frequency on PD_SCK. Keep the PD_SCK high time below
> +      the chip power-down threshold.

I suspect that this was meant to be the crystal frequency (XI/XO), not PD_SCK
since sck-gpios already exists for PD_SCK

>      minimum: 20000
>      maximum: 2500000
>      default: 400000
> @@ -58,10 +72,20 @@ additionalProperties: false
>  examples:
>    - |
>      #include <dt-bindings/gpio/gpio.h>
> -    weight {
> +    /* HX711 example */

The compatible string already has the part number, so this comment
doesn't really and any new info.

> +    weight0 {
>          compatible = "avia,hx711";
>          sck-gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>;
>          dout-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
>          avdd-supply = <&avdd>;
>          clock-frequency = <100000>;
>      };
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    /* HX710B example */
> +    weight1 {
> +        compatible = "avia,hx710b";
> +        sck-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> +        dout-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> +        avdd-supply = <&avdd>;
> +    };

There is nothing significantly different about this example, so it
isn't particularly useful.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible
  2026-04-18 21:46 ` David Lechner
@ 2026-04-19  5:17   ` Andreas Klinger
  2026-04-19 11:47     ` Jonathan Cameron
  0 siblings, 1 reply; 4+ messages in thread
From: Andreas Klinger @ 2026-04-19  5:17 UTC (permalink / raw)
  To: David Lechner
  Cc: Piyush Patle, jic23, robh, krzk+dt, conor+dt, nuno.sa, andy,
	linux-iio, devicetree, linux-kernel

Hi,

David Lechner <dlechner@baylibre.com> schrieb am Sa, 18. Apr 16:46:
> On 4/18/26 12:05 PM, Piyush Patle wrote:

[...]

> >  
> >    Specifications about the driver can be found at:
> >    http://www.aviaic.com/ENProducts.aspx
> > @@ -23,11 +33,12 @@ properties:
> >    compatible:
> >      enum:
> >        - avia,hx711
> > +      - avia,hx710b
> >  
> >    sck-gpios:
> >      description:
> >        Definition of the GPIO for the clock (output). In the datasheet it is
> > -      named PD_SCK
> > +      named PD_SCK.
> 
> Save the cleanups for a separate patch to keep the adding HX710B changes clear.
> 
> I'm guessing the existing binding for HX711 is quite old because it is quite
> incomplete.
> 
> It has avdd-supply, but is missing vsup-supply and dvdd-supply.
> 
> It should probably also have a way to describe how the rate pin is wired.
> 
> And it should have a clocks property instead of clock-frequency.

The real meaning is a wait time until the DOUT is stable. As a submitted the
driver many years ago my suggestion of a wait time property was not accepted
because it would have introduced a new property which didn't exit in those days.
The suggestion was to name it clock-frequency because it already existed. This
clock-frequency made the driver also a little bit more complicated because at
the end we needed a waiting time and not a frequency.

Today i see there is as "wait-delay" property already introduced at other
bindings. This would also simplify the driver a bit.

@robh@kernel.org, @krzk+dt@kernel.org, @conor+dt@kernel.org:
Would this change in the binding be acceptable?

If yes, i could prepare a driver and binding patch separate of this patchset to
clean it up.

> It would make sense to have two clocks, on for XI/XO and one for PD_SCK.
> The second one being optional because of sck-gpios.
> 
> HX710B has many fewer pins, so we will need an:
> 
> allOf:
>   - if:
>       properties:
> 	compatible:
> 	  const: avia,hx710b
> 
> section that sets anything for pins that chip doesn't have to false, like
> vsup-supply.
> 
> HX710B also has a vref-supply that HX711 doesn't have. (Unless these are the
> same thing by a different name?)
> 
> 
> >      maxItems: 1
> >  
> >    dout-gpios:
> > @@ -43,6 +54,9 @@ properties:
> >        Definition of the regulator used as analog supply
> >  
> >    clock-frequency:
> > +    description:
> > +      Bit-bang clock frequency on PD_SCK. Keep the PD_SCK high time below
> > +      the chip power-down threshold.
> 
> I suspect that this was meant to be the crystal frequency (XI/XO), not PD_SCK
> since sck-gpios already exists for PD_SCK

see above

[...]

Best regards,

Andreas

-- 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible
  2026-04-19  5:17   ` Andreas Klinger
@ 2026-04-19 11:47     ` Jonathan Cameron
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2026-04-19 11:47 UTC (permalink / raw)
  To: Andreas Klinger
  Cc: David Lechner, Piyush Patle, robh, krzk+dt, conor+dt, nuno.sa,
	andy, linux-iio, devicetree, linux-kernel

On Sun, 19 Apr 2026 07:17:50 +0200
Andreas Klinger <ak@it-klinger.de> wrote:

> Hi,
> 
> David Lechner <dlechner@baylibre.com> schrieb am Sa, 18. Apr 16:46:
> > On 4/18/26 12:05 PM, Piyush Patle wrote:  
> 
> [...]
> 
> > >  
> > >    Specifications about the driver can be found at:
> > >    http://www.aviaic.com/ENProducts.aspx
> > > @@ -23,11 +33,12 @@ properties:
> > >    compatible:
> > >      enum:
> > >        - avia,hx711
> > > +      - avia,hx710b
> > >  
> > >    sck-gpios:
> > >      description:
> > >        Definition of the GPIO for the clock (output). In the datasheet it is
> > > -      named PD_SCK
> > > +      named PD_SCK.  
> > 
> > Save the cleanups for a separate patch to keep the adding HX710B changes clear.
> > 
> > I'm guessing the existing binding for HX711 is quite old because it is quite
> > incomplete.
> > 
> > It has avdd-supply, but is missing vsup-supply and dvdd-supply.
> > 
> > It should probably also have a way to describe how the rate pin is wired.
> > 
> > And it should have a clocks property instead of clock-frequency.  
> 
> The real meaning is a wait time until the DOUT is stable. As a submitted the
> driver many years ago my suggestion of a wait time property was not accepted
> because it would have introduced a new property which didn't exit in those days.
> The suggestion was to name it clock-frequency because it already existed. This
> clock-frequency made the driver also a little bit more complicated because at
> the end we needed a waiting time and not a frequency.
> 
> Today i see there is as "wait-delay" property already introduced at other
> bindings. This would also simplify the driver a bit.
> 
> @robh@kernel.org, @krzk+dt@kernel.org, @conor+dt@kernel.org:
> Would this change in the binding be acceptable?
> 
> If yes, i could prepare a driver and binding patch separate of this patchset to
> clean it up.

You would need to maintain backwards compatiblity with the old binding.
Might be fine to deprecate it.

Jonathan

> 
> > It would make sense to have two clocks, on for XI/XO and one for PD_SCK.
> > The second one being optional because of sck-gpios.
> > 
> > HX710B has many fewer pins, so we will need an:
> > 
> > allOf:
> >   - if:
> >       properties:
> > 	compatible:
> > 	  const: avia,hx710b
> > 
> > section that sets anything for pins that chip doesn't have to false, like
> > vsup-supply.
> > 
> > HX710B also has a vref-supply that HX711 doesn't have. (Unless these are the
> > same thing by a different name?)
> > 
> >   
> > >      maxItems: 1
> > >  
> > >    dout-gpios:
> > > @@ -43,6 +54,9 @@ properties:
> > >        Definition of the regulator used as analog supply
> > >  
> > >    clock-frequency:
> > > +    description:
> > > +      Bit-bang clock frequency on PD_SCK. Keep the PD_SCK high time below
> > > +      the chip power-down threshold.  
> > 
> > I suspect that this was meant to be the crystal frequency (XI/XO), not PD_SCK
> > since sck-gpios already exists for PD_SCK  
> 
> see above
> 
> [...]
> 
> Best regards,
> 
> Andreas
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-04-19 11:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-18 17:05 [PATCH v1 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible Piyush Patle
2026-04-18 21:46 ` David Lechner
2026-04-19  5:17   ` Andreas Klinger
2026-04-19 11:47     ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox