On 17/02/2024 14:14, Yang Xiwen wrote: > On 2/17/2024 6:14 PM, Krzysztof Kozlowski wrote: >> On 16/02/2024 16:21, Yang Xiwen via B4 Relay wrote: >>> From: Yang Xiwen <forbidden405@xxxxxxxxxxx> >>> >>> Also rename to hisilicon,inno-usb2-phy.yaml and add this name to >>> compatible lists. >> Please use subject prefixes matching the subsystem. You can get them for >> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory >> your patch is touching. >> >>> Signed-off-by: Yang Xiwen <forbidden405@xxxxxxxxxxx> >>> --- >>> .../bindings/phy/hisilicon,inno-usb2-phy.yaml | 115 +++++++++++++++++++++ >>> .../devicetree/bindings/phy/phy-hisi-inno-usb2.txt | 71 ------------- >>> 2 files changed, 115 insertions(+), 71 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/phy/hisilicon,inno-usb2-phy.yaml b/Documentation/devicetree/bindings/phy/hisilicon,inno-usb2-phy.yaml >>> new file mode 100644 >>> index 000000000000..73256eee10f9 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/phy/hisilicon,inno-usb2-phy.yaml >>> @@ -0,0 +1,115 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/phy/hisilicon,inno-usb2-phy.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: HiSilicon HiSTB SoCs INNO USB2 PHY device >>> + >>> +maintainers: >>> + - Yang Xiwen <forbidden405@xxxxxxxxxxx> >>> + >>> +properties: >>> + compatible: >>> + minItems: 1 >> No, why? Compatibles must be fixed/constrained. > Hi3798CV200 has only the first compatible listed in its device tree. But > you are right i can add it to hi3798mv200.dtsi so that `minItems` can be > removed >> >>> + items: >>> + - enum: >>> + - hisilicon,hi3798cv200-usb2-phy >>> + - hisilicon,hi3798mv100-usb2-phy >> This wasn't here before. Not explained in commit msg. >> >>> + - const: hisilicon,inno-usb2-phy >>> + >>> + reg: >>> + maxItems: 1 >>> + description: | >> Do not need '|' unless you need to preserve formatting. >> >>> + Should be the address space for PHY configuration register in peripheral >>> + controller, e.g. PERI_USB0 for USB 2.0 PHY01 on Hi3798CV200 SoC. >>> + Or direct MMIO address space. >>> + >>> + '#address-cells': >>> + const: 1 >>> + >>> + '#size-cells': >>> + const: 0 >>> + >>> + clocks: >>> + maxItems: 1 >>> + description: reference clock >>> + >>> + resets: >>> + maxItems: 1 >>> + >>> +patternProperties: >>> + 'phy@[0-9a-f]+': >>> + type: object >>> + additionalProperties: false >>> + description: individual ports provided by INNO PHY >>> + >>> + properties: >>> + reg: >>> + maxItems: 1 >>> + >>> + '#phy-cells': >>> + const: 0 >>> + >>> + resets: >>> + maxItems: 1 >>> + >>> + required: [reg, '#phy-cells', resets] >> One item per line. Look at other bindings or example-schema. >> >>> + >>> +required: >>> + - compatible >>> + - clocks >>> + - reg >>> + - '#address-cells' >>> + - '#size-cells' >>> + - resets >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + #include <dt-bindings/clock/histb-clock.h> >>> + >>> + peripheral-controller@8a20000 { >>> + compatible = "hisilicon,hi3798cv200-perictrl", "syscon", "simple-mfd"; >>> + reg = <0x8a20000 0x1000>; >>> + #address-cells = <1>; >>> + #size-cells = <1>; >>> + ranges = <0x0 0x8a20000 0x1000>; >> Drop the node, not related to this binding. If this binding is supposed >> to be part of other device in case of MFD devices or some tightly >> coupled ones, then could be included in the example there. >> >>> + >>> + usb2-phy@120 { >>> + compatible = "hisilicon,hi3798cv200-usb2-phy"; >>> + reg = <0x120 0x4>; >>> + clocks = <&crg HISTB_USB2_PHY1_REF_CLK>; >>> + resets = <&crg 0xbc 4>; >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + phy@0 { >>> + reg = <0>; >>> + #phy-cells = <0>; >>> + resets = <&crg 0xbc 8>; >>> + }; >>> + >>> + phy@1 { >>> + reg = <1>; >>> + #phy-cells = <0>; >>> + resets = <&crg 0xbc 9>; >>> + }; >>> + }; >>> + >>> + usb2-phy@124 { >>> + compatible = "hisilicon,hi3798cv200-usb2-phy"; >> You can keep only one example, because they are basically the same. > > It is listed here just because cv200 (and the upcoming mv200) actually > has two INNO phys in the SoC. And coincidently for both SoCs, one with > two ports is wired to USB2 controller(EHCI &OHCI), while the other one > with only one port is wired to DWC3 controller. The example here is > borrowed directly from hi3798cv200.dtsi. > I see the differences and one difference means they are basically the same. Best regards, Krzysztof