[PATCH 1/3] dt-bindings: iio: adc: Add syscon property for multi-SCU SoCs

Billy Tsai billy_tsai at aspeedtech.com
Wed Sep 30 20:28:44 PDT 2026


The ADC's reference-voltage trimming data lives in a System Control
Unit (SCU) register. SoCs with a single SCU instance let the driver
locate it without any additional information, but SoCs such as AST2700
that expose more than one SCU node need an explicit phandle to
disambiguate which one holds the trimming data.

Add an optional "syscon" phandle property, and require it for the
AST2700 compatibles since they are the first multi-SCU SoCs supported
by this driver.

Signed-off-by: Billy Tsai <billy_tsai at aspeedtech.com>
Assisted-by: Claude:claude-sonnet-5
---
 .../bindings/iio/adc/aspeed,ast2600-adc.yaml       | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml b/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml
index 249101b55cf4e..0d6b10450cfa8 100644
--- a/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml
@@ -67,6 +67,11 @@ properties:
     description:
       Inform the driver that last channel will be used to sensor battery.
 
+  syscon:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Required on SoCs with more than one SCU instance (e.g. AST2700).
+
 required:
   - compatible
   - reg
@@ -74,6 +79,18 @@ required:
   - resets
   - "#io-channel-cells"
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - aspeed,ast2700-adc0
+              - aspeed,ast2700-adc1
+    then:
+      required:
+        - syscon
+
 additionalProperties: false
 
 examples:
@@ -95,4 +112,15 @@ examples:
         #io-channel-cells = <1>;
         aspeed,int-vref-microvolt = <2500000>;
     };
+  - |
+    #include <dt-bindings/clock/aspeed,ast2700-scu.h>
+    #include <dt-bindings/reset/aspeed,ast2700-scu.h>
+    adc0: adc at 14c00000 {
+        compatible = "aspeed,ast2700-adc0";
+        reg = <0x14c00000 0x100>;
+        clocks = <&syscon1 SCU1_CLK_AHB>;
+        resets = <&syscon1 SCU1_RESET_ADC>;
+        syscon = <&syscon1>;
+        #io-channel-cells = <1>;
+    };
 ...

-- 
2.34.1




More information about the linux-arm-kernel mailing list