Message ID | 20250224055936.1804279-2-ryan_chen@aspeedtech.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add ASPEED AST2600 I2Cv2 controller driver | expand |
On Mon, 24 Feb 2025 13:59:34 +0800, Ryan Chen wrote: > Add ast2600-i2cv2 compatible and aspeed,global-regs, aspeed,enable-dma > and description for ast2600-i2cv2. > > Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com> > --- > .../devicetree/bindings/i2c/aspeed,i2c.yaml | 58 +++++++++++++++++++ > 1 file changed, 58 insertions(+) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: ./Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml:82:1: [error] duplication of key "allOf" in mapping (key-duplicates) dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml: ignoring, error parsing file ./Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml:82:1: found duplicate key "allOf" with value "[]" (original value: "[]") make[2]: *** Deleting file 'Documentation/devicetree/bindings/i2c/aspeed,i2c.example.dts' Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml:82:1: found duplicate key "allOf" with value "[]" (original value: "[]") make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/i2c/aspeed,i2c.example.dts] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1511: dt_binding_check] Error 2 make: *** [Makefile:251: __sub-make] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250224055936.1804279-2-ryan_chen@aspeedtech.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Mon, Feb 24, 2025 at 01:59:34PM +0800, Ryan Chen wrote: > Add ast2600-i2cv2 compatible and aspeed,global-regs, aspeed,enable-dma > and description for ast2600-i2cv2. > > Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com> > --- > .../devicetree/bindings/i2c/aspeed,i2c.yaml | 58 +++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml b/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml > index 5b9bd2feda3b..356033d18f90 100644 > --- a/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml > +++ b/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml > @@ -44,12 +44,60 @@ properties: > description: frequency of the bus clock in Hz defaults to 100 kHz when not > specified > > + multi-master: > + type: boolean > + description: > + states that there is another master active on this bus Except that this wasn't ever tested... Don't duplicate properties. i2c-controller schema has it already. > + > + aspeed,enable-dma: > + type: boolean > + description: | > + I2C bus enable dma mode transfer. > + > + ASPEED ast2600 platform equipped with 16 I2C controllers that share a > + single DMA engine. DTS files can specify the data transfer mode to/from > + the device, either DMA or programmed I/O. However, hardware limitations so what is byte mode? > + may require a DTS to manually allocate which controller can use DMA mode. > + The "aspeed,enable-dma" property allows control of this. > + > + In cases where one the hardware design results in a specific > + controller handling a larger amount of data, a DTS would likely > + enable DMA mode for that one controller. > + > + aspeed,enable-byte: > + type: boolean > + description: | > + I2C bus enable byte mode transfer. No, either this is expressed as lack of dma mode property or if you have three modes, then rather some enum (aspeed,transfer-mode ?) > + > + aspeed,global-regs: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: The phandle of i2c global register node. For what? Same question as usual: do not repeat property name, but say what is this used for and what exactly it points to. s/i2c/I2C/ but then what is "I2C global register node"? This is how you call your device in datasheet? > + > required: > - reg > - compatible > - clocks > - resets > > +allOf: > + - $ref: /schemas/i2c/i2c-controller.yaml# > + - if: > + properties: > + compatible: > + contains: > + const: aspeed,ast2600-i2cv2 NAK, undocumented compatible. > + > + then: > + properties: > + reg: > + minItems: 2 Best regards, Krzysztof
On 24/02/2025 10:11, Krzysztof Kozlowski wrote: > > >> + >> required: >> - reg >> - compatible >> - clocks >> - resets >> >> +allOf: >> + - $ref: /schemas/i2c/i2c-controller.yaml# >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: aspeed,ast2600-i2cv2 > > NAK, undocumented compatible. Heh, and this was in previous versions as well. You have never tested your DTS. At v16 still no testing. This is not acceptable. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml b/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml index 5b9bd2feda3b..356033d18f90 100644 --- a/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml @@ -44,12 +44,60 @@ properties: description: frequency of the bus clock in Hz defaults to 100 kHz when not specified + multi-master: + type: boolean + description: + states that there is another master active on this bus + + aspeed,enable-dma: + type: boolean + description: | + I2C bus enable dma mode transfer. + + ASPEED ast2600 platform equipped with 16 I2C controllers that share a + single DMA engine. DTS files can specify the data transfer mode to/from + the device, either DMA or programmed I/O. However, hardware limitations + may require a DTS to manually allocate which controller can use DMA mode. + The "aspeed,enable-dma" property allows control of this. + + In cases where one the hardware design results in a specific + controller handling a larger amount of data, a DTS would likely + enable DMA mode for that one controller. + + aspeed,enable-byte: + type: boolean + description: | + I2C bus enable byte mode transfer. + + aspeed,global-regs: + $ref: /schemas/types.yaml#/definitions/phandle + description: The phandle of i2c global register node. + required: - reg - compatible - clocks - resets +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + - if: + properties: + compatible: + contains: + const: aspeed,ast2600-i2cv2 + + then: + properties: + reg: + minItems: 2 + required: + - aspeed,global-regs + else: + properties: + aspeed,global-regs: false + aspeed,enable-dma: false + unevaluatedProperties: false examples: @@ -66,3 +114,13 @@ examples: interrupts = <0>; interrupt-parent = <&i2c_ic>; }; + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + i2c1: i2c@80 { + compatible = "aspeed,ast2600-i2cv2"; + reg = <0x80 0x80>, <0xc00 0x20>; + aspeed,global-regs = <&i2c_global>; + clocks = <&syscon ASPEED_CLK_APB>; + resets = <&syscon ASPEED_RESET_I2C>; + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + };
Add ast2600-i2cv2 compatible and aspeed,global-regs, aspeed,enable-dma and description for ast2600-i2cv2. Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com> --- .../devicetree/bindings/i2c/aspeed,i2c.yaml | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+)