Message ID | 20220909074842.281232-2-chenweilong@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | [next,v4,1/2] i2c: hisi: Add initial device tree support | expand |
On 2022/9/9 15:48, Weilong Chen wrote: > Add the new compatible for HiSilicon common i2c. > > Signed-off-by: Weilong Chen <chenweilong@huawei.com> > --- > .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ > 1 file changed, 67 insertions(+) > create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > > diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > new file mode 100644 > index 000000000000..f1cb6a4c70d1 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > @@ -0,0 +1,67 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: HiSilicon common IIC controller Device Tree Bindings > + > +maintainers: > + - yangyicong@huawei.com > + > +allOf: > + - $ref: /schemas/i2c/i2c-controller.yaml# > + > +properties: > + compatible: > + const: hisilicon,hisi-i2c > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clk_rate: > + default: 0xEE6B280 > + > + clock-frequency: > + default: 400000 > + > + i2c-sda-falling-time-ns: > + default: 343 > + > + i2c-scl-falling-time-ns: > + default: 203 > + > + i2c-sda-hold-time-ns: > + default: 0x33E > + > + i2c-scl-rising-time-ns: > + default: 365 > + > + i2c-digital-filter-width-ns: > + default: 0 > + > +required: > + - compatible > + - reg > + - interrupts > + > +unevaluatedProperties: false > + > +examples: > + - | > + i2c1: i2c@5038B0000{ > + compatible = "hisilicon,hisi-i2c"; > + reg = <0x38B0000 0x10000>; > + interrupts = <0x0 120 0x4>; > + i2c-sda-falling-time-ns = <56>; > + i2c-scl-falling-time-ns = <56>; > + i2c-sda-hold-time-ns = <56>; > + i2c-scl-rising-time-ns = <56>; The values used here are different from above. Are they used on different products? > + i2c-digital-filter; Should we discard the empty properties or is it necessary to have it? Others looks good to me, but the device tree experts may have some comments. This binding file should also be listed in the MAINTAINERS file. Thanks. > + i2c-digital-filter-width-ns = <0x0>; > + clk_rate = <0x0 0xEE6B280>; > + clock-frequency = <400000>; > + }; >
On 2022/9/13 15:59, Yicong Yang wrote: > On 2022/9/9 15:48, Weilong Chen wrote: >> Add the new compatible for HiSilicon common i2c. >> >> Signed-off-by: Weilong Chen <chenweilong@huawei.com> >> --- >> .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ >> 1 file changed, 67 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> >> diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> new file mode 100644 >> index 000000000000..f1cb6a4c70d1 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> @@ -0,0 +1,67 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: HiSilicon common IIC controller Device Tree Bindings >> + >> +maintainers: >> + - yangyicong@huawei.com >> + >> +allOf: >> + - $ref: /schemas/i2c/i2c-controller.yaml# >> + >> +properties: >> + compatible: >> + const: hisilicon,hisi-i2c >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + clk_rate: >> + default: 0xEE6B280 >> + >> + clock-frequency: >> + default: 400000 >> + >> + i2c-sda-falling-time-ns: >> + default: 343 >> + >> + i2c-scl-falling-time-ns: >> + default: 203 >> + >> + i2c-sda-hold-time-ns: >> + default: 0x33E >> + >> + i2c-scl-rising-time-ns: >> + default: 365 >> + >> + i2c-digital-filter-width-ns: >> + default: 0 >> + >> +required: >> + - compatible >> + - reg >> + - interrupts >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + i2c1: i2c@5038B0000{ >> + compatible = "hisilicon,hisi-i2c"; >> + reg = <0x38B0000 0x10000>; >> + interrupts = <0x0 120 0x4>; >> + i2c-sda-falling-time-ns = <56>; >> + i2c-scl-falling-time-ns = <56>; >> + i2c-sda-hold-time-ns = <56>; >> + i2c-scl-rising-time-ns = <56>; > The values used here are different from above. Are they used on different > products? Yes, it's a specific config for new product. >> + i2c-digital-filter; > Should we discard the empty properties or is it necessary to have it? > > Others looks good to me, but the device tree experts may have some comments. > > This binding file should also be listed in the MAINTAINERS file. > > Thanks. No, i2c-digital-filter is needed to fix the error: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.example.dtb: i2c@5038B0000: 'i2c-digital-filter' is a dependency of 'i2c-digital-filter-width-ns' And, I'll update the MAINTAINERS file. Thanks. >> + i2c-digital-filter-width-ns = <0x0>; >> + clk_rate = <0x0 0xEE6B280>; >> + clock-frequency = <400000>; >> + }; >> > .
On 2022/9/13 17:08, chenweilong wrote: > On 2022/9/13 15:59, Yicong Yang wrote: >> On 2022/9/9 15:48, Weilong Chen wrote: >>> Add the new compatible for HiSilicon common i2c. >>> >>> Signed-off-by: Weilong Chen <chenweilong@huawei.com> >>> --- >>> .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ >>> 1 file changed, 67 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >>> new file mode 100644 >>> index 000000000000..f1cb6a4c70d1 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >>> @@ -0,0 +1,67 @@ >>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" >>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >>> + >>> +title: HiSilicon common IIC controller Device Tree Bindings >>> + >>> +maintainers: >>> + - yangyicong@huawei.com >>> + >>> +allOf: >>> + - $ref: /schemas/i2c/i2c-controller.yaml# >>> + >>> +properties: >>> + compatible: >>> + const: hisilicon,hisi-i2c >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + interrupts: >>> + maxItems: 1 >>> + >>> + clk_rate: >>> + default: 0xEE6B280 >>> + >>> + clock-frequency: >>> + default: 400000 >>> + >>> + i2c-sda-falling-time-ns: >>> + default: 343 >>> + >>> + i2c-scl-falling-time-ns: >>> + default: 203 >>> + >>> + i2c-sda-hold-time-ns: >>> + default: 0x33E >>> + >>> + i2c-scl-rising-time-ns: >>> + default: 365 >>> + >>> + i2c-digital-filter-width-ns: >>> + default: 0 >>> + >>> +required: >>> + - compatible >>> + - reg >>> + - interrupts >>> + >>> +unevaluatedProperties: false >>> + >>> +examples: >>> + - | >>> + i2c1: i2c@5038B0000{ >>> + compatible = "hisilicon,hisi-i2c"; >>> + reg = <0x38B0000 0x10000>; >>> + interrupts = <0x0 120 0x4>; >>> + i2c-sda-falling-time-ns = <56>; >>> + i2c-scl-falling-time-ns = <56>; >>> + i2c-sda-hold-time-ns = <56>; >>> + i2c-scl-rising-time-ns = <56>; >> The values used here are different from above. Are they used on different >> products? > Yes, it's a specific config for new product. >>> + i2c-digital-filter; >> Should we discard the empty properties or is it necessary to have it? >> >> Others looks good to me, but the device tree experts may have some comments. >> >> This binding file should also be listed in the MAINTAINERS file. >> >> Thanks. > > No, i2c-digital-filter is needed to fix the error: > > dtschema/dtc warnings/errors: > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.example.dtb: i2c@5038B0000: 'i2c-digital-filter' is a dependency of 'i2c-digital-filter-width-ns' > > And, I'll update the MAINTAINERS file. > ok. Thanks for the explanation. > Thanks. > >>> + i2c-digital-filter-width-ns = <0x0>; >>> + clk_rate = <0x0 0xEE6B280>; >>> + clock-frequency = <400000>; >>> + }; >>> >> . > > > . >
On Fri, Sep 09, 2022 at 03:48:42PM +0800, Weilong Chen wrote: > Add the new compatible for HiSilicon common i2c. > > Signed-off-by: Weilong Chen <chenweilong@huawei.com> > --- > .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ > 1 file changed, 67 insertions(+) > create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > > diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > new file mode 100644 > index 000000000000..f1cb6a4c70d1 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml > @@ -0,0 +1,67 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: HiSilicon common IIC controller Device Tree Bindings > + > +maintainers: > + - yangyicong@huawei.com > + > +allOf: > + - $ref: /schemas/i2c/i2c-controller.yaml# > + > +properties: > + compatible: > + const: hisilicon,hisi-i2c You need SoC specific compatibles. > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clk_rate: > + default: 0xEE6B280 What is this property for? Use the clock binding. > + > + clock-frequency: > + default: 400000 > + > + i2c-sda-falling-time-ns: > + default: 343 > + > + i2c-scl-falling-time-ns: > + default: 203 > + > + i2c-sda-hold-time-ns: > + default: 0x33E The rest are in decimal. Be consistent. > + > + i2c-scl-rising-time-ns: > + default: 365 > + > + i2c-digital-filter-width-ns: > + default: 0 > + > +required: > + - compatible > + - reg > + - interrupts > + > +unevaluatedProperties: false > + > +examples: > + - | > + i2c1: i2c@5038B0000{ Space needed ^ Use lowercase hex. Drop unused labels. > + compatible = "hisilicon,hisi-i2c"; > + reg = <0x38B0000 0x10000>; > + interrupts = <0x0 120 0x4>; > + i2c-sda-falling-time-ns = <56>; > + i2c-scl-falling-time-ns = <56>; > + i2c-sda-hold-time-ns = <56>; > + i2c-scl-rising-time-ns = <56>; > + i2c-digital-filter; > + i2c-digital-filter-width-ns = <0x0>; > + clk_rate = <0x0 0xEE6B280>; > + clock-frequency = <400000>; > + }; > -- > 2.31.GIT > >
Thanks for your review. I'll update the patch. On 2022/9/13 20:22, Rob Herring wrote: > On Fri, Sep 09, 2022 at 03:48:42PM +0800, Weilong Chen wrote: >> Add the new compatible for HiSilicon common i2c. >> >> Signed-off-by: Weilong Chen <chenweilong@huawei.com> >> --- >> .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ >> 1 file changed, 67 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> >> diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> new file mode 100644 >> index 000000000000..f1cb6a4c70d1 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> @@ -0,0 +1,67 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: HiSilicon common IIC controller Device Tree Bindings >> + >> +maintainers: >> + - yangyicong@huawei.com >> + >> +allOf: >> + - $ref: /schemas/i2c/i2c-controller.yaml# >> + >> +properties: >> + compatible: >> + const: hisilicon,hisi-i2c > You need SoC specific compatibles. > >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + clk_rate: >> + default: 0xEE6B280 > What is this property for? Use the clock binding. > >> + >> + clock-frequency: >> + default: 400000 >> + >> + i2c-sda-falling-time-ns: >> + default: 343 >> + >> + i2c-scl-falling-time-ns: >> + default: 203 >> + >> + i2c-sda-hold-time-ns: >> + default: 0x33E > The rest are in decimal. Be consistent. > >> + >> + i2c-scl-rising-time-ns: >> + default: 365 >> + >> + i2c-digital-filter-width-ns: >> + default: 0 >> + >> +required: >> + - compatible >> + - reg >> + - interrupts >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + i2c1: i2c@5038B0000{ > Space needed ^ > > Use lowercase hex. > > Drop unused labels. > >> + compatible = "hisilicon,hisi-i2c"; >> + reg = <0x38B0000 0x10000>; >> + interrupts = <0x0 120 0x4>; >> + i2c-sda-falling-time-ns = <56>; >> + i2c-scl-falling-time-ns = <56>; >> + i2c-sda-hold-time-ns = <56>; >> + i2c-scl-rising-time-ns = <56>; >> + i2c-digital-filter; >> + i2c-digital-filter-width-ns = <0x0>; >> + clk_rate = <0x0 0xEE6B280>; >> + clock-frequency = <400000>; >> + }; >> -- >> 2.31.GIT >> >> > .
On 2022/9/13 20:22, Rob Herring wrote: > On Fri, Sep 09, 2022 at 03:48:42PM +0800, Weilong Chen wrote: >> Add the new compatible for HiSilicon common i2c. >> >> Signed-off-by: Weilong Chen <chenweilong@huawei.com> >> --- >> .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ >> 1 file changed, 67 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> >> diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> new file mode 100644 >> index 000000000000..f1cb6a4c70d1 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml >> @@ -0,0 +1,67 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: HiSilicon common IIC controller Device Tree Bindings >> + >> +maintainers: >> + - yangyicong@huawei.com >> + >> +allOf: >> + - $ref: /schemas/i2c/i2c-controller.yaml# >> + >> +properties: >> + compatible: >> + const: hisilicon,hisi-i2c > You need SoC specific compatibles. Hi Rob, I add a description for specific compatibles in the next version: https://lore.kernel.org/lkml/20220920072215.161331-2-chenweilong@huawei.com/T/ Please take a look, Do you think that's OK? Thank you. > >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + clk_rate: >> + default: 0xEE6B280 > What is this property for? Use the clock binding. > >> + >> + clock-frequency: >> + default: 400000 >> + >> + i2c-sda-falling-time-ns: >> + default: 343 >> + >> + i2c-scl-falling-time-ns: >> + default: 203 >> + >> + i2c-sda-hold-time-ns: >> + default: 0x33E > The rest are in decimal. Be consistent. > >> + >> + i2c-scl-rising-time-ns: >> + default: 365 >> + >> + i2c-digital-filter-width-ns: >> + default: 0 >> + >> +required: >> + - compatible >> + - reg >> + - interrupts >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + i2c1: i2c@5038B0000{ > Space needed ^ > > Use lowercase hex. > > Drop unused labels. > >> + compatible = "hisilicon,hisi-i2c"; >> + reg = <0x38B0000 0x10000>; >> + interrupts = <0x0 120 0x4>; >> + i2c-sda-falling-time-ns = <56>; >> + i2c-scl-falling-time-ns = <56>; >> + i2c-sda-hold-time-ns = <56>; >> + i2c-scl-rising-time-ns = <56>; >> + i2c-digital-filter; >> + i2c-digital-filter-width-ns = <0x0>; >> + clk_rate = <0x0 0xEE6B280>; >> + clock-frequency = <400000>; >> + }; >> -- >> 2.31.GIT >> >> > .
diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml new file mode 100644 index 000000000000..f1cb6a4c70d1 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml @@ -0,0 +1,67 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/i2c/hisilicon,hisi-i2c.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: HiSilicon common IIC controller Device Tree Bindings + +maintainers: + - yangyicong@huawei.com + +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + +properties: + compatible: + const: hisilicon,hisi-i2c + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clk_rate: + default: 0xEE6B280 + + clock-frequency: + default: 400000 + + i2c-sda-falling-time-ns: + default: 343 + + i2c-scl-falling-time-ns: + default: 203 + + i2c-sda-hold-time-ns: + default: 0x33E + + i2c-scl-rising-time-ns: + default: 365 + + i2c-digital-filter-width-ns: + default: 0 + +required: + - compatible + - reg + - interrupts + +unevaluatedProperties: false + +examples: + - | + i2c1: i2c@5038B0000{ + compatible = "hisilicon,hisi-i2c"; + reg = <0x38B0000 0x10000>; + interrupts = <0x0 120 0x4>; + i2c-sda-falling-time-ns = <56>; + i2c-scl-falling-time-ns = <56>; + i2c-sda-hold-time-ns = <56>; + i2c-scl-rising-time-ns = <56>; + i2c-digital-filter; + i2c-digital-filter-width-ns = <0x0>; + clk_rate = <0x0 0xEE6B280>; + clock-frequency = <400000>; + };
Add the new compatible for HiSilicon common i2c. Signed-off-by: Weilong Chen <chenweilong@huawei.com> --- .../bindings/i2c/hisilicon,hisi-i2c.yaml | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,hisi-i2c.yaml