On 31/10/2023 09:08, Huangzheng Lai wrote: > Add yaml file to replace txt file, and added description and > example of reset attribute for Spreadtrum I2C controller. > > Signed-off-by: Huangzheng Lai <Huangzheng.Lai@xxxxxxxxxx> > --- > .../devicetree/bindings/i2c/i2c-sprd.txt | 31 -------- > .../devicetree/bindings/i2c/i2c-sprd.yaml | 79 +++++++++++++++++++ Filename matching compatible. > 2 files changed, 79 insertions(+), 31 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-sprd.txt > create mode 100644 Documentation/devicetree/bindings/i2c/i2c-sprd.yaml > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-sprd.txt b/Documentation/devicetree/bindings/i2c/i2c-sprd.txt > deleted file mode 100644 > index 7b6b3b8d0d11..000000000000 > --- a/Documentation/devicetree/bindings/i2c/i2c-sprd.txt > +++ /dev/null > @@ -1,31 +0,0 @@ > -I2C for Spreadtrum platforms > - > -Required properties: > -- compatible: Should be "sprd,sc9860-i2c". > -- reg: Specify the physical base address of the controller and length > - of memory mapped region. > -- interrupts: Should contain I2C interrupt. > -- clock-names: Should contain following entries: > - "i2c" for I2C clock, > - "source" for I2C source (parent) clock, > - "enable" for I2C module enable clock. > -- clocks: Should contain a clock specifier for each entry in clock-names. > -- clock-frequency: Contains desired I2C bus clock frequency in Hz. > -- #address-cells: Should be 1 to describe address cells for I2C device address. > -- #size-cells: Should be 0 means no size cell for I2C device address. > - > -Optional properties: > -- Child nodes conforming to I2C bus binding > - > -Examples: > -i2c0: i2c@70500000 { > - compatible = "sprd,sc9860-i2c"; > - reg = <0 0x70500000 0 0x1000>; > - interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; > - clock-names = "i2c", "source", "enable"; > - clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>; > - clock-frequency = <400000>; > - #address-cells = <1>; > - #size-cells = <0>; > -}; > - > diff --git a/Documentation/devicetree/bindings/i2c/i2c-sprd.yaml b/Documentation/devicetree/bindings/i2c/i2c-sprd.yaml > new file mode 100644 > index 000000000000..54378afe8419 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/i2c-sprd.yaml > @@ -0,0 +1,79 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +# Copyright 2020 Unisoc Inc. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/i2c/i2c-sprd.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Unisoc I2C Controller Device > + > +maintainers: > + - Huangzheng Lai <laihuangzheng@xxxxxxxxx> > + Missing ref to i2c-controller. Open existing bindings and use them as template instead of making something on your own with known bugs. > +properties: > + compatible: > + items: You can drop the items. > + - const: sprd,sc9860-i2c > + > + reg: > + maxItems: 2 You need to describe the items (items with description) > + > + interrupts: > + maxItems: 1 > + > + clock-names: > + items: > + - const: i2c > + - const: source > + - const: enable > + > + clocks: > + items: > + - description: Clock specifier for "i2c" in clock-names This description is useless and redundant. Instead, say what clock is it. If you do not know, then just maxItems: 3 > + - description: Clock specifier for "source" in clock-names > + - description: Clock specifier for "enable" in clock-names > + > + clock-frequency: > + description: Constains desired I2C bus clock frequency in Hz Typo, Contains > + > + "#address-cells": > + const: 1 > + description: Address cells for I2C device address Drop, why do you need it? > + > + "#size-cells": > + const: 0 > + description: Size cell for I2C device address Drop > + > + reset-names: > + const: i2c_rst Drop, wasn't in original binding. Or explain in commit msg what you changed and why. > + > + resets: > + maxItems: 1 > + description: Phandle to the reset controller. Drop, wasn't in original binding. Or explain in commit msg what you changed and why. Description is also quite redundant/useless. > + > +required: > + - compatible > + - reg > + - interrupts > + - clock-names > + - clocks > + - "#address-cells" > + - "#size-cells" Really... Open existing bindings. > + > +additionalProperties: false > + > +examples: > + - | > + i2c0: i2c@2240000 { > + compatible = "sprd,sc9860-i2c"; > + reg = <0 0x2240000 0 0x1000>; > + interrupts = <11>; > + clock-names = "i2c", "source", "enable"; > + clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>; > + clock-frequency = <400000>; > + #address-cells = <1>; > + #size-cells = <0>; > + reset-names = "i2c_rst"; > + resets = <&apahb_gate 3>; Incomplete. Add child node. > + }; > + Best regards, Krzysztof