Re: [PATCH v2 1/2] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible

From: Krzysztof Kozlowski

Date: Tue Apr 21 2026 - 04:27:38 EST


On Sun, Apr 19, 2026 at 11:16:39PM +0530, Piyush Patle wrote:
> 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
> + The HX711 is a 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.
>
> - Specifications about the driver can be found at:
> - http://www.aviaic.com/ENProducts.aspx
> + The HX710B is a 24-bit ADC with fixed gain of 128. Channel 0 is the
> + differential input and channel 1 measures the DVDD-AVDD supply
> + voltage difference.
>
> properties:
> compatible:
> enum:
> + - avia,hx710b
> - avia,hx711
>
> sck-gpios:
> @@ -40,13 +40,45 @@ properties:
>
> avdd-supply:
> description:
> - Definition of the regulator used as analog supply
> + Analog supply voltage (AVDD). Also serves as the voltage reference on
> + both chips; no separate vref-supply is required.

There is no such thing as vref-supply.

> +
> + dvdd-supply:
> + description:
> + Digital supply voltage (DVDD). HX711 only.
> +
> + vsup-supply:
> + description:
> + Supply voltage for the on-chip regulator (VSUP). HX711 only.
> +
> + rate-gpios:
> + description:
> + GPIO connected to the RATE pin (HX711 only). When driven low the
> + output data rate is 10 SPS; when driven high it is 80 SPS. If
> + omitted the RATE pin state is determined by the board wiring.
> + maxItems: 1
>
> clock-frequency:
> + description:
> + Controls the SCK bit-bang timing. The value is used to derive the
> + delay between SCK edges; keep the SCK high time below 60 us to
> + avoid triggering chip power-down mode. Defaults to 400 kHz if not
> + specified.

Don't repeat constraints in free form text. Drop last sentence.

> minimum: 20000
> maximum: 2500000
> default: 400000
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + const: avia,hx710b
> + then:
> + properties:
> + vsup-supply: false
> + dvdd-supply: false
> + rate-gpios: false
> +
> required:
> - compatible
> - sck-gpios
> @@ -58,10 +90,19 @@ additionalProperties: false
> examples:
> - |
> #include <dt-bindings/gpio/gpio.h>
> - weight {
> + weight0 {

Don't change the node names.

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

Why no clock-frequency? So basically difference is one property? Then no
need for new example, less code to maintain.

But OTOH, where is vsup and dvdd?

> + };
> --
> 2.43.0
>