[PATCH RFC 1/4] dt-binding: phy: hisi-inno-usb2: convert to YAML
Yang Xiwen
forbidden405 at outlook.com
Sat Feb 17 05:14:20 PST 2024
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 at outlook.com>
>>
>> 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 at outlook.com>
>> ---
>> .../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 at outlook.com>
>> +
>> +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 at 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 at 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 at 0 {
>> + reg = <0>;
>> + #phy-cells = <0>;
>> + resets = <&crg 0xbc 8>;
>> + };
>> +
>> + phy at 1 {
>> + reg = <1>;
>> + #phy-cells = <0>;
>> + resets = <&crg 0xbc 9>;
>> + };
>> + };
>> +
>> + usb2-phy at 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.
>
> Best regards,
> Krzysztof
>
--
Regards,
Yang Xiwen
More information about the linux-phy
mailing list