Commit af89e575 authored by Florian Fainelli's avatar Florian Fainelli Committed by Vinod Koul
Browse files

dt-bindings: phy: Convert Broadcom SATA PHY to YAML



Update the Broadcom SATA PHY Device Tree binding to a YAML format.

Suggested-by: default avatarVinod Koul <vkoul@kernel.org>
Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20201204193532.1934108-1-f.fainelli@gmail.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 86e21677
Loading
Loading
Loading
Loading
+148 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/phy/brcm,sata-phy.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Broadcom SATA3 PHY

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

properties:
  $nodename:
    pattern: "^sata[-|_]phy(@.*)?$"

  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,bcm7216-sata-phy
              - brcm,bcm7425-sata-phy
              - brcm,bcm7445-sata-phy
              - brcm,bcm63138-sata-phy
          - const: brcm,phy-sata3
      - items:
          - const: brcm,iproc-nsp-sata-phy
      - items:
          - const: brcm,iproc-ns2-sata-phy
      - items:
          - const: brcm,iproc-sr-sata-phy

  reg:
    minItems: 1
    maxItems: 2

  reg-names:
    minItems: 1
    maxItems: 2
    items:
      - const: phy
      - const: phy-ctrl

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^sata-phy@[0-9]+$":
    type: object
    description: |
      Each port's PHY should be represented as a sub-node.

    properties:
      reg:
        description: The SATA PHY port number
        maxItems: 1

      "#phy-cells":
        const: 0

      "brcm,enable-ssc":
        $ref: /schemas/types.yaml#/definitions/flag
        description: |
          Use spread spectrum clocking (SSC) on this port
          This property is not applicable for "brcm,iproc-ns2-sata-phy",
          "brcm,iproc-nsp-sata-phy" and "brcm,iproc-sr-sata-phy".

      "brcm,rxaeq-mode":
        $ref: /schemas/types.yaml#/definitions/string
        description:
          String that indicates the desired RX equalizer mode.
        enum:
          - off
          - auto
          - manual

      "brcm,rxaeq-value":
        $ref: /schemas/types.yaml#/definitions/uint32
        description: |
            When 'brcm,rxaeq-mode' is set to "manual", provides the RX
            equalizer value that should be used.
        minimum: 0
        maximum: 63

      "brcm,tx-amplitude-millivolt":
        description: |
            Transmit amplitude voltage in millivolt.
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [400, 500, 600, 800]

    required:
      - reg
      - "#phy-cells"

    additionalProperties: false

if:
  properties:
    compatible:
      items:
        const: brcm,iproc-ns2-sata-phy
then:
  properties:
    reg:
      maxItems: 2
    reg-names:
      items:
        - const: "phy"
        - const: "phy-ctrl"
else:
  properties:
    reg:
      maxItems: 1
    reg-names:
      maxItems: 1
      items:
        - const: "phy"

required:
  - compatible
  - "#address-cells"
  - "#size-cells"
  - reg
  - reg-names

additionalProperties: false

examples:
  - |
    sata_phy@f0458100 {
        compatible = "brcm,bcm7445-sata-phy", "brcm,phy-sata3";
        reg = <0xf0458100 0x1e00>;
        reg-names = "phy";
        #address-cells = <1>;
        #size-cells = <0>;

        sata-phy@0 {
                reg = <0>;
                #phy-cells = <0>;
        };

        sata-phy@1 {
                reg = <1>;
                #phy-cells = <0>;
        };
    };
+0 −61
Original line number Diff line number Diff line
* Broadcom SATA3 PHY

Required properties:
- compatible: should be one or more of
     "brcm,bcm7216-sata-phy"
     "brcm,bcm7425-sata-phy"
     "brcm,bcm7445-sata-phy"
     "brcm,iproc-ns2-sata-phy"
     "brcm,iproc-nsp-sata-phy"
     "brcm,phy-sata3"
     "brcm,iproc-sr-sata-phy"
     "brcm,bcm63138-sata-phy"
- address-cells: should be 1
- size-cells: should be 0
- reg: register ranges for the PHY PCB interface
- reg-names: should be "phy" and "phy-ctrl"
     The "phy-ctrl" registers are only required for
     "brcm,iproc-ns2-sata-phy" and "brcm,iproc-sr-sata-phy".

Sub-nodes:
  Each port's PHY should be represented as a sub-node.

Sub-nodes required properties:
- reg: the PHY number
- phy-cells: generic PHY binding; must be 0

Sub-nodes optional properties:
- brcm,enable-ssc: use spread spectrum clocking (SSC) on this port
     This property is not applicable for "brcm,iproc-ns2-sata-phy",
     "brcm,iproc-nsp-sata-phy" and "brcm,iproc-sr-sata-phy".

- brcm,rxaeq-mode: string that indicates the desired RX equalizer
  mode, possible values are:
	"off" (equivalent to not specifying the property)
	"auto"
	"manual" (brcm,rxaeq-value is used in that case)

- brcm,rxaeq-value: when 'rxaeq-mode' is set to "manual", provides the RX
  equalizer value that should be used. Allowed range is 0..63.

- brcm,tx-amplitude-millivolt: transmit amplitude voltage in millivolt.
  Possible values are 400, 500, 600 or 800 mV.

Example
	sata-phy@f0458100 {
		compatible = "brcm,bcm7445-sata-phy", "brcm,phy-sata3";
		reg = <0xf0458100 0x1e00>, <0xf045804c 0x10>;
		reg-names = "phy";
		#address-cells = <1>;
		#size-cells = <0>;

		sata-phy@0 {
			reg = <0>;
			#phy-cells = <0>;
		};

		sata-phy@1 {
			reg = <1>;
			#phy-cells = <0>;
		};
	};