Message ID | 20241112-k1-i2c-master-v3-1-5005b70dc208@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | riscv: spacemit: add i2c support to K1 SoC | expand |
On Tue, Nov 12, 2024 at 11:07:39AM +0800, Troy Mitchell wrote: > From: Troy Mitchell <troymitchell988@gmail.com> > > The I2C of K1 supports fast-speed-mode and high-speed-mode, > and supports FIFO transmission. > > Signed-off-by: Troy Mitchell <TroyMitchell988@gmail.com> > --- > .../devicetree/bindings/i2c/spacemit,k1-i2c.yaml | 52 ++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml > new file mode 100644 > index 000000000000..e8cce360bf03 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml > @@ -0,0 +1,52 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/i2c/spacemit,k1-i2c.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: I2C controller embedded in SpacemiT's K1 SoC > + > +maintainers: > + - Troy Mitchell <troymitchell988@gmail.com> > + > +properties: > + compatible: > + const: spacemit,k1-i2c > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-frequency: > + description: > + Desired I2C bus clock frequency in Hz. > + K1 supports standard, fast, high-speed modes, from 1 to 3300000. > + default: 100000 > + minimum: 1 > + maximum: 3300000 It's sufficient to define just default and max btw, the min is set in i2c-controller.yaml (in dt-schema itself). Don't respin for that alone. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + > +unevaluatedProperties: false > + > +examples: > + - | > + i2c@d4010800 { > + compatible = "spacemit,k1-i2c"; > + reg = <0xd4010800 0x38>; > + interrupt-parent = <&plic>; > + interrupts = <36>; > + clocks = <&ccu 90>; > + clock-frequency = <100000>; > + }; > + > +... > > -- > 2.34.1 >
On 18:03 Tue 12 Nov , Conor Dooley wrote: > On Tue, Nov 12, 2024 at 11:07:39AM +0800, Troy Mitchell wrote: > > From: Troy Mitchell <troymitchell988@gmail.com> > > > > The I2C of K1 supports fast-speed-mode and high-speed-mode, > > and supports FIFO transmission. > > > > Signed-off-by: Troy Mitchell <TroyMitchell988@gmail.com> > > --- > > .../devicetree/bindings/i2c/spacemit,k1-i2c.yaml | 52 ++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml > > new file mode 100644 > > index 000000000000..e8cce360bf03 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml > > @@ -0,0 +1,52 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/i2c/spacemit,k1-i2c.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: I2C controller embedded in SpacemiT's K1 SoC > > + > > +maintainers: > > + - Troy Mitchell <troymitchell988@gmail.com> > > + > > +properties: > > + compatible: > > + const: spacemit,k1-i2c > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + > > + clock-frequency: > > + description: > > + Desired I2C bus clock frequency in Hz. > > + K1 supports standard, fast, high-speed modes, from 1 to 3300000. while we are here, I'd suggest rephrase the sentence above to align it better with the doc K1 support three different modes which running different frequencies standard speed mode: up to 100000 (100Hz) fast speed mode : up to 400000 (400Hz) high speed mode : up to 3300000 (3.3Mhz) > > + default: 100000 > > + minimum: 1 > > + maximum: 3300000 > > It's sufficient to define just default and max btw, the min is set in > i2c-controller.yaml (in dt-schema itself). Don't respin for that alone. +1, the minimum settings isn't really useful, clearly not apply in the practical case > > Reviewed-by: Conor Dooley <conor.dooley@microchip.com> > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - clocks > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + i2c@d4010800 { > > + compatible = "spacemit,k1-i2c"; > > + reg = <0xd4010800 0x38>; > > + interrupt-parent = <&plic>; > > + interrupts = <36>; > > + clocks = <&ccu 90>; > > + clock-frequency = <100000>; > > + }; > > + > > +... > > > > -- > > 2.34.1 > >
Hi, Yixun. Thanks for ur review. On 2024/11/14 15:06, Yixun Lan wrote: > On 18:03 Tue 12 Nov , Conor Dooley wrote: >> On Tue, Nov 12, 2024 at 11:07:39AM +0800, Troy Mitchell wrote: >>> From: Troy Mitchell <troymitchell988@gmail.com> >>> >>> The I2C of K1 supports fast-speed-mode and high-speed-mode, >>> and supports FIFO transmission. >>> >>> Signed-off-by: Troy Mitchell <TroyMitchell988@gmail.com> >>> --- >>> .../devicetree/bindings/i2c/spacemit,k1-i2c.yaml | 52 ++++++++++++++++++++++ >>> 1 file changed, 52 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml >>> new file mode 100644 >>> index 000000000000..e8cce360bf03 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml >>> @@ -0,0 +1,52 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/i2c/spacemit,k1-i2c.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: I2C controller embedded in SpacemiT's K1 SoC >>> + >>> +maintainers: >>> + - Troy Mitchell <troymitchell988@gmail.com> >>> + >>> +properties: >>> + compatible: >>> + const: spacemit,k1-i2c >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + interrupts: >>> + maxItems: 1 >>> + >>> + clocks: >>> + maxItems: 1 >>> + >>> + clock-frequency: >>> + description: >>> + Desired I2C bus clock frequency in Hz. >>> + K1 supports standard, fast, high-speed modes, from 1 to 3300000. > while we are here, I'd suggest rephrase the sentence above to align it better with the doc > > K1 support three different modes which running different frequencies > standard speed mode: up to 100000 (100Hz) > fast speed mode : up to 400000 (400Hz) > high speed mode : up to 3300000 (3.3Mhz)> >>> + default: 100000 >>> + minimum: 1 I will modify `description` and drop `minimum` in next version >>> + maximum: 3300000 >> >> It's sufficient to define just default and max btw, the min is set in >> i2c-controller.yaml (in dt-schema itself). Don't respin for that alone. > +1, the minimum settings isn't really useful, clearly not apply in the practical case > >> >> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> >>> + >>> +required: >>> + - compatible >>> + - reg >>> + - interrupts >>> + - clocks >>> + >>> +unevaluatedProperties: false >>> + >>> +examples: >>> + - | >>> + i2c@d4010800 { >>> + compatible = "spacemit,k1-i2c"; >>> + reg = <0xd4010800 0x38>; >>> + interrupt-parent = <&plic>; >>> + interrupts = <36>; >>> + clocks = <&ccu 90>; >>> + clock-frequency = <100000>; >>> + }; >>> + >>> +... >>> >>> -- >>> 2.34.1 >>> > > >
diff --git a/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml new file mode 100644 index 000000000000..e8cce360bf03 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/spacemit,k1-i2c.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: I2C controller embedded in SpacemiT's K1 SoC + +maintainers: + - Troy Mitchell <troymitchell988@gmail.com> + +properties: + compatible: + const: spacemit,k1-i2c + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-frequency: + description: + Desired I2C bus clock frequency in Hz. + K1 supports standard, fast, high-speed modes, from 1 to 3300000. + default: 100000 + minimum: 1 + maximum: 3300000 + +required: + - compatible + - reg + - interrupts + - clocks + +unevaluatedProperties: false + +examples: + - | + i2c@d4010800 { + compatible = "spacemit,k1-i2c"; + reg = <0xd4010800 0x38>; + interrupt-parent = <&plic>; + interrupts = <36>; + clocks = <&ccu 90>; + clock-frequency = <100000>; + }; + +...