Thread (5 messages) 5 messages, 2 authors, 2024-06-18

Re: [PATCH v4] dt-bindings: phy: rockchip-emmc-phy: Convert to dtschema

From: Shresth Prasad <hidden>
Date: 2024-06-17 18:15:03
Also in: linux-arm-kernel, linux-devicetree, linux-rockchip, lkml

On Mon, Jun 17, 2024 at 9:29 PM Krzysztof Kozlowski [off-list ref] wrote:
On 17/06/2024 10:53, Shresth Prasad wrote:
quoted
Convert txt bindings of Rockchip EMMC PHY to dtschema to allow
for validation.

Signed-off-by: Shresth Prasad <redacted>
---

...

quoted
+
+  reg:
+    maxItems: 1
+
+  clock-names:
+    const: emmcclk
+
+  clocks:
+    maxItems: 1
Keep order from DTS coding style, so clocks then clock-names.
quoted
+
+  drive-impedance-ohm:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Specifies the drive impedance in Ohm.
+    enum: [33, 40, 50, 66, 100]
+    default: 50
+
+  rockchip,enable-strobe-pulldown:
+    type: boolean
+    description: |
+      Enable internal pull-down for the strobe
+      line.  If not set, pull-down is not used.
+
+  rockchip,output-tapdelay-select:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Specifies the phyctrl_otapdlysec register.
+    default: 0x4
+    maximum: 0xf
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    grf: syscon@ff770000 {
Drop label... actually entire node looks not needed.
From what I understand, this `phy` node should be a sub-node of a `grf`
node which is why it is part of the example.
quoted
+      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
Drop
quoted
+      reg = <0xff770000 0x10000>;
Drop
Removing `reg` causes the following warning:
Warning (unit_address_vs_reg): /example-0/syscon@ff770000: node has a
unit name, but no reg or ranges property

Please let me know what the prefered solution would be here.
quoted
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      emmcphy: phy@f780 {
Drop label
quoted
+        compatible = "rockchip,rk3399-emmc-phy";
+        reg = <0xf780 0x20>;
+        clocks = <&sdhci>;
+        clock-names = "emmcclk";
+        drive-impedance-ohm = <50>;
+        #phy-cells = <0>;
+      };
+    };
diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
deleted file mode 100644
index 57d28c0d5696..000000000000
--- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-Rockchip EMMC PHY
------------------------
-
-Required properties:
- - compatible: rockchip,rk3399-emmc-phy
- - #phy-cells: must be 0
- - reg: PHY register address offset and length in "general
-   register files"
-
-Optional properties:
- - clock-names: Should contain "emmcclk".  Although this is listed as optional
-             (because most boards can get basic functionality without having
-             access to it), it is strongly suggested.
-             See ../clock/clock-bindings.txt for details.
- - clocks: Should have a phandle to the card clock exported by the SDHCI driver.
- - drive-impedance-ohm: Specifies the drive impedance in Ohm.
-                        Possible values are 33, 40, 50, 66 and 100.
-                        If not set, the default value of 50 will be applied.
- - rockchip,enable-strobe-pulldown: Enable internal pull-down for the strobe
-                                    line.  If not set, pull-down is not used.
- - rockchip,output-tapdelay-select: Specifies the phyctrl_otapdlysec register.
-                                    If not set, the register defaults to 0x4.
-                                    Maximum value 0xf.
-
-Example:
-
-
-grf: syscon@ff770000 {
-     compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
-     #address-cells = <1>;
-     #size-cells = <1>;
-
-...
-
-     emmcphy: phy@f780 {
-             compatible = "rockchip,rk3399-emmc-phy";
-             reg = <0xf780 0x20>;
-             clocks = <&sdhci>;
-             clock-names = "emmcclk";
-             drive-impedance-ohm = <50>;
-             #phy-cells = <0>;
-     };
-};
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 79798c747476..6e1b1cdea680 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -176,9 +176,12 @@ allOf:
             Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt

       patternProperties:
-        "phy@[0-9a-f]+$":
-          description:
-            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+        "^phy@[0-9a-f]+$":
+          type: object
+
Drop blank line
quoted
+          $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml#
+
Drop blank line
The rest of the document also has these blank lines, which is why I've
also kept them here. Are you sure I should remove them?
quoted
+          unevaluatedProperties: false

   - if:
       properties:
Nothing in example? Isn't the example for 3399?

We want only one complete example of such multi-children devices, so the
example can be moved and included in existing one here.
The example in this file is actually for `rockchip,rk3399-usb2phy` and
not `rockchip,rk3399-emmc-phy` which is why I haven't touched it.

Should I add to the example in `grf.yaml` ?

Best regards,
Krzysztof
Please let me know if I've misunderstood anything or if there are any
other changes I should make.

Regards,
Shresth

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help