* [PATCH v2 0/2] dt-bindings: phy: Convert TI OMAP control and PIPE3 PHY to DT schema
@ 2026-01-07 16:11 Charan Pedumuru
2026-01-07 16:11 ` [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert " Charan Pedumuru
2026-01-07 16:11 ` [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: " Charan Pedumuru
0 siblings, 2 replies; 10+ messages in thread
From: Charan Pedumuru @ 2026-01-07 16:11 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kishon Vijay Abraham I
Cc: linux-phy, devicetree, linux-kernel, Charan Pedumuru
This series converts the old text-based DeviceTree bindings for TI OMAP
Control PHY and TI PIPE3 PHY to modern JSON-schema (YAML) format.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
Changes in v2:
- ti,control-phy-otghs: Update commit message to reflect the latest
binding changes.
- ti,phy-usb3: Drop the obsolete "id" property from the schema.
- Both bindings: Update maintainers list, modify node pattern and improve
node descriptions for clarity.
- ti,phy-usb3: Introduce new YAML schema with properly defined optional
properties for the PIPE3 PHY.
- Link to v1: https://lore.kernel.org/r/20260103-ti-phy-v1-1-8c3f5e2cbd63@gmail.com
---
Charan Pedumuru (2):
dt-bindings: phy: ti,phy-usb3: convert to DT schema
dt-bindings: phy: ti,control-phy-otghs: convert to DT schema
.../bindings/phy/ti,control-phy-otghs.yaml | 94 +++++++++++++++
.../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++
Documentation/devicetree/bindings/phy/ti-phy.txt | 98 ----------------
3 files changed, 221 insertions(+), 98 deletions(-)
---
base-commit: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8
change-id: 20251231-ti-phy-58bb9e38cfc9
Best regards,
--
Charan Pedumuru <charan.pedumuru@gmail.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-07 16:11 [PATCH v2 0/2] dt-bindings: phy: Convert TI OMAP control and PIPE3 PHY to DT schema Charan Pedumuru @ 2026-01-07 16:11 ` Charan Pedumuru 2026-01-14 14:16 ` Vinod Koul 2026-01-15 14:45 ` Rob Herring 2026-01-07 16:11 ` [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: " Charan Pedumuru 1 sibling, 2 replies; 10+ messages in thread From: Charan Pedumuru @ 2026-01-07 16:11 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I Cc: linux-phy, devicetree, linux-kernel, Charan Pedumuru Convert TI PIPE3 PHY binding to DT schema. Changes during conversion: - Define a new pattern 'pciephy' to match nodes defined in DT. - Drop obsolete "id" property from the schema. Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> --- .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml new file mode 100644 index 000000000000..41b3828723ae --- /dev/null +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml @@ -0,0 +1,127 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI PIPE3 PHY Module + +maintainers: + - Kishon Vijay Abraham I <kishon@ti.com> + +description: + The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) + transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. + It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 + interface standard, which defines a common physical layer for + high-speed serial interfaces. + +properties: + $nodename: + pattern: "^(pciephy|usb3phy|phy)(@[0-9a-f]+)?$" + + compatible: + enum: + - ti,phy-usb3 + - ti,phy-pipe3-sata + - ti,phy-pipe3-pcie + - ti,omap-usb3 + + reg: + minItems: 2 + maxItems: 3 + + reg-names: + minItems: 2 + maxItems: 3 + items: + enum: + - phy_rx + - phy_tx + - pll_ctrl + + "#phy-cells": + const: 0 + + clocks: + minItems: 2 + maxItems: 7 + + clock-names: + minItems: 2 + maxItems: 7 + items: + enum: [wkupclk, sysclk, refclk, dpll_ref, + dpll_ref_m2, phy-div, div-clk] + + syscon-phy-power: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + Phandle/offset pair to system control module register for PHY + power on/off. + + syscon-pllreset: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + Phandle/offset pair to CTRL_CORE_SMA_SW_0 register containing + SATA_PLL_SOFT_RESET bit (SATA PHY only). + + syscon-pcs: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + Phandle/offset pair to system control module for writing PCS delay value. + + ctrl-module: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle of control module for PHY power on. + deprecated: true + +dependencies: + syscon-pllreset: + properties: + compatible: + contains: + const: ti,phy-pipe3-sata + +required: + - reg + - compatible + - reg-names + - "#phy-cells" + - clocks + - clock-names + +unevaluatedProperties: false + +examples: + - | + /* TI PIPE3 USB3 PHY */ + usb3phy@4a084400 { + compatible = "ti,phy-usb3"; + reg = <0x4a084400 0x80>, + <0x4a084800 0x64>, + <0x4a084c00 0x40>; + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; + #phy-cells = <0>; + clocks = <&usb_phy_cm_clk32k>, + <&sys_clkin>, + <&usb_otg_ss_refclk960m>; + clock-names = "wkupclk", "sysclk", "refclk"; + ctrl-module = <&omap_control_usb>; + }; + + - | + /* TI PIPE3 SATA PHY */ + phy@4a096000 { + compatible = "ti,phy-pipe3-sata"; + reg = <0x4A096000 0x80>, /* phy_rx */ + <0x4A096400 0x64>, /* phy_tx */ + <0x4A096800 0x40>; /* pll_ctrl */ + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; + clocks = <&sys_clkin1>, <&sata_ref_clk>; + clock-names = "sysclk", "refclk"; + syscon-pllreset = <&scm_conf 0x3fc>; + #phy-cells = <0>; + }; +... -- 2.52.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-07 16:11 ` [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert " Charan Pedumuru @ 2026-01-14 14:16 ` Vinod Koul 2026-01-14 14:46 ` Charan Pedumuru 2026-01-15 14:45 ` Rob Herring 1 sibling, 1 reply; 10+ messages in thread From: Vinod Koul @ 2026-01-14 14:16 UTC (permalink / raw) To: Charan Pedumuru Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On 07-01-26, 16:11, Charan Pedumuru wrote: > Convert TI PIPE3 PHY binding to DT schema. > Changes during conversion: > - Define a new pattern 'pciephy' to match nodes defined in DT. > - Drop obsolete "id" property from the schema. > > Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > --- > .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ > 1 file changed, 127 insertions(+) > > diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > new file mode 100644 > index 000000000000..41b3828723ae > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > @@ -0,0 +1,127 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI PIPE3 PHY Module > + > +maintainers: > + - Kishon Vijay Abraham I <kishon@ti.com> That is not correct, please check the current people on TI for this. > + > +description: > + The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) > + transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. > + It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 > + interface standard, which defines a common physical layer for > + high-speed serial interfaces. > + > +properties: > + $nodename: > + pattern: "^(pciephy|usb3phy|phy)(@[0-9a-f]+)?$" > + > + compatible: > + enum: > + - ti,phy-usb3 > + - ti,phy-pipe3-sata > + - ti,phy-pipe3-pcie > + - ti,omap-usb3 > + > + reg: > + minItems: 2 > + maxItems: 3 > + > + reg-names: > + minItems: 2 > + maxItems: 3 > + items: > + enum: > + - phy_rx > + - phy_tx > + - pll_ctrl > + > + "#phy-cells": > + const: 0 > + > + clocks: > + minItems: 2 > + maxItems: 7 > + > + clock-names: > + minItems: 2 > + maxItems: 7 > + items: > + enum: [wkupclk, sysclk, refclk, dpll_ref, > + dpll_ref_m2, phy-div, div-clk] > + > + syscon-phy-power: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to system control module register for PHY > + power on/off. > + > + syscon-pllreset: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to CTRL_CORE_SMA_SW_0 register containing > + SATA_PLL_SOFT_RESET bit (SATA PHY only). > + > + syscon-pcs: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to system control module for writing PCS delay value. > + > + ctrl-module: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle of control module for PHY power on. > + deprecated: true > + > +dependencies: > + syscon-pllreset: > + properties: > + compatible: > + contains: > + const: ti,phy-pipe3-sata > + > +required: > + - reg > + - compatible > + - reg-names > + - "#phy-cells" > + - clocks > + - clock-names > + > +unevaluatedProperties: false > + > +examples: > + - | > + /* TI PIPE3 USB3 PHY */ > + usb3phy@4a084400 { > + compatible = "ti,phy-usb3"; > + reg = <0x4a084400 0x80>, > + <0x4a084800 0x64>, > + <0x4a084c00 0x40>; > + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > + #phy-cells = <0>; > + clocks = <&usb_phy_cm_clk32k>, > + <&sys_clkin>, > + <&usb_otg_ss_refclk960m>; > + clock-names = "wkupclk", "sysclk", "refclk"; > + ctrl-module = <&omap_control_usb>; > + }; > + > + - | > + /* TI PIPE3 SATA PHY */ > + phy@4a096000 { > + compatible = "ti,phy-pipe3-sata"; > + reg = <0x4A096000 0x80>, /* phy_rx */ > + <0x4A096400 0x64>, /* phy_tx */ > + <0x4A096800 0x40>; /* pll_ctrl */ > + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > + clocks = <&sys_clkin1>, <&sata_ref_clk>; > + clock-names = "sysclk", "refclk"; > + syscon-pllreset = <&scm_conf 0x3fc>; > + #phy-cells = <0>; > + }; > +... > > -- > 2.52.0 -- ~Vinod ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-14 14:16 ` Vinod Koul @ 2026-01-14 14:46 ` Charan Pedumuru 2026-01-15 4:41 ` Vinod Koul 0 siblings, 1 reply; 10+ messages in thread From: Charan Pedumuru @ 2026-01-14 14:46 UTC (permalink / raw) To: Vinod Koul Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On 14-01-2026 19:46, Vinod Koul wrote: > On 07-01-26, 16:11, Charan Pedumuru wrote: >> Convert TI PIPE3 PHY binding to DT schema. >> Changes during conversion: >> - Define a new pattern 'pciephy' to match nodes defined in DT. >> - Drop obsolete "id" property from the schema. >> >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> >> --- >> .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ >> 1 file changed, 127 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml >> new file mode 100644 >> index 000000000000..41b3828723ae >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml >> @@ -0,0 +1,127 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: TI PIPE3 PHY Module >> + >> +maintainers: >> + - Kishon Vijay Abraham I <kishon@ti.com> > > That is not correct, please check the current people on TI for this. I checked the driver author and MAINTAINERS, I couldn't find anyone. No one seems to have updated the MAINTAINER. > >> + >> +description: >> + The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) >> + transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. >> + It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 >> + interface standard, which defines a common physical layer for >> + high-speed serial interfaces. >> + >> +properties: >> + $nodename: >> + pattern: "^(pciephy|usb3phy|phy)(@[0-9a-f]+)?$" >> + >> + compatible: >> + enum: >> + - ti,phy-usb3 >> + - ti,phy-pipe3-sata >> + - ti,phy-pipe3-pcie >> + - ti,omap-usb3 >> + >> + reg: >> + minItems: 2 >> + maxItems: 3 >> + >> + reg-names: >> + minItems: 2 >> + maxItems: 3 >> + items: >> + enum: >> + - phy_rx >> + - phy_tx >> + - pll_ctrl >> + >> + "#phy-cells": >> + const: 0 >> + >> + clocks: >> + minItems: 2 >> + maxItems: 7 >> + >> + clock-names: >> + minItems: 2 >> + maxItems: 7 >> + items: >> + enum: [wkupclk, sysclk, refclk, dpll_ref, >> + dpll_ref_m2, phy-div, div-clk] >> + >> + syscon-phy-power: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to system control module register for PHY >> + power on/off. >> + >> + syscon-pllreset: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to CTRL_CORE_SMA_SW_0 register containing >> + SATA_PLL_SOFT_RESET bit (SATA PHY only). >> + >> + syscon-pcs: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to system control module for writing PCS delay value. >> + >> + ctrl-module: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + Phandle of control module for PHY power on. >> + deprecated: true >> + >> +dependencies: >> + syscon-pllreset: >> + properties: >> + compatible: >> + contains: >> + const: ti,phy-pipe3-sata >> + >> +required: >> + - reg >> + - compatible >> + - reg-names >> + - "#phy-cells" >> + - clocks >> + - clock-names >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + /* TI PIPE3 USB3 PHY */ >> + usb3phy@4a084400 { >> + compatible = "ti,phy-usb3"; >> + reg = <0x4a084400 0x80>, >> + <0x4a084800 0x64>, >> + <0x4a084c00 0x40>; >> + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> + #phy-cells = <0>; >> + clocks = <&usb_phy_cm_clk32k>, >> + <&sys_clkin>, >> + <&usb_otg_ss_refclk960m>; >> + clock-names = "wkupclk", "sysclk", "refclk"; >> + ctrl-module = <&omap_control_usb>; >> + }; >> + >> + - | >> + /* TI PIPE3 SATA PHY */ >> + phy@4a096000 { >> + compatible = "ti,phy-pipe3-sata"; >> + reg = <0x4A096000 0x80>, /* phy_rx */ >> + <0x4A096400 0x64>, /* phy_tx */ >> + <0x4A096800 0x40>; /* pll_ctrl */ >> + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> + clocks = <&sys_clkin1>, <&sata_ref_clk>; >> + clock-names = "sysclk", "refclk"; >> + syscon-pllreset = <&scm_conf 0x3fc>; >> + #phy-cells = <0>; >> + }; >> +... >> >> -- >> 2.52.0 > -- Best Regards, Charan. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-14 14:46 ` Charan Pedumuru @ 2026-01-15 4:41 ` Vinod Koul 0 siblings, 0 replies; 10+ messages in thread From: Vinod Koul @ 2026-01-15 4:41 UTC (permalink / raw) To: Charan Pedumuru Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On 14-01-26, 20:16, Charan Pedumuru wrote: > > > On 14-01-2026 19:46, Vinod Koul wrote: > > On 07-01-26, 16:11, Charan Pedumuru wrote: > >> Convert TI PIPE3 PHY binding to DT schema. > >> Changes during conversion: > >> - Define a new pattern 'pciephy' to match nodes defined in DT. > >> - Drop obsolete "id" property from the schema. > >> > >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > >> --- > >> .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ > >> 1 file changed, 127 insertions(+) > >> > >> diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > >> new file mode 100644 > >> index 000000000000..41b3828723ae > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > >> @@ -0,0 +1,127 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >> +%YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: TI PIPE3 PHY Module > >> + > >> +maintainers: > >> + - Kishon Vijay Abraham I <kishon@ti.com> > > > > That is not correct, please check the current people on TI for this. > > I checked the driver author and MAINTAINERS, I couldn't find anyone. > No one seems to have updated the MAINTAINER. Please chekc in git log about recent contributions from TI people -- ~Vinod ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-07 16:11 ` [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert " Charan Pedumuru 2026-01-14 14:16 ` Vinod Koul @ 2026-01-15 14:45 ` Rob Herring 2026-01-20 14:50 ` Charan Pedumuru 1 sibling, 1 reply; 10+ messages in thread From: Rob Herring @ 2026-01-15 14:45 UTC (permalink / raw) To: Charan Pedumuru Cc: Vinod Koul, Neil Armstrong, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On Wed, Jan 07, 2026 at 04:11:15PM +0000, Charan Pedumuru wrote: > Convert TI PIPE3 PHY binding to DT schema. > Changes during conversion: > - Define a new pattern 'pciephy' to match nodes defined in DT. > - Drop obsolete "id" property from the schema. > > Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > --- > .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ > 1 file changed, 127 insertions(+) > > diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > new file mode 100644 > index 000000000000..41b3828723ae > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml > @@ -0,0 +1,127 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI PIPE3 PHY Module > + > +maintainers: > + - Kishon Vijay Abraham I <kishon@ti.com> > + > +description: > + The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) > + transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. > + It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 > + interface standard, which defines a common physical layer for > + high-speed serial interfaces. > + > +properties: > + $nodename: > + pattern: "^(pciephy|usb3phy|phy)(@[0-9a-f]+)?$" Again, don't define your own patterns. Either update the .dts files to use the established patterns (pcie-phy, usb3-phy, phy) or leave it undefined here. Plus the unit-address is not optional as 'reg' is not optional... > + > + compatible: > + enum: > + - ti,phy-usb3 > + - ti,phy-pipe3-sata > + - ti,phy-pipe3-pcie > + - ti,omap-usb3 Alphabetical order please. > + > + reg: > + minItems: 2 > + maxItems: 3 > + > + reg-names: > + minItems: 2 > + maxItems: 3 > + items: > + enum: > + - phy_rx > + - phy_tx > + - pll_ctrl Do this really need to be any order? Looks to me like this works for all users in tree: minItems: 2 items: - const: phy_rx - const: phy_tx - const: pll_ctrl > + > + "#phy-cells": > + const: 0 > + > + clocks: > + minItems: 2 > + maxItems: 7 > + > + clock-names: > + minItems: 2 > + maxItems: 7 > + items: > + enum: [wkupclk, sysclk, refclk, dpll_ref, > + dpll_ref_m2, phy-div, div-clk] > + > + syscon-phy-power: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to system control module register for PHY > + power on/off. Needs constrants on the size: items: - items: - description: phandle to ... - description: offset of ... > + > + syscon-pllreset: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to CTRL_CORE_SMA_SW_0 register containing > + SATA_PLL_SOFT_RESET bit (SATA PHY only). Same here. > + > + syscon-pcs: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + Phandle/offset pair to system control module for writing PCS delay value. Same here. > + > + ctrl-module: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle of control module for PHY power on. > + deprecated: true > + > +dependencies: > + syscon-pllreset: > + properties: > + compatible: > + contains: > + const: ti,phy-pipe3-sata Usually we express this the other way around: if: properties: compatible: contains: const: ti,phy-pipe3-sata then: required: - syscon-pllreset else: properties: syscon-pllreset: false But that's slightly different as syscon-pllreset is optional for ti,phy-pipe3-sata in your case. Seems like it should be required if ti,phy-pipe3-sata? > + > +required: > + - reg > + - compatible > + - reg-names > + - "#phy-cells" > + - clocks > + - clock-names > + > +unevaluatedProperties: false > + > +examples: > + - | > + /* TI PIPE3 USB3 PHY */ > + usb3phy@4a084400 { > + compatible = "ti,phy-usb3"; > + reg = <0x4a084400 0x80>, > + <0x4a084800 0x64>, > + <0x4a084c00 0x40>; > + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > + #phy-cells = <0>; > + clocks = <&usb_phy_cm_clk32k>, > + <&sys_clkin>, > + <&usb_otg_ss_refclk960m>; > + clock-names = "wkupclk", "sysclk", "refclk"; > + ctrl-module = <&omap_control_usb>; > + }; > + > + - | > + /* TI PIPE3 SATA PHY */ > + phy@4a096000 { > + compatible = "ti,phy-pipe3-sata"; > + reg = <0x4A096000 0x80>, /* phy_rx */ > + <0x4A096400 0x64>, /* phy_tx */ > + <0x4A096800 0x40>; /* pll_ctrl */ > + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > + clocks = <&sys_clkin1>, <&sata_ref_clk>; > + clock-names = "sysclk", "refclk"; > + syscon-pllreset = <&scm_conf 0x3fc>; > + #phy-cells = <0>; > + }; > +... > > -- > 2.52.0 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert to DT schema 2026-01-15 14:45 ` Rob Herring @ 2026-01-20 14:50 ` Charan Pedumuru 0 siblings, 0 replies; 10+ messages in thread From: Charan Pedumuru @ 2026-01-20 14:50 UTC (permalink / raw) To: Rob Herring Cc: Vinod Koul, Neil Armstrong, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On 15-01-2026 20:15, Rob Herring wrote: > On Wed, Jan 07, 2026 at 04:11:15PM +0000, Charan Pedumuru wrote: >> Convert TI PIPE3 PHY binding to DT schema. >> Changes during conversion: >> - Define a new pattern 'pciephy' to match nodes defined in DT. >> - Drop obsolete "id" property from the schema. >> >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> >> --- >> .../devicetree/bindings/phy/ti,phy-usb3.yaml | 127 +++++++++++++++++++++ >> 1 file changed, 127 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml >> new file mode 100644 >> index 000000000000..41b3828723ae >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/phy/ti,phy-usb3.yaml >> @@ -0,0 +1,127 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: TI PIPE3 PHY Module >> + >> +maintainers: >> + - Kishon Vijay Abraham I <kishon@ti.com> >> + >> +description: >> + The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) >> + transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. >> + It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 >> + interface standard, which defines a common physical layer for >> + high-speed serial interfaces. >> + >> +properties: >> + $nodename: >> + pattern: "^(pciephy|usb3phy|phy)(@[0-9a-f]+)?$" > > Again, don't define your own patterns. Either update the .dts files to > use the established patterns (pcie-phy, usb3-phy, phy) or leave it > undefined here. Sure, I will try to update them in dts. > > Plus the unit-address is not optional as 'reg' is not optional... Okay. > >> + >> + compatible: >> + enum: >> + - ti,phy-usb3 >> + - ti,phy-pipe3-sata >> + - ti,phy-pipe3-pcie >> + - ti,omap-usb3 > > Alphabetical order please. Sure. > >> + >> + reg: >> + minItems: 2 >> + maxItems: 3 >> + >> + reg-names: >> + minItems: 2 >> + maxItems: 3 >> + items: >> + enum: >> + - phy_rx >> + - phy_tx >> + - pll_ctrl > > Do this really need to be any order? Looks to me like this works for all > users in tree: > > minItems: 2 > items: > - const: phy_rx > - const: phy_tx > - const: pll_ctrl This will work, I tested it now. > >> + >> + "#phy-cells": >> + const: 0 >> + >> + clocks: >> + minItems: 2 >> + maxItems: 7 >> + >> + clock-names: >> + minItems: 2 >> + maxItems: 7 >> + items: >> + enum: [wkupclk, sysclk, refclk, dpll_ref, >> + dpll_ref_m2, phy-div, div-clk] >> + >> + syscon-phy-power: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to system control module register for PHY >> + power on/off. > > Needs constrants on the size: > > items: > - items: > - description: phandle to ... > - description: offset of ... Sure, I will change for the other properties too. > >> + >> + syscon-pllreset: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to CTRL_CORE_SMA_SW_0 register containing >> + SATA_PLL_SOFT_RESET bit (SATA PHY only). > > Same here. > >> + >> + syscon-pcs: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + Phandle/offset pair to system control module for writing PCS delay value. > > Same here. > >> + >> + ctrl-module: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + Phandle of control module for PHY power on. >> + deprecated: true >> + >> +dependencies: >> + syscon-pllreset: >> + properties: >> + compatible: >> + contains: >> + const: ti,phy-pipe3-sata > > Usually we express this the other way around: > > if: > properties: > compatible: > contains: > const: ti,phy-pipe3-sata > then: > required: > - syscon-pllreset > else: > properties: > syscon-pllreset: false > > But that's slightly different as syscon-pllreset is optional for > ti,phy-pipe3-sata in your case. Seems like it should be required if > ti,phy-pipe3-sata? I checked the DTS, it is not a required property. So, I will not change the format. > > >> + >> +required: >> + - reg >> + - compatible >> + - reg-names >> + - "#phy-cells" >> + - clocks >> + - clock-names >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + /* TI PIPE3 USB3 PHY */ >> + usb3phy@4a084400 { >> + compatible = "ti,phy-usb3"; >> + reg = <0x4a084400 0x80>, >> + <0x4a084800 0x64>, >> + <0x4a084c00 0x40>; >> + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> + #phy-cells = <0>; >> + clocks = <&usb_phy_cm_clk32k>, >> + <&sys_clkin>, >> + <&usb_otg_ss_refclk960m>; >> + clock-names = "wkupclk", "sysclk", "refclk"; >> + ctrl-module = <&omap_control_usb>; >> + }; >> + >> + - | >> + /* TI PIPE3 SATA PHY */ >> + phy@4a096000 { >> + compatible = "ti,phy-pipe3-sata"; >> + reg = <0x4A096000 0x80>, /* phy_rx */ >> + <0x4A096400 0x64>, /* phy_tx */ >> + <0x4A096800 0x40>; /* pll_ctrl */ >> + reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> + clocks = <&sys_clkin1>, <&sata_ref_clk>; >> + clock-names = "sysclk", "refclk"; >> + syscon-pllreset = <&scm_conf 0x3fc>; >> + #phy-cells = <0>; >> + }; >> +... >> >> -- >> 2.52.0 >> -- Best Regards, Charan. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: convert to DT schema 2026-01-07 16:11 [PATCH v2 0/2] dt-bindings: phy: Convert TI OMAP control and PIPE3 PHY to DT schema Charan Pedumuru 2026-01-07 16:11 ` [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert " Charan Pedumuru @ 2026-01-07 16:11 ` Charan Pedumuru 2026-01-15 14:51 ` Rob Herring 1 sibling, 1 reply; 10+ messages in thread From: Charan Pedumuru @ 2026-01-07 16:11 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I Cc: linux-phy, devicetree, linux-kernel, Charan Pedumuru Convert TI OMAP Control PHY binding to DT schema. Changes during conversion: - Define a new pattern 'control-phy' to match nodes defined in DT. Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> --- .../bindings/phy/ti,control-phy-otghs.yaml | 94 +++++++++++++++++++++ Documentation/devicetree/bindings/phy/ti-phy.txt | 98 ---------------------- 2 files changed, 94 insertions(+), 98 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml new file mode 100644 index 000000000000..2c91609cac35 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/ti,control-phy-otghs.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI OMAP Control PHY Module + +maintainers: + - Kishon Vijay Abraham I <kishon@ti.com> + +description: + The TI OMAP Control PHY module is a hardware block within the system + control module (SCM) of Texas Instruments OMAP SoCs. It provides + centralized control over power, configuration, and auxiliary features + for multiple on-chip PHYs. This module is essential for proper PHY + operation in power-constrained embedded systems. + +properties: + $nodename: + pattern: "^control-phy(@[0-9a-f]+)?$" + + compatible: + enum: + - ti,control-phy-otghs + - ti,control-phy-usb2 + - ti,control-phy-pipe3 + - ti,control-phy-pcie + - ti,control-phy-usb2-dra7 + - ti,control-phy-usb2-am437 + + reg: + minItems: 1 + maxItems: 4 + + reg-names: + minItems: 1 + maxItems: 4 + items: + enum: [otghs_control, power, pcie_pcs, control_sma] + +allOf: + - if: + properties: + compatible: + contains: + enum: + - ti,control-phy-otghs + then: + properties: + reg-names: + const: otghs_control + + - if: + properties: + compatible: + contains: + enum: + - ti,control-phy-pcie + then: + properties: + reg-names: + items: + - enum: [power, pcie_pcs, control_sma] + + - if: + properties: + compatible: + contains: + enum: + - ti,control-phy-usb2 + - ti,control-phy-usb2-dra7 + - ti,control-phy-usb2-am437 + - ti,control-phy-pipe3 + then: + properties: + reg-names: + const: power + +required: + - reg + - compatible + - reg-names + +unevaluatedProperties: false + +examples: + - | + control-phy@4a00233c { + compatible = "ti,control-phy-otghs"; + reg = <0x4a00233c 0x4>; + reg-names = "otghs_control"; + }; +... diff --git a/Documentation/devicetree/bindings/phy/ti-phy.txt b/Documentation/devicetree/bindings/phy/ti-phy.txt deleted file mode 100644 index 7c7936b89f2c..000000000000 --- a/Documentation/devicetree/bindings/phy/ti-phy.txt +++ /dev/null @@ -1,98 +0,0 @@ -TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs - -OMAP CONTROL PHY - -Required properties: - - compatible: Should be one of - "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4. - "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register - e.g. USB2_PHY on OMAP5. - "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control - e.g. USB3 PHY and SATA PHY on OMAP5. - "ti,control-phy-pcie" - for pcie to support external clock for pcie and to - set PCS delay value. - e.g. PCIE PHY in DRA7x - "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on - DRA7 platform. - "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on - AM437 platform. - - reg : register ranges as listed in the reg-names property - - reg-names: "otghs_control" for control-phy-otghs - "power", "pcie_pcs" and "control_sma" for control-phy-pcie - "power" for all other types - -omap_control_usb: omap-control-usb@4a002300 { - compatible = "ti,control-phy-otghs"; - reg = <0x4a00233c 0x4>; - reg-names = "otghs_control"; -}; - -TI PIPE3 PHY - -Required properties: - - compatible: Should be "ti,phy-usb3", "ti,phy-pipe3-sata" or - "ti,phy-pipe3-pcie. "ti,omap-usb3" is deprecated. - - reg : Address and length of the register set for the device. - - reg-names: The names of the register addresses corresponding to the registers - filled in "reg". - - #phy-cells: determine the number of cells that should be given in the - phandle while referencing this phy. - - clocks: a list of phandles and clock-specifier pairs, one for each entry in - clock-names. - - clock-names: should include: - * "wkupclk" - wakeup clock. - * "sysclk" - system clock. - * "refclk" - reference clock. - * "dpll_ref" - external dpll ref clk - * "dpll_ref_m2" - external dpll ref clk - * "phy-div" - divider for apll - * "div-clk" - apll clock - -Optional properties: - - id: If there are multiple instance of the same type, in order to - differentiate between each instance "id" can be used (e.g., multi-lane PCIe - PHY). If "id" is not provided, it is set to default value of '1'. - - syscon-pllreset: Handle to system control region that contains the - CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0 - register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy. - - syscon-pcs : phandle/offset pair. Phandle to the system control module and the - register offset to write the PCS delay value. - -Deprecated properties: - - ctrl-module : phandle of the control module used by PHY driver to power on - the PHY. - -Recommended properties: - - syscon-phy-power : phandle/offset pair. Phandle to the system control - module and the register offset to power on/off the PHY. - -This is usually a subnode of ocp2scp to which it is connected. - -usb3phy@4a084400 { - compatible = "ti,phy-usb3"; - reg = <0x4a084400 0x80>, - <0x4a084800 0x64>, - <0x4a084c00 0x40>; - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; - ctrl-module = <&omap_control_usb>; - #phy-cells = <0>; - clocks = <&usb_phy_cm_clk32k>, - <&sys_clkin>, - <&usb_otg_ss_refclk960m>; - clock-names = "wkupclk", - "sysclk", - "refclk"; -}; - -sata_phy: phy@4a096000 { - compatible = "ti,phy-pipe3-sata"; - reg = <0x4A096000 0x80>, /* phy_rx */ - <0x4A096400 0x64>, /* phy_tx */ - <0x4A096800 0x40>; /* pll_ctrl */ - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; - ctrl-module = <&omap_control_sata>; - clocks = <&sys_clkin1>, <&sata_ref_clk>; - clock-names = "sysclk", "refclk"; - syscon-pllreset = <&scm_conf 0x3fc>; - #phy-cells = <0>; -}; -- 2.52.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: convert to DT schema 2026-01-07 16:11 ` [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: " Charan Pedumuru @ 2026-01-15 14:51 ` Rob Herring 2026-01-20 15:15 ` Charan Pedumuru 0 siblings, 1 reply; 10+ messages in thread From: Rob Herring @ 2026-01-15 14:51 UTC (permalink / raw) To: Charan Pedumuru Cc: Vinod Koul, Neil Armstrong, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On Wed, Jan 07, 2026 at 04:11:16PM +0000, Charan Pedumuru wrote: > Convert TI OMAP Control PHY binding to DT schema. > Changes during conversion: > - Define a new pattern 'control-phy' to match nodes defined in DT. > > Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > --- > .../bindings/phy/ti,control-phy-otghs.yaml | 94 +++++++++++++++++++++ > Documentation/devicetree/bindings/phy/ti-phy.txt | 98 ---------------------- > 2 files changed, 94 insertions(+), 98 deletions(-) > > diff --git a/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml > new file mode 100644 > index 000000000000..2c91609cac35 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml > @@ -0,0 +1,94 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/ti,control-phy-otghs.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI OMAP Control PHY Module > + > +maintainers: > + - Kishon Vijay Abraham I <kishon@ti.com> > + > +description: > + The TI OMAP Control PHY module is a hardware block within the system > + control module (SCM) of Texas Instruments OMAP SoCs. It provides > + centralized control over power, configuration, and auxiliary features > + for multiple on-chip PHYs. This module is essential for proper PHY > + operation in power-constrained embedded systems. > + > +properties: > + $nodename: > + pattern: "^control-phy(@[0-9a-f]+)?$" Drop. Non-standard. > + > + compatible: > + enum: > + - ti,control-phy-otghs > + - ti,control-phy-usb2 > + - ti,control-phy-pipe3 > + - ti,control-phy-pcie > + - ti,control-phy-usb2-dra7 > + - ti,control-phy-usb2-am437 Alphabetical order > + > + reg: > + minItems: 1 > + maxItems: 4 With the constraints below, there is no case that allows 4 entries. > + > + reg-names: > + minItems: 1 > + maxItems: 4 > + items: > + enum: [otghs_control, power, pcie_pcs, control_sma] > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - ti,control-phy-otghs > + then: > + properties: > + reg-names: > + const: otghs_control > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - ti,control-phy-pcie There's no .dts with this compatible. Do you really need this compatible or can drop it? > + then: > + properties: > + reg-names: > + items: > + - enum: [power, pcie_pcs, control_sma] It's really 1 entry of 3 possible names? > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - ti,control-phy-usb2 > + - ti,control-phy-usb2-dra7 > + - ti,control-phy-usb2-am437 > + - ti,control-phy-pipe3 > + then: > + properties: > + reg-names: > + const: power > + > +required: > + - reg > + - compatible > + - reg-names > + > +unevaluatedProperties: false > + > +examples: > + - | > + control-phy@4a00233c { phy@... > + compatible = "ti,control-phy-otghs"; > + reg = <0x4a00233c 0x4>; > + reg-names = "otghs_control"; > + }; > +... > diff --git a/Documentation/devicetree/bindings/phy/ti-phy.txt b/Documentation/devicetree/bindings/phy/ti-phy.txt > deleted file mode 100644 > index 7c7936b89f2c..000000000000 > --- a/Documentation/devicetree/bindings/phy/ti-phy.txt > +++ /dev/null > @@ -1,98 +0,0 @@ > -TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs > - > -OMAP CONTROL PHY > - > -Required properties: > - - compatible: Should be one of > - "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4. > - "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register > - e.g. USB2_PHY on OMAP5. > - "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control > - e.g. USB3 PHY and SATA PHY on OMAP5. > - "ti,control-phy-pcie" - for pcie to support external clock for pcie and to > - set PCS delay value. > - e.g. PCIE PHY in DRA7x > - "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on > - DRA7 platform. > - "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on > - AM437 platform. > - - reg : register ranges as listed in the reg-names property > - - reg-names: "otghs_control" for control-phy-otghs > - "power", "pcie_pcs" and "control_sma" for control-phy-pcie > - "power" for all other types > - > -omap_control_usb: omap-control-usb@4a002300 { > - compatible = "ti,control-phy-otghs"; > - reg = <0x4a00233c 0x4>; > - reg-names = "otghs_control"; > -}; > - > -TI PIPE3 PHY > - > -Required properties: > - - compatible: Should be "ti,phy-usb3", "ti,phy-pipe3-sata" or > - "ti,phy-pipe3-pcie. "ti,omap-usb3" is deprecated. > - - reg : Address and length of the register set for the device. > - - reg-names: The names of the register addresses corresponding to the registers > - filled in "reg". > - - #phy-cells: determine the number of cells that should be given in the > - phandle while referencing this phy. > - - clocks: a list of phandles and clock-specifier pairs, one for each entry in > - clock-names. > - - clock-names: should include: > - * "wkupclk" - wakeup clock. > - * "sysclk" - system clock. > - * "refclk" - reference clock. > - * "dpll_ref" - external dpll ref clk > - * "dpll_ref_m2" - external dpll ref clk > - * "phy-div" - divider for apll > - * "div-clk" - apll clock > - > -Optional properties: > - - id: If there are multiple instance of the same type, in order to > - differentiate between each instance "id" can be used (e.g., multi-lane PCIe > - PHY). If "id" is not provided, it is set to default value of '1'. > - - syscon-pllreset: Handle to system control region that contains the > - CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0 > - register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy. > - - syscon-pcs : phandle/offset pair. Phandle to the system control module and the > - register offset to write the PCS delay value. > - > -Deprecated properties: > - - ctrl-module : phandle of the control module used by PHY driver to power on > - the PHY. > - > -Recommended properties: > - - syscon-phy-power : phandle/offset pair. Phandle to the system control > - module and the register offset to power on/off the PHY. > - > -This is usually a subnode of ocp2scp to which it is connected. > - > -usb3phy@4a084400 { > - compatible = "ti,phy-usb3"; > - reg = <0x4a084400 0x80>, > - <0x4a084800 0x64>, > - <0x4a084c00 0x40>; > - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > - ctrl-module = <&omap_control_usb>; > - #phy-cells = <0>; > - clocks = <&usb_phy_cm_clk32k>, > - <&sys_clkin>, > - <&usb_otg_ss_refclk960m>; > - clock-names = "wkupclk", > - "sysclk", > - "refclk"; > -}; > - > -sata_phy: phy@4a096000 { > - compatible = "ti,phy-pipe3-sata"; > - reg = <0x4A096000 0x80>, /* phy_rx */ > - <0x4A096400 0x64>, /* phy_tx */ > - <0x4A096800 0x40>; /* pll_ctrl */ > - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; > - ctrl-module = <&omap_control_sata>; > - clocks = <&sys_clkin1>, <&sata_ref_clk>; > - clock-names = "sysclk", "refclk"; > - syscon-pllreset = <&scm_conf 0x3fc>; > - #phy-cells = <0>; > -}; > > -- > 2.52.0 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: convert to DT schema 2026-01-15 14:51 ` Rob Herring @ 2026-01-20 15:15 ` Charan Pedumuru 0 siblings, 0 replies; 10+ messages in thread From: Charan Pedumuru @ 2026-01-20 15:15 UTC (permalink / raw) To: Rob Herring Cc: Vinod Koul, Neil Armstrong, Krzysztof Kozlowski, Conor Dooley, Kishon Vijay Abraham I, linux-phy, devicetree, linux-kernel On 15-01-2026 20:21, Rob Herring wrote: > On Wed, Jan 07, 2026 at 04:11:16PM +0000, Charan Pedumuru wrote: >> Convert TI OMAP Control PHY binding to DT schema. >> Changes during conversion: >> - Define a new pattern 'control-phy' to match nodes defined in DT. >> >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> >> --- >> .../bindings/phy/ti,control-phy-otghs.yaml | 94 +++++++++++++++++++++ >> Documentation/devicetree/bindings/phy/ti-phy.txt | 98 ---------------------- >> 2 files changed, 94 insertions(+), 98 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml >> new file mode 100644 >> index 000000000000..2c91609cac35 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/phy/ti,control-phy-otghs.yaml >> @@ -0,0 +1,94 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/phy/ti,control-phy-otghs.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: TI OMAP Control PHY Module >> + >> +maintainers: >> + - Kishon Vijay Abraham I <kishon@ti.com> >> + >> +description: >> + The TI OMAP Control PHY module is a hardware block within the system >> + control module (SCM) of Texas Instruments OMAP SoCs. It provides >> + centralized control over power, configuration, and auxiliary features >> + for multiple on-chip PHYs. This module is essential for proper PHY >> + operation in power-constrained embedded systems. >> + >> +properties: >> + $nodename: >> + pattern: "^control-phy(@[0-9a-f]+)?$" > > Drop. Non-standard. Sure, I will change it to phy and will modify in dts too. > >> + >> + compatible: >> + enum: >> + - ti,control-phy-otghs >> + - ti,control-phy-usb2 >> + - ti,control-phy-pipe3 >> + - ti,control-phy-pcie >> + - ti,control-phy-usb2-dra7 >> + - ti,control-phy-usb2-am437 > > Alphabetical order Okay. > >> + >> + reg: >> + minItems: 1 >> + maxItems: 4 > > With the constraints below, there is no case that allows 4 entries. Yeah, I will make it 3. > >> + >> + reg-names: >> + minItems: 1 >> + maxItems: 4 I will make it 3 here too >> + items: >> + enum: [otghs_control, power, pcie_pcs, control_sma] >> + >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - ti,control-phy-otghs >> + then: >> + properties: >> + reg-names: >> + const: otghs_control >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - ti,control-phy-pcie > > There's no .dts with this compatible. Do you really need this > compatible or can drop it? Yeah, currently there is no such compatible, I was following the old binding, I could remove if it's necessary. > >> + then: >> + properties: >> + reg-names: >> + items: >> + - enum: [power, pcie_pcs, control_sma] > > It's really 1 entry of 3 possible names? I think it should be direct 3 entries as per the binding, shouldn't be an enum, I will change it. > >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - ti,control-phy-usb2 >> + - ti,control-phy-usb2-dra7 >> + - ti,control-phy-usb2-am437 >> + - ti,control-phy-pipe3 >> + then: >> + properties: >> + reg-names: >> + const: power >> + >> +required: >> + - reg >> + - compatible >> + - reg-names >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + control-phy@4a00233c { > > phy@... > >> + compatible = "ti,control-phy-otghs"; >> + reg = <0x4a00233c 0x4>; >> + reg-names = "otghs_control"; >> + }; >> +... >> diff --git a/Documentation/devicetree/bindings/phy/ti-phy.txt b/Documentation/devicetree/bindings/phy/ti-phy.txt >> deleted file mode 100644 >> index 7c7936b89f2c..000000000000 >> --- a/Documentation/devicetree/bindings/phy/ti-phy.txt >> +++ /dev/null >> @@ -1,98 +0,0 @@ >> -TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs >> - >> -OMAP CONTROL PHY >> - >> -Required properties: >> - - compatible: Should be one of >> - "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4. >> - "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register >> - e.g. USB2_PHY on OMAP5. >> - "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control >> - e.g. USB3 PHY and SATA PHY on OMAP5. >> - "ti,control-phy-pcie" - for pcie to support external clock for pcie and to >> - set PCS delay value. >> - e.g. PCIE PHY in DRA7x >> - "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on >> - DRA7 platform. >> - "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on >> - AM437 platform. >> - - reg : register ranges as listed in the reg-names property >> - - reg-names: "otghs_control" for control-phy-otghs >> - "power", "pcie_pcs" and "control_sma" for control-phy-pcie >> - "power" for all other types >> - >> -omap_control_usb: omap-control-usb@4a002300 { >> - compatible = "ti,control-phy-otghs"; >> - reg = <0x4a00233c 0x4>; >> - reg-names = "otghs_control"; >> -}; >> - >> -TI PIPE3 PHY >> - >> -Required properties: >> - - compatible: Should be "ti,phy-usb3", "ti,phy-pipe3-sata" or >> - "ti,phy-pipe3-pcie. "ti,omap-usb3" is deprecated. >> - - reg : Address and length of the register set for the device. >> - - reg-names: The names of the register addresses corresponding to the registers >> - filled in "reg". >> - - #phy-cells: determine the number of cells that should be given in the >> - phandle while referencing this phy. >> - - clocks: a list of phandles and clock-specifier pairs, one for each entry in >> - clock-names. >> - - clock-names: should include: >> - * "wkupclk" - wakeup clock. >> - * "sysclk" - system clock. >> - * "refclk" - reference clock. >> - * "dpll_ref" - external dpll ref clk >> - * "dpll_ref_m2" - external dpll ref clk >> - * "phy-div" - divider for apll >> - * "div-clk" - apll clock >> - >> -Optional properties: >> - - id: If there are multiple instance of the same type, in order to >> - differentiate between each instance "id" can be used (e.g., multi-lane PCIe >> - PHY). If "id" is not provided, it is set to default value of '1'. >> - - syscon-pllreset: Handle to system control region that contains the >> - CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0 >> - register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy. >> - - syscon-pcs : phandle/offset pair. Phandle to the system control module and the >> - register offset to write the PCS delay value. >> - >> -Deprecated properties: >> - - ctrl-module : phandle of the control module used by PHY driver to power on >> - the PHY. >> - >> -Recommended properties: >> - - syscon-phy-power : phandle/offset pair. Phandle to the system control >> - module and the register offset to power on/off the PHY. >> - >> -This is usually a subnode of ocp2scp to which it is connected. >> - >> -usb3phy@4a084400 { >> - compatible = "ti,phy-usb3"; >> - reg = <0x4a084400 0x80>, >> - <0x4a084800 0x64>, >> - <0x4a084c00 0x40>; >> - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> - ctrl-module = <&omap_control_usb>; >> - #phy-cells = <0>; >> - clocks = <&usb_phy_cm_clk32k>, >> - <&sys_clkin>, >> - <&usb_otg_ss_refclk960m>; >> - clock-names = "wkupclk", >> - "sysclk", >> - "refclk"; >> -}; >> - >> -sata_phy: phy@4a096000 { >> - compatible = "ti,phy-pipe3-sata"; >> - reg = <0x4A096000 0x80>, /* phy_rx */ >> - <0x4A096400 0x64>, /* phy_tx */ >> - <0x4A096800 0x40>; /* pll_ctrl */ >> - reg-names = "phy_rx", "phy_tx", "pll_ctrl"; >> - ctrl-module = <&omap_control_sata>; >> - clocks = <&sys_clkin1>, <&sata_ref_clk>; >> - clock-names = "sysclk", "refclk"; >> - syscon-pllreset = <&scm_conf 0x3fc>; >> - #phy-cells = <0>; >> -}; >> >> -- >> 2.52.0 >> -- Best Regards, Charan. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-01-20 15:16 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-01-07 16:11 [PATCH v2 0/2] dt-bindings: phy: Convert TI OMAP control and PIPE3 PHY to DT schema Charan Pedumuru 2026-01-07 16:11 ` [PATCH v2 1/2] dt-bindings: phy: ti,phy-usb3: convert " Charan Pedumuru 2026-01-14 14:16 ` Vinod Koul 2026-01-14 14:46 ` Charan Pedumuru 2026-01-15 4:41 ` Vinod Koul 2026-01-15 14:45 ` Rob Herring 2026-01-20 14:50 ` Charan Pedumuru 2026-01-07 16:11 ` [PATCH v2 2/2] dt-bindings: phy: ti,control-phy-otghs: " Charan Pedumuru 2026-01-15 14:51 ` Rob Herring 2026-01-20 15:15 ` Charan Pedumuru
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox