[PATCH v33 3/5] dt-bindings: i2c: ast2600-i2c.yaml: Add global-regs properties
Ryan Chen <[email protected]> Tue, 23 Jun 2026 09:15:52 +0800
| Newsgroups | org.ozlabs.lists.openbmc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-i2c,org.kernel.vger.linux-kernel,org.ozlabs.lists.linux-aspeed |
|---|---|
| Message-ID | <[email protected]> |
Add the aspeed,global-regs phandle to reference the AST2600 global registers syscon node, containing the SoC-common I2C register set. These properties apply only to the AST2600 binding. Legacy DTs remain unchanged. Acked-by: Conor Dooley <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Signed-off-by: Ryan Chen <[email protected]> --- Changes in v32: - Add if/then conditional schema: when aspeed,global-regs is present, require reg to have at least two items. The new driver unconditionally maps resource index 1 (the buffer SRAM region); a DT with one reg entry and aspeed,global-regs passes schema validation but fails probe. The constraint makes the schema consistent with driver behaviour. - Fix binding example to use the correct AST2600 clock header (ast2600-clock.h) and ASPEED_CLK_APB2 instead of the legacy aspeed-clock.h, where index 26 (ASPEED_CLK_APB) maps to the UART5 gate clock on AST2600 rather than the APB2 bus clock used by the I2C controller. Changes in v29: - remove aspeed,enable-dma properties. Changes in v28: - update commit message correspond with aspeed,enable-dma. - remove aspeed,transfer-mode and add aspeed,enable-dma property and description. - Fix aspeed,enable-dma description to reflect hardware capability rather than software behavior Changes in v27: - change aspeed,transfer-mode to aspeed,enable-dma. --- .../devicetree/bindings/i2c/aspeed,ast2600-i2c.yaml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/aspeed,ast2600-i2c.yaml b/Documentation/devicetree/bindings/i2c/aspeed,ast2600-i2c.yaml index abc614315dff..eb6e316c112f 100644 --- a/Documentation/devicetree/bindings/i2c/aspeed,ast2600-i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/aspeed,ast2600-i2c.yaml @@ -48,6 +48,12 @@ properties: resets: maxItems: 1 + aspeed,global-regs: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle reference to the i2c global syscon node, containing the + SoC-common i2c register set. + required: - reg - compatible @@ -55,19 +61,28 @@ required: - resets - interrupts +if: + required: + - aspeed,global-regs +then: + properties: + reg: + minItems: 2 + unevaluatedProperties: false examples: - | - #include <dt-bindings/clock/aspeed-clock.h> + #include <dt-bindings/clock/ast2600-clock.h> #include <dt-bindings/interrupt-controller/arm-gic.h> i2c@80 { compatible = "aspeed,ast2600-i2c-bus"; reg = <0x80 0x80>, <0xc00 0x20>; #address-cells = <1>; #size-cells = <0>; - clocks = <&syscon ASPEED_CLK_APB>; + clocks = <&syscon ASPEED_CLK_APB2>; resets = <&syscon ASPEED_RESET_I2C>; clock-frequency = <100000>; interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + aspeed,global-regs = <&i2c_global>; }; -- 2.34.1