On Thu, Feb 6, 2020 at 12:11 AM Yuti Amonkar <yamonkar@xxxxxxxxxxx> wrote: > > - Add Cadence MHDP PHY bindings in YAML format. > - Add Torrent PHY reference clock bindings. > - Add sub-node bindings for each group of PHY lanes based on PHY type. > Each sub-node includes properties such as master lane number, link reset, > phy type, number of lanes etc. > - Add reset support including PHY reset and individual lane reset. > - Add a new compatible string used for TI SoCs using Torrent PHY. > This will not affect ABI as the driver has never been functional, > and therefore do not exist in any active use case. > > Signed-off-by: Yuti Amonkar <yamonkar@xxxxxxxxxxx> > --- > .../bindings/phy/phy-cadence-torrent.yaml | 143 ++++++++++++++++++ > 1 file changed, 143 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml > > diff --git a/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml b/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml > new file mode 100644 > index 000000000000..9f94be1dce6e > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml > @@ -0,0 +1,143 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/phy/phy-cadence-torrent.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: Cadence Torrent SD0801 PHY binding for DisplayPort > + > +description: > + This binding describes the Cadence SD0801 PHY (also known as Torrent PHY) > + hardware included with the Cadence MHDP DisplayPort controller. > + > +maintainers: > + - Swapnil Jakhade <sjakhade@xxxxxxxxxxx> > + - Yuti Amonkar <yamonkar@xxxxxxxxxxx> > + > +properties: > + compatible: > + enum: > + - cdns,torrent-phy > + - ti,j721e-serdes-10g > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + clocks: > + maxItems: 1 > + description: > + PHY reference clock. Must contain an entry in clock-names. > + > + clock-names: > + const: refclk > + > + reg: > + minItems: 1 > + maxItems: 2 > + items: > + - description: Offset of the Torrent PHY configuration registers. > + - description: Offset of the DPTX PHY configuration registers. > + > + reg-names: > + minItems: 1 > + maxItems: 2 > + items: > + - const: torrent_phy > + - const: dptx_phy > + > + resets: > + maxItems: 1 > + description: > + Torrent PHY reset. > + See Documentation/devicetree/bindings/reset/reset.txt > + > +patternProperties: > + '^phy@[0-7]+$': > + type: object > + description: > + Each group of PHY lanes with a single master lane should be represented as a sub-node. > + properties: > + reg: > + description: > + The master lane number. This is the lowest numbered lane in the lane group. > + > + resets: > + minItems: 1 > + maxItems: 4 > + description: > + Contains list of resets, one per lane, to get all the link lanes out of reset. > + > + "#phy-cells": > + const: 0 > + > + cdns,phy-type: > + description: > + Specifies the type of PHY for which the group of PHY lanes is used. > + Refer include/dt-bindings/phy/phy.h. Constants from the header should be used. > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32 > + - enum: [1, 2, 3, 4, 5, 6] > + > + cdns,num-lanes: > + description: > + Number of DisplayPort lanes. > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32 > + - enum: [1, 2, 4] > + default: 4 > + > + cdns,max-bit-rate: > + description: > + Maximum DisplayPort link bit rate to use, in Mbps > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32 > + - enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100] > + default: 8100 > + > + required: > + - reg > + - resets > + - "#phy-cells" > + - cdns,phy-type > + > + additionalProperties: false > + > +required: > + - compatible > + - "#address-cells" > + - "#size-cells" > + - clocks > + - clock-names > + - reg > + - reg-names > + - resets > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/phy/phy.h> > + torrent_phy: phy@f0fb500000 { The example still fails, now in linux-next: Documentation/devicetree/bindings/phy/phy-cadence-torrent.example.dt.yaml: phy@f0fb500000: '#phy-cells' is a required property This is because of the node name 'phy' and this node is not a phy provider (the child nodes are). Just use 'torrent-phy@...' here. > + compatible = "cdns,torrent-phy"; > + reg = <0xf0 0xfb500000 0x0 0x00100000>, > + <0xf0 0xfb030a00 0x0 0x00000040>; > + reg-names = "torrent_phy", "dptx_phy"; > + resets = <&phyrst 0>; > + clocks = <&ref_clk>; > + clock-names = "refclk"; > + #address-cells = <1>; > + #size-cells = <0>; > + torrent_phy_dp: phy@0 { > + reg = <0>; > + resets = <&phyrst 1>, <&phyrst 2>, > + <&phyrst 3>, <&phyrst 4>; > + #phy-cells = <0>; > + cdns,phy-type = <PHY_TYPE_DP>; > + cdns,num-lanes = <4>; > + cdns,max-bit-rate = <8100>; > + }; > + }; > +... > -- > 2.20.1 >