dt-bindings: Add devicetree bindings
Add snapshot of device tree bindings from keystone common kernel, branch "android-mainline-keystone-qcom-release" at c4c12103f9c0 ("Snap for 9228065 from e32903b9a63bb558df8b803b076619c53c16baad to android-mainline-keystone-qcom-release"). Change-Id: I7682079615cbd9f29340a5c1f2a1d84ec441a1f1 Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
This commit is contained in:
107
bindings/phy/allwinner,sun4i-a10-usb-phy.yaml
Normal file
107
bindings/phy/allwinner,sun4i-a10-usb-phy.yaml
Normal file
@@ -0,0 +1,107 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun4i-a10-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun4i-a10-usb-phy
|
||||
- allwinner,sun7i-a20-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU1 registers
|
||||
- description: PHY PMU2 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu1
|
||||
- const: pmu2
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: USB PHY bus clock
|
||||
|
||||
clock-names:
|
||||
const: usb_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
- description: USB Host 2 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
- const: usb2_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
usb2_vbus-supply:
|
||||
description: Regulator controlling USB2 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun4i-a10-ccu.h>
|
||||
#include <dt-bindings/reset/sun4i-a10-ccu.h>
|
||||
|
||||
usbphy: phy@1c13400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun4i-a10-usb-phy";
|
||||
reg = <0x01c13400 0x10>, <0x01c14800 0x4>, <0x01c1c800 0x4>;
|
||||
reg-names = "phy_ctrl", "pmu1", "pmu2";
|
||||
clocks = <&ccu CLK_USB_PHY>;
|
||||
clock-names = "usb_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>,
|
||||
<&ccu RST_USB_PHY2>;
|
||||
reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
|
||||
usb0_id_det-gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>;
|
||||
usb0_vbus_det-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>;
|
||||
usb0_vbus-supply = <®_usb0_vbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
};
|
110
bindings/phy/allwinner,sun50i-a64-usb-phy.yaml
Normal file
110
bindings/phy/allwinner,sun50i-a64-usb-phy.yaml
Normal file
@@ -0,0 +1,110 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun50i-a64-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A64 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun20i-d1-usb-phy
|
||||
- allwinner,sun50i-a64-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU0 registers
|
||||
- description: PHY PMU1 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu0
|
||||
- const: pmu1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun50i-a64-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-a64-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun50i-a64-usb-phy";
|
||||
reg = <0x01c19400 0x14>,
|
||||
<0x01c1a800 0x4>,
|
||||
<0x01c1b800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu1";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset";
|
||||
usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
|
||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
usb0_vbus-supply = <®_drivevbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
};
|
107
bindings/phy/allwinner,sun50i-h6-usb-phy.yaml
Normal file
107
bindings/phy/allwinner,sun50i-h6-usb-phy.yaml
Normal file
@@ -0,0 +1,107 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun50i-h6-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner H6 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun50i-h6-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU0 registers
|
||||
- description: PHY PMU3 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu0
|
||||
- const: pmu3
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb3_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb3_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb3_vbus-supply:
|
||||
description: Regulator controlling USB3 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-ccu.h>
|
||||
|
||||
phy@5100400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun50i-h6-usb-phy";
|
||||
reg = <0x05100400 0x24>,
|
||||
<0x05101800 0x4>,
|
||||
<0x05311800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu3";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY3>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb3_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY3>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb3_reset";
|
||||
usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
|
||||
usb0_vbus-supply = <®_vcc5v>;
|
||||
usb3_vbus-supply = <®_vcc5v>;
|
||||
};
|
49
bindings/phy/allwinner,sun50i-h6-usb3-phy.yaml
Normal file
49
bindings/phy/allwinner,sun50i-h6-usb3-phy.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2019 Ondrej Jirman <megous@megous.com>
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/allwinner,sun50i-h6-usb3-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Allwinner H6 USB3 PHY
|
||||
|
||||
maintainers:
|
||||
- Ondrej Jirman <megous@megous.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun50i-h6-usb3-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- resets
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-ccu.h>
|
||||
phy@5210000 {
|
||||
compatible = "allwinner,sun50i-h6-usb3-phy";
|
||||
reg = <0x5210000 0x10000>;
|
||||
clocks = <&ccu CLK_USB_PHY1>;
|
||||
resets = <&ccu RST_USB_PHY1>;
|
||||
#phy-cells = <0>;
|
||||
};
|
95
bindings/phy/allwinner,sun5i-a13-usb-phy.yaml
Normal file
95
bindings/phy/allwinner,sun5i-a13-usb-phy.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun5i-a13-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A13 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun5i-a13-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU1 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: USB OTG PHY bus clock
|
||||
|
||||
clock-names:
|
||||
const: usb_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun5i-ccu.h>
|
||||
#include <dt-bindings/reset/sun5i-ccu.h>
|
||||
|
||||
phy@1c13400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun5i-a13-usb-phy";
|
||||
reg = <0x01c13400 0x10>, <0x01c14800 0x4>;
|
||||
reg-names = "phy_ctrl", "pmu1";
|
||||
clocks = <&ccu CLK_USB_PHY0>;
|
||||
clock-names = "usb_phy";
|
||||
resets = <&ccu RST_USB_PHY0>, <&ccu RST_USB_PHY1>;
|
||||
reset-names = "usb0_reset", "usb1_reset";
|
||||
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||
usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG1 */
|
||||
usb0_vbus-supply = <®_usb0_vbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
};
|
73
bindings/phy/allwinner,sun6i-a31-mipi-dphy.yaml
Normal file
73
bindings/phy/allwinner,sun6i-a31-mipi-dphy.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun6i-a31-mipi-dphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A31 MIPI D-PHY Controller
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: allwinner,sun6i-a31-mipi-dphy
|
||||
- items:
|
||||
- const: allwinner,sun50i-a64-mipi-dphy
|
||||
- const: allwinner,sun6i-a31-mipi-dphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: mod
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
allwinner,direction:
|
||||
$ref: '/schemas/types.yaml#/definitions/string'
|
||||
description: |
|
||||
Direction of the D-PHY:
|
||||
- "rx" for receiving (e.g. when used with MIPI CSI-2);
|
||||
- "tx" for transmitting (e.g. when used with MIPI DSI).
|
||||
|
||||
enum:
|
||||
- tx
|
||||
- rx
|
||||
default: tx
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
dphy0: d-phy@1ca1000 {
|
||||
compatible = "allwinner,sun6i-a31-mipi-dphy";
|
||||
reg = <0x01ca1000 0x1000>;
|
||||
clocks = <&ccu 23>, <&ccu 97>;
|
||||
clock-names = "bus", "mod";
|
||||
resets = <&ccu 4>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
...
|
121
bindings/phy/allwinner,sun6i-a31-usb-phy.yaml
Normal file
121
bindings/phy/allwinner,sun6i-a31-usb-phy.yaml
Normal file
@@ -0,0 +1,121 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun6i-a31-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A31 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun6i-a31-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU1 registers
|
||||
- description: PHY PMU2 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu1
|
||||
- const: pmu2
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
- description: USB Host 1 PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
- const: usb2_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
- description: USB Host 2 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
- const: usb2_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
usb2_vbus-supply:
|
||||
description: Regulator controlling USB2 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun6i-a31-ccu.h>
|
||||
#include <dt-bindings/reset/sun6i-a31-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun6i-a31-usb-phy";
|
||||
reg = <0x01c19400 0x10>,
|
||||
<0x01c1a800 0x4>,
|
||||
<0x01c1b800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu1",
|
||||
"pmu2";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>,
|
||||
<&ccu CLK_USB_PHY2>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy",
|
||||
"usb2_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>,
|
||||
<&ccu RST_USB_PHY2>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset",
|
||||
"usb2_reset";
|
||||
usb0_id_det-gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
||||
usb0_vbus_det-gpios = <&pio 0 16 GPIO_ACTIVE_HIGH>; /* PA16 */
|
||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
usb0_vbus-supply = <®_drivevbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
};
|
104
bindings/phy/allwinner,sun8i-a23-usb-phy.yaml
Normal file
104
bindings/phy/allwinner,sun8i-a23-usb-phy.yaml
Normal file
@@ -0,0 +1,104 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun8i-a23-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A23 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun8i-a23-usb-phy
|
||||
- allwinner,sun8i-a33-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU1 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun8i-a23-usb-phy";
|
||||
reg = <0x01c19400 0x10>, <0x01c1a800 0x4>;
|
||||
reg-names = "phy_ctrl", "pmu1";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset";
|
||||
usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
|
||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
usb0_vbus-supply = <®_drivevbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
};
|
124
bindings/phy/allwinner,sun8i-a83t-usb-phy.yaml
Normal file
124
bindings/phy/allwinner,sun8i-a83t-usb-phy.yaml
Normal file
@@ -0,0 +1,124 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun8i-a83t-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A83t USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun8i-a83t-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU1 registers
|
||||
- description: PHY PMU2 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu1
|
||||
- const: pmu2
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
- description: USB Host 1 PHY bus clock
|
||||
- description: USB HSIC 12MHz clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
- const: usb2_phy
|
||||
- const: usb2_hsic_12M
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
- description: USB Host 2 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
- const: usb2_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
usb2_vbus-supply:
|
||||
description: Regulator controlling USB2 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun8i-a83t-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-a83t-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun8i-a83t-usb-phy";
|
||||
reg = <0x01c19400 0x10>,
|
||||
<0x01c1a800 0x14>,
|
||||
<0x01c1b800 0x14>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu1",
|
||||
"pmu2";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>,
|
||||
<&ccu CLK_USB_HSIC>,
|
||||
<&ccu CLK_USB_HSIC_12M>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy",
|
||||
"usb2_phy",
|
||||
"usb2_hsic_12M";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>,
|
||||
<&ccu RST_USB_HSIC>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset",
|
||||
"usb2_reset";
|
||||
usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
|
||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
usb0_vbus-supply = <®_drivevbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
};
|
141
bindings/phy/allwinner,sun8i-h3-usb-phy.yaml
Normal file
141
bindings/phy/allwinner,sun8i-h3-usb-phy.yaml
Normal file
@@ -0,0 +1,141 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun8i-h3-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner H3 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun8i-h3-usb-phy
|
||||
- allwinner,sun50i-h616-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU0 registers
|
||||
- description: PHY PMU1 registers
|
||||
- description: PHY PMU2 registers
|
||||
- description: PHY PMU3 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu0
|
||||
- const: pmu1
|
||||
- const: pmu2
|
||||
- const: pmu3
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
- description: USB Host 1 PHY bus clock
|
||||
- description: USB Host 2 PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
- const: usb2_phy
|
||||
- const: usb3_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
- description: USB Host 2 Controller reset
|
||||
- description: USB Host 3 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
- const: usb2_reset
|
||||
- const: usb3_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
usb2_vbus-supply:
|
||||
description: Regulator controlling USB2 Host controller
|
||||
|
||||
usb3_vbus-supply:
|
||||
description: Regulator controlling USB3 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun8i-h3-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-h3-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun8i-h3-usb-phy";
|
||||
reg = <0x01c19400 0x2c>,
|
||||
<0x01c1a800 0x4>,
|
||||
<0x01c1b800 0x4>,
|
||||
<0x01c1c800 0x4>,
|
||||
<0x01c1d800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu1",
|
||||
"pmu2",
|
||||
"pmu3";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>,
|
||||
<&ccu CLK_USB_PHY2>,
|
||||
<&ccu CLK_USB_PHY3>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy",
|
||||
"usb2_phy",
|
||||
"usb3_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>,
|
||||
<&ccu RST_USB_PHY2>,
|
||||
<&ccu RST_USB_PHY3>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset",
|
||||
"usb2_reset",
|
||||
"usb3_reset";
|
||||
usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
||||
usb0_vbus-supply = <®_usb0_vbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
usb3_vbus-supply = <®_usb3_vbus>;
|
||||
};
|
121
bindings/phy/allwinner,sun8i-r40-usb-phy.yaml
Normal file
121
bindings/phy/allwinner,sun8i-r40-usb-phy.yaml
Normal file
@@ -0,0 +1,121 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun8i-r40-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner R40 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun8i-r40-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU0 registers
|
||||
- description: PHY PMU1 registers
|
||||
- description: PHY PMU2 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu0
|
||||
- const: pmu1
|
||||
- const: pmu2
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB OTG PHY bus clock
|
||||
- description: USB Host 0 PHY bus clock
|
||||
- description: USB Host 1 PHY bus clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb0_phy
|
||||
- const: usb1_phy
|
||||
- const: usb2_phy
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB OTG reset
|
||||
- description: USB Host 1 Controller reset
|
||||
- description: USB Host 2 Controller reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: usb0_reset
|
||||
- const: usb1_reset
|
||||
- const: usb2_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
usb1_vbus-supply:
|
||||
description: Regulator controlling USB1 Host controller
|
||||
|
||||
usb2_vbus-supply:
|
||||
description: Regulator controlling USB2 Host controller
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun8i-r40-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-r40-ccu.h>
|
||||
|
||||
phy@1c13400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun8i-r40-usb-phy";
|
||||
reg = <0x01c13400 0x14>,
|
||||
<0x01c14800 0x4>,
|
||||
<0x01c19800 0x4>,
|
||||
<0x01c1c800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu1",
|
||||
"pmu2";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY1>,
|
||||
<&ccu CLK_USB_PHY2>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb1_phy",
|
||||
"usb2_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY1>,
|
||||
<&ccu RST_USB_PHY2>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb1_reset",
|
||||
"usb2_reset";
|
||||
usb1_vbus-supply = <®_vcc5v0>;
|
||||
usb2_vbus-supply = <®_vcc5v0>;
|
||||
};
|
88
bindings/phy/allwinner,sun8i-v3s-usb-phy.yaml
Normal file
88
bindings/phy/allwinner,sun8i-v3s-usb-phy.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun8i-v3s-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner V3s USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun8i-v3s-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PHY Control registers
|
||||
- description: PHY PMU0 registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: phy_ctrl
|
||||
- const: pmu0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: USB OTG PHY bus clock
|
||||
|
||||
clock-names:
|
||||
const: usb0_phy
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
description: USB OTG reset
|
||||
|
||||
reset-names:
|
||||
const: usb0_reset
|
||||
|
||||
usb0_id_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG ID pin
|
||||
|
||||
usb0_vbus_det-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to the USB OTG VBUS detect pin
|
||||
|
||||
usb0_vbus_power-supply:
|
||||
description: Power supply to detect the USB OTG VBUS
|
||||
|
||||
usb0_vbus-supply:
|
||||
description: Regulator controlling USB OTG VBUS
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
|
||||
|
||||
phy@1c19400 {
|
||||
#phy-cells = <1>;
|
||||
compatible = "allwinner,sun8i-v3s-usb-phy";
|
||||
reg = <0x01c19400 0x2c>,
|
||||
<0x01c1a800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0";
|
||||
clocks = <&ccu CLK_USB_PHY0>;
|
||||
clock-names = "usb0_phy";
|
||||
resets = <&ccu RST_USB_PHY0>;
|
||||
reset-names = "usb0_reset";
|
||||
usb0_id_det-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
132
bindings/phy/allwinner,sun9i-a80-usb-phy.yaml
Normal file
132
bindings/phy/allwinner,sun9i-a80-usb-phy.yaml
Normal file
@@ -0,0 +1,132 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/allwinner,sun9i-a80-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A80 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun9i-a80-usb-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
anyOf:
|
||||
- maxItems: 1
|
||||
description: Main PHY Clock
|
||||
|
||||
- items:
|
||||
- description: Main PHY clock
|
||||
- description: HSIC 12MHz clock
|
||||
- description: HSIC 480MHz clock
|
||||
|
||||
clock-names:
|
||||
oneOf:
|
||||
- const: phy
|
||||
|
||||
- items:
|
||||
- const: phy
|
||||
- const: hsic_12M
|
||||
- const: hsic_480M
|
||||
|
||||
resets:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Normal USB PHY reset
|
||||
- description: HSIC Reset
|
||||
|
||||
reset-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: phy
|
||||
- const: hsic
|
||||
|
||||
phy_type:
|
||||
const: hsic
|
||||
description:
|
||||
When absent, the PHY type will be assumed to be normal USB.
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Regulator that powers VBUS
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
if:
|
||||
properties:
|
||||
phy_type:
|
||||
const: hsic
|
||||
|
||||
required:
|
||||
- phy_type
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
maxItems: 3
|
||||
|
||||
resets:
|
||||
maxItems: 2
|
||||
|
||||
reset-names:
|
||||
maxItems: 2
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/sun9i-a80-usb.h>
|
||||
#include <dt-bindings/reset/sun9i-a80-usb.h>
|
||||
|
||||
usbphy1: phy@a00800 {
|
||||
compatible = "allwinner,sun9i-a80-usb-phy";
|
||||
reg = <0x00a00800 0x4>;
|
||||
clocks = <&usb_clocks CLK_USB0_PHY>;
|
||||
clock-names = "phy";
|
||||
resets = <&usb_clocks RST_USB0_PHY>;
|
||||
reset-names = "phy";
|
||||
phy-supply = <®_usb1_vbus>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/clock/sun9i-a80-usb.h>
|
||||
#include <dt-bindings/reset/sun9i-a80-usb.h>
|
||||
|
||||
usbphy3: phy@a02800 {
|
||||
compatible = "allwinner,sun9i-a80-usb-phy";
|
||||
reg = <0x00a02800 0x4>;
|
||||
clocks = <&usb_clocks CLK_USB2_PHY>,
|
||||
<&usb_clocks CLK_USB_HSIC>,
|
||||
<&usb_clocks CLK_USB2_HSIC>;
|
||||
clock-names = "phy",
|
||||
"hsic_12M",
|
||||
"hsic_480M";
|
||||
resets = <&usb_clocks RST_USB2_PHY>,
|
||||
<&usb_clocks RST_USB2_HSIC>;
|
||||
reset-names = "phy",
|
||||
"hsic";
|
||||
phy_type = "hsic";
|
||||
phy-supply = <®_usb3_vbus>;
|
||||
#phy-cells = <0>;
|
||||
};
|
70
bindings/phy/amlogic,axg-mipi-dphy.yaml
Normal file
70
bindings/phy/amlogic,axg-mipi-dphy.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2020 BayLibre, SAS
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,axg-mipi-dphy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic AXG MIPI D-PHY
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- amlogic,axg-mipi-dphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
phys:
|
||||
maxItems: 1
|
||||
|
||||
phy-names:
|
||||
items:
|
||||
- const: analog
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- phys
|
||||
- phy-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
phy@ff640000 {
|
||||
compatible = "amlogic,axg-mipi-dphy";
|
||||
reg = <0xff640000 0x100>;
|
||||
clocks = <&clk_mipi_dsi_phy>;
|
||||
clock-names = "pclk";
|
||||
resets = <&reset_phy>;
|
||||
reset-names = "phy";
|
||||
phys = <&mipi_pcie_analog_dphy>;
|
||||
phy-names = "analog";
|
||||
#phy-cells = <0>;
|
||||
};
|
35
bindings/phy/amlogic,g12a-mipi-dphy-analog.yaml
Normal file
35
bindings/phy/amlogic,g12a-mipi-dphy-analog.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,g12a-mipi-dphy-analog.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic G12A MIPI analog PHY
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: amlogic,g12a-mipi-dphy-analog
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
phy@0 {
|
||||
compatible = "amlogic,g12a-mipi-dphy-analog";
|
||||
reg = <0x0 0xc>;
|
||||
#phy-cells = <0>;
|
||||
};
|
40
bindings/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
Normal file
40
bindings/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson-axg-mipi-pcie-analog.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic AXG shared MIPI/PCIE analog PHY
|
||||
|
||||
maintainers:
|
||||
- Remi Pommarel <repk@triplefau.lt>
|
||||
|
||||
description: |+
|
||||
The Everything-Else Power Domains node should be the child of a syscon
|
||||
node with the required property:
|
||||
|
||||
- compatible: Should be the following:
|
||||
"amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"
|
||||
|
||||
Refer to the bindings described in
|
||||
Documentation/devicetree/bindings/mfd/syscon.yaml
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: amlogic,axg-mipi-pcie-analog-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mpphy: phy {
|
||||
compatible = "amlogic,axg-mipi-pcie-analog-phy";
|
||||
#phy-cells = <0>;
|
||||
};
|
52
bindings/phy/amlogic,meson-axg-pcie.yaml
Normal file
52
bindings/phy/amlogic,meson-axg-pcie.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson-axg-pcie.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic AXG PCIE PHY
|
||||
|
||||
maintainers:
|
||||
- Remi Pommarel <repk@triplefau.lt>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: amlogic,axg-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
phys:
|
||||
maxItems: 1
|
||||
|
||||
phy-names:
|
||||
const: analog
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- phys
|
||||
- phy-names
|
||||
- resets
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/reset/amlogic,meson-axg-reset.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
pcie_phy: pcie-phy@ff644000 {
|
||||
compatible = "amlogic,axg-pcie-phy";
|
||||
reg = <0xff644000 0x1c>;
|
||||
resets = <&reset RESET_PCIE_PHY>;
|
||||
phys = <&mipi_analog_phy PHY_TYPE_PCIE>;
|
||||
phy-names = "analog";
|
||||
#phy-cells = <0>;
|
||||
};
|
78
bindings/phy/amlogic,meson-g12a-usb2-phy.yaml
Normal file
78
bindings/phy/amlogic,meson-g12a-usb2-phy.yaml
Normal file
@@ -0,0 +1,78 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2019 BayLibre, SAS
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson-g12a-usb2-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic G12A USB2 PHY
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- amlogic,meson-g12a-usb2-phy
|
||||
- amlogic,meson-a1-usb2-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xtal
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Phandle to a regulator that provides power to the PHY. This
|
||||
regulator will be managed during the PHY power on/off sequence.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- "#phy-cells"
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- amlogic,meson-a1-usb-ctrl
|
||||
|
||||
then:
|
||||
properties:
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
required:
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
phy@36000 {
|
||||
compatible = "amlogic,meson-g12a-usb2-phy";
|
||||
reg = <0x36000 0x2000>;
|
||||
clocks = <&xtal>;
|
||||
clock-names = "xtal";
|
||||
resets = <&phy_reset>;
|
||||
reset-names = "phy";
|
||||
#phy-cells = <0>;
|
||||
};
|
59
bindings/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml
Normal file
59
bindings/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2019 BayLibre, SAS
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic G12A USB3 + PCIE Combo PHY
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- amlogic,meson-g12a-usb3-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: ref_clk
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
phy@46000 {
|
||||
compatible = "amlogic,meson-g12a-usb3-pcie-phy";
|
||||
reg = <0x46000 0x2000>;
|
||||
clocks = <&ref_clk>;
|
||||
clock-names = "ref_clk";
|
||||
resets = <&phy_reset>;
|
||||
reset-names = "phy";
|
||||
#phy-cells = <1>;
|
||||
};
|
65
bindings/phy/amlogic,meson8-hdmi-tx-phy.yaml
Normal file
65
bindings/phy/amlogic,meson8-hdmi-tx-phy.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson8-hdmi-tx-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic Meson8, Meson8b and Meson8m2 HDMI TX PHY
|
||||
|
||||
maintainers:
|
||||
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
|
||||
description: |+
|
||||
The HDMI TX PHY node should be the child of a syscon node with the
|
||||
required property:
|
||||
|
||||
compatible = "amlogic,meson-hhi-sysctrl", "simple-mfd", "syscon"
|
||||
|
||||
Refer to the bindings described in
|
||||
Documentation/devicetree/bindings/mfd/syscon.yaml
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^hdmi-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,meson8b-hdmi-tx-phy
|
||||
- amlogic,meson8m2-hdmi-tx-phy
|
||||
- const: amlogic,meson8-hdmi-tx-phy
|
||||
- const: amlogic,meson8-hdmi-tx-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
description:
|
||||
HDMI TMDS clock
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
hdmi-phy@3a0 {
|
||||
compatible = "amlogic,meson8-hdmi-tx-phy";
|
||||
reg = <0x3a0 0xc>;
|
||||
clocks = <&tmds_clock>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
- |
|
||||
hdmi-phy@3a0 {
|
||||
compatible = "amlogic,meson8b-hdmi-tx-phy", "amlogic,meson8-hdmi-tx-phy";
|
||||
reg = <0x3a0 0xc>;
|
||||
clocks = <&tmds_clock>;
|
||||
#phy-cells = <0>;
|
||||
};
|
64
bindings/phy/amlogic,meson8b-usb2-phy.yaml
Normal file
64
bindings/phy/amlogic,meson8b-usb2-phy.yaml
Normal file
@@ -0,0 +1,64 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/amlogic,meson8b-usb2-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic Meson8, Meson8b, Meson8m2 and GXBB USB2 PHY
|
||||
|
||||
maintainers:
|
||||
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,meson8-usb2-phy
|
||||
- amlogic,meson8b-usb2-phy
|
||||
- amlogic,meson8m2-usb2-phy
|
||||
- const: amlogic,meson-mx-usb2-phy
|
||||
- const: amlogic,meson-gxbb-usb2-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: usb_general
|
||||
- const: usb
|
||||
|
||||
resets:
|
||||
minItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Phandle to a regulator that provides power to the PHY. This
|
||||
regulator will be managed during the PHY power on/off sequence.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@c0000000 {
|
||||
compatible = "amlogic,meson-gxbb-usb2-phy";
|
||||
reg = <0xc0000000 0x20>;
|
||||
resets = <&reset_usb_phy>;
|
||||
clocks = <&clk_usb_general>, <&reset_usb>;
|
||||
clock-names = "usb_general", "usb";
|
||||
phy-supply = <&usb_vbus>;
|
||||
#phy-cells = <0>;
|
||||
};
|
76
bindings/phy/apm-xgene-phy.txt
Normal file
76
bindings/phy/apm-xgene-phy.txt
Normal file
@@ -0,0 +1,76 @@
|
||||
* APM X-Gene 15Gbps Multi-purpose PHY nodes
|
||||
|
||||
PHY nodes are defined to describe on-chip 15Gbps Multi-purpose PHY. Each
|
||||
PHY (pair of lanes) has its own node.
|
||||
|
||||
Required properties:
|
||||
- compatible : Shall be "apm,xgene-phy".
|
||||
- reg : PHY memory resource is the SDS PHY access resource.
|
||||
- #phy-cells : Shall be 1 as it expects one argument for setting
|
||||
the mode of the PHY. Possible values are 0 (SATA),
|
||||
1 (SGMII), 2 (PCIe), 3 (USB), and 4 (XFI).
|
||||
|
||||
Optional properties:
|
||||
- status : Shall be "ok" if enabled or "disabled" if disabled.
|
||||
Default is "ok".
|
||||
- clocks : Reference to the clock entry.
|
||||
- apm,tx-eye-tuning : Manual control to fine tune the capture of the serial
|
||||
bit lines from the automatic calibrated position.
|
||||
Two set of 3-tuple setting for each (up to 3)
|
||||
supported link speed on the host. Range from 0 to
|
||||
127 in unit of one bit period. Default is 10.
|
||||
- apm,tx-eye-direction : Eye tuning manual control direction. 0 means sample
|
||||
data earlier than the nominal sampling point. 1 means
|
||||
sample data later than the nominal sampling point.
|
||||
Two set of 3-tuple setting for each (up to 3)
|
||||
supported link speed on the host. Default is 0.
|
||||
- apm,tx-boost-gain : Frequency boost AC (LSB 3-bit) and DC (2-bit)
|
||||
gain control. Two set of 3-tuple setting for each
|
||||
(up to 3) supported link speed on the host. Range is
|
||||
between 0 to 31 in unit of dB. Default is 3.
|
||||
- apm,tx-amplitude : Amplitude control. Two set of 3-tuple setting for
|
||||
each (up to 3) supported link speed on the host.
|
||||
Range is between 0 to 199500 in unit of uV.
|
||||
Default is 199500 uV.
|
||||
- apm,tx-pre-cursor1 : 1st pre-cursor emphasis taps control. Two set of
|
||||
3-tuple setting for each (up to 3) supported link
|
||||
speed on the host. Range is 0 to 273000 in unit of
|
||||
uV. Default is 0.
|
||||
- apm,tx-pre-cursor2 : 2st pre-cursor emphasis taps control. Two set of
|
||||
3-tuple setting for each (up to 3) supported link
|
||||
speed on the host. Range is 0 to 127400 in unit uV.
|
||||
Default is 0x0.
|
||||
- apm,tx-post-cursor : Post-cursor emphasis taps control. Two set of
|
||||
3-tuple setting for Gen1, Gen2, and Gen3. Range is
|
||||
between 0 to 0x1f in unit of 18.2mV. Default is 0xf.
|
||||
- apm,tx-speed : Tx operating speed. One set of 3-tuple for each
|
||||
supported link speed on the host.
|
||||
0 = 1-2Gbps
|
||||
1 = 2-4Gbps (1st tuple default)
|
||||
2 = 4-8Gbps
|
||||
3 = 8-15Gbps (2nd tuple default)
|
||||
4 = 2.5-4Gbps
|
||||
5 = 4-5Gbps
|
||||
6 = 5-6Gbps
|
||||
7 = 6-16Gbps (3rd tuple default)
|
||||
|
||||
NOTE: PHY override parameters are board specific setting.
|
||||
|
||||
Example:
|
||||
phy1: phy@1f21a000 {
|
||||
compatible = "apm,xgene-phy";
|
||||
reg = <0x0 0x1f21a000 0x0 0x100>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
phy2: phy@1f22a000 {
|
||||
compatible = "apm,xgene-phy";
|
||||
reg = <0x0 0x1f22a000 0x0 0x100>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
phy3: phy@1f23a000 {
|
||||
compatible = "apm,xgene-phy";
|
||||
reg = <0x0 0x1f23a000 0x0 0x100>;
|
||||
#phy-cells = <1>;
|
||||
};
|
72
bindings/phy/bcm-ns-usb2-phy.yaml
Normal file
72
bindings/phy/bcm-ns-usb2-phy.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/bcm-ns-usb2-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom Northstar USB 2.0 PHY
|
||||
|
||||
description: >
|
||||
To initialize USB 2.0 PHY driver needs to setup PLL correctly.
|
||||
To do this it requires passing phandle to the USB PHY reference clock.
|
||||
|
||||
maintainers:
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: brcm,ns-usb2-phy
|
||||
|
||||
reg:
|
||||
anyOf:
|
||||
- maxItems: 1
|
||||
description: PHY control register
|
||||
- maxItems: 1
|
||||
description: iomem address range of DMU (Device Management Unit)
|
||||
deprecated: true
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: dmu
|
||||
|
||||
brcm,syscon-clkset:
|
||||
description: phandle to syscon for clkset register
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: USB PHY reference clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: phy-ref-clk
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#phy-cells"
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- brcm,syscon-clkset
|
||||
- required:
|
||||
- reg-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/bcm-nsp.h>
|
||||
phy@1800c164 {
|
||||
compatible = "brcm,ns-usb2-phy";
|
||||
reg = <0x1800c164 0x4>;
|
||||
brcm,syscon-clkset = <&clkset>;
|
||||
clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
|
||||
clock-names = "phy-ref-clk";
|
||||
#phy-cells = <0>;
|
||||
};
|
62
bindings/phy/bcm-ns-usb3-phy.yaml
Normal file
62
bindings/phy/bcm-ns-usb3-phy.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/bcm-ns-usb3-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom Northstar USB 3.0 PHY
|
||||
|
||||
description: |
|
||||
Initialization of USB 3.0 PHY depends on Northstar version. There are currently
|
||||
three known series: Ax, Bx and Cx.
|
||||
Known A0: BCM4707 rev 0
|
||||
Known B0: BCM4707 rev 4, BCM53573 rev 2
|
||||
Known B1: BCM4707 rev 6
|
||||
Known C0: BCM47094 rev 0
|
||||
|
||||
maintainers:
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- brcm,ns-ax-usb3-phy
|
||||
- brcm,ns-bx-usb3-phy
|
||||
|
||||
reg:
|
||||
description: address of MDIO bus device
|
||||
maxItems: 1
|
||||
|
||||
usb3-dmp-syscon:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Phandle to the DMP (Device Management Plugin) syscon
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- usb3-dmp-syscon
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
usb3-phy@10 {
|
||||
compatible = "brcm,ns-ax-usb3-phy";
|
||||
reg = <0x10>;
|
||||
usb3-dmp-syscon = <&usb3_dmp>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
usb3_dmp: syscon@18105000 {
|
||||
reg = <0x18105000 0x1000>;
|
||||
};
|
36
bindings/phy/berlin-sata-phy.txt
Normal file
36
bindings/phy/berlin-sata-phy.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
Berlin SATA PHY
|
||||
---------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be one of
|
||||
"marvell,berlin2-sata-phy"
|
||||
"marvell,berlin2q-sata-phy"
|
||||
- address-cells: should be 1
|
||||
- size-cells: should be 0
|
||||
- phy-cells: from the generic PHY bindings, must be 1
|
||||
- reg: address and length of the register
|
||||
- clocks: reference to the clock entry
|
||||
|
||||
Sub-nodes:
|
||||
Each PHY should be represented as a sub-node.
|
||||
|
||||
Sub-nodes required properties:
|
||||
- reg: the PHY number
|
||||
|
||||
Example:
|
||||
sata_phy: phy@f7e900a0 {
|
||||
compatible = "marvell,berlin2q-sata-phy";
|
||||
reg = <0xf7e900a0 0x200>;
|
||||
clocks = <&chip CLKID_SATA>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#phy-cells = <1>;
|
||||
|
||||
sata-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
sata-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
16
bindings/phy/berlin-usb-phy.txt
Normal file
16
bindings/phy/berlin-usb-phy.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
* Marvell Berlin USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: "marvell,berlin2-usb-phy" or "marvell,berlin2cd-usb-phy"
|
||||
- reg: base address and length of the registers
|
||||
- #phys-cells: should be 0
|
||||
- resets: reference to the reset controller
|
||||
|
||||
Example:
|
||||
|
||||
usb-phy@f774000 {
|
||||
compatible = "marvell,berlin2-usb-phy";
|
||||
reg = <0xf774000 0x128>;
|
||||
#phy-cells = <0>;
|
||||
resets = <&chip 0x104 14>;
|
||||
};
|
78
bindings/phy/brcm,bcm63xx-usbh-phy.yaml
Normal file
78
bindings/phy/brcm,bcm63xx-usbh-phy.yaml
Normal file
@@ -0,0 +1,78 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/brcm,bcm63xx-usbh-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: BCM63xx USBH PHY
|
||||
|
||||
maintainers:
|
||||
- Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- brcm,bcm6318-usbh-phy
|
||||
- brcm,bcm6328-usbh-phy
|
||||
- brcm,bcm6358-usbh-phy
|
||||
- brcm,bcm6362-usbh-phy
|
||||
- brcm,bcm6368-usbh-phy
|
||||
- brcm,bcm63268-usbh-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: usbh
|
||||
- const: usb_ref
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- "#phy-cells"
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- brcm,bcm6318-usbh-phy
|
||||
- brcm,bcm6328-usbh-phy
|
||||
- brcm,bcm6362-usbh-phy
|
||||
- brcm,bcm63268-usbh-phy
|
||||
then:
|
||||
properties:
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
required:
|
||||
- power-domains
|
||||
else:
|
||||
properties:
|
||||
power-domains: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usbh: usb-phy@10001700 {
|
||||
compatible = "brcm,bcm6368-usbh-phy";
|
||||
reg = <0x10001700 0x38>;
|
||||
clocks = <&periph_clk 15>;
|
||||
clock-names = "usbh";
|
||||
resets = <&periph_rst 12>;
|
||||
#phy-cells = <1>;
|
||||
};
|
196
bindings/phy/brcm,brcmstb-usb-phy.yaml
Normal file
196
bindings/phy/brcm,brcmstb-usb-phy.yaml
Normal file
@@ -0,0 +1,196 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom STB USB PHY
|
||||
|
||||
description: Broadcom's PHY that handles EHCI/OHCI and/or XHCI
|
||||
|
||||
maintainers:
|
||||
- Al Cooper <alcooperx@gmail.com>
|
||||
- Rafał Miłecki <rafal@milecki.pl>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- brcm,bcm4908-usb-phy
|
||||
- brcm,bcm7211-usb-phy
|
||||
- brcm,bcm7216-usb-phy
|
||||
- brcm,brcmstb-usb-phy
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: the base CTRL register
|
||||
- description: XHCI EC register
|
||||
- description: XHCI GBL register
|
||||
- description: USB PHY register
|
||||
- description: USB MDIO register
|
||||
- description: BDC register
|
||||
|
||||
reg-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: ctrl
|
||||
- const: xhci_ec
|
||||
- const: xhci_gbl
|
||||
- const: usb_phy
|
||||
- const: usb_mdio
|
||||
- const: bdc_ec
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: sw_usb
|
||||
- const: sw_usb3
|
||||
|
||||
interrupts:
|
||||
description: wakeup interrupt
|
||||
|
||||
interrupt-names:
|
||||
const: wake
|
||||
|
||||
brcm,ipp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Invert Port Power
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
brcm,ioc:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Invert Over Current detection
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
dr_mode:
|
||||
description: PHY Device mode. If this property is not defined, the PHY will
|
||||
default to "host" mode.
|
||||
enum:
|
||||
- host
|
||||
- peripheral
|
||||
- drd
|
||||
- typec-pd
|
||||
|
||||
brcm,syscon-piarbctl:
|
||||
description: phandle to syscon for handling config registers
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
brcm,has-xhci:
|
||||
description: Indicates the PHY has an XHCI PHY.
|
||||
type: boolean
|
||||
|
||||
brcm,has-eohci:
|
||||
description: Indicates the PHY has an EHCI/OHCI PHY.
|
||||
type: boolean
|
||||
|
||||
"#phy-cells":
|
||||
description: |
|
||||
Cell allows setting the type of the PHY. Possible values are:
|
||||
- PHY_TYPE_USB2 for USB1.1/2.0 PHY
|
||||
- PHY_TYPE_USB3 for USB3.x PHY
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
anyOf:
|
||||
- required:
|
||||
- brcm,has-xhci
|
||||
- required:
|
||||
- brcm,has-eohci
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- const: brcm,bcm4908-usb-phy
|
||||
- const: brcm,brcmstb-usb-phy
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: brcm,bcm7211-usb-phy
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 5
|
||||
maxItems: 6
|
||||
reg-names:
|
||||
minItems: 5
|
||||
maxItems: 6
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: brcm,bcm7216-usb-phy
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
reg-names:
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
usb-phy@f0470200 {
|
||||
compatible = "brcm,brcmstb-usb-phy";
|
||||
reg = <0xf0470200 0xb8>,
|
||||
<0xf0471940 0x6c0>;
|
||||
#phy-cells = <1>;
|
||||
dr_mode = "host";
|
||||
brcm,ioc = <1>;
|
||||
brcm,ipp = <1>;
|
||||
brcm,has-xhci;
|
||||
brcm,has-eohci;
|
||||
clocks = <&usb20>, <&usb30>;
|
||||
clock-names = "sw_usb", "sw_usb3";
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
usb-phy@29f0200 {
|
||||
compatible = "brcm,bcm7211-usb-phy";
|
||||
reg = <0x29f0200 0x200>,
|
||||
<0x29c0880 0x30>,
|
||||
<0x29cc100 0x534>,
|
||||
<0x2808000 0x24>,
|
||||
<0x2980080 0x8>;
|
||||
reg-names = "ctrl",
|
||||
"xhci_ec",
|
||||
"xhci_gbl",
|
||||
"usb_phy",
|
||||
"usb_mdio";
|
||||
brcm,ioc = <0x0>;
|
||||
brcm,ipp = <0x0>;
|
||||
interrupts = <0x30>;
|
||||
interrupt-parent = <&vpu_intr1_nosec_intc>;
|
||||
interrupt-names = "wake";
|
||||
#phy-cells = <0x1>;
|
||||
brcm,has-xhci;
|
||||
brcm,syscon-piarbctl = <&syscon_piarbctl>;
|
||||
clocks = <&scmi_clk 256>;
|
||||
clock-names = "sw_usb";
|
||||
};
|
77
bindings/phy/brcm,cygnus-pcie-phy.yaml
Normal file
77
bindings/phy/brcm,cygnus-pcie-phy.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/brcm,cygnus-pcie-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom Cygnus PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Ray Jui <ray.jui@broadcom.com>
|
||||
- Scott Branden <scott.branden@broadcom.com>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^pcie[-|_]phy(@.*)?$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: brcm,cygnus-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: >
|
||||
Base address and length of the PCIe PHY block
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^pcie-phy@[0-9]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: >
|
||||
PCIe PHY child nodes
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: >
|
||||
The PCIe PHY port number
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie_phy: pcie_phy@301d0a0 {
|
||||
compatible = "brcm,cygnus-pcie-phy";
|
||||
reg = <0x0301d0a0 0x14>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pcie0_phy: pcie-phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie1_phy: pcie-phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
15
bindings/phy/brcm,kona-usb2-phy.txt
Normal file
15
bindings/phy/brcm,kona-usb2-phy.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
BROADCOM KONA USB2 PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: brcm,kona-usb2-phy
|
||||
- reg: offset and length of the PHY registers
|
||||
- #phy-cells: must be 0
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
|
||||
usbphy: usb-phy@3f130000 {
|
||||
compatible = "brcm,kona-usb2-phy";
|
||||
reg = <0x3f130000 0x28>;
|
||||
#phy-cells = <0>;
|
||||
};
|
30
bindings/phy/brcm,ns2-drd-phy.txt
Normal file
30
bindings/phy/brcm,ns2-drd-phy.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
BROADCOM NORTHSTAR2 USB2 (DUAL ROLE DEVICE) PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: brcm,ns2-drd-phy
|
||||
- reg: offset and length of the NS2 PHY related registers.
|
||||
- reg-names
|
||||
The below registers must be provided.
|
||||
icfg - for DRD ICFG configurations
|
||||
rst-ctrl - for DRD IDM reset
|
||||
crmu-ctrl - for CRMU core vdd, PHY and PHY PLL reset
|
||||
usb2-strap - for port over current polarity reversal
|
||||
- #phy-cells: Must be 0. No args required.
|
||||
- vbus-gpios: vbus gpio binding
|
||||
- id-gpios: id gpio binding
|
||||
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
usbdrd_phy: phy@66000960 {
|
||||
#phy-cells = <0>;
|
||||
compatible = "brcm,ns2-drd-phy";
|
||||
reg = <0x66000960 0x24>,
|
||||
<0x67012800 0x4>,
|
||||
<0x6501d148 0x4>,
|
||||
<0x664d0700 0x4>;
|
||||
reg-names = "icfg", "rst-ctrl",
|
||||
"crmu-ctrl", "usb2-strap";
|
||||
id-gpios = <&gpio_g 30 0>;
|
||||
vbus-gpios = <&gpio_g 31 0>;
|
||||
};
|
41
bindings/phy/brcm,ns2-pcie-phy.yaml
Normal file
41
bindings/phy/brcm,ns2-pcie-phy.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/brcm,ns2-pcie-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom NS2 PCIe PHY binding document
|
||||
|
||||
maintainers:
|
||||
- Ray Jui <ray.jui@broadcom.com>
|
||||
- Scott Branden <scott.branden@broadcom.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: brcm,ns2-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pci-phy@0 {
|
||||
compatible = "brcm,ns2-pcie-phy";
|
||||
reg = <0x0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
144
bindings/phy/brcm,sata-phy.yaml
Normal file
144
bindings/phy/brcm,sata-phy.yaml
Normal file
@@ -0,0 +1,144 @@
|
||||
# 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
|
||||
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:
|
||||
const: brcm,iproc-ns2-sata-phy
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 2
|
||||
|
||||
reg-names:
|
||||
minItems: 2
|
||||
else:
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reg-names:
|
||||
maxItems: 1
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
41
bindings/phy/brcm,sr-pcie-phy.txt
Normal file
41
bindings/phy/brcm,sr-pcie-phy.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
Broadcom Stingray PCIe PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "brcm,sr-pcie-phy"
|
||||
- reg: base address and length of the PCIe SS register space
|
||||
- brcm,sr-cdru: phandle to the CDRU syscon node
|
||||
- brcm,sr-mhb: phandle to the MHB syscon node
|
||||
- #phy-cells: Must be 1, denotes the PHY index
|
||||
|
||||
For PAXB based root complex, one can have a configuration of up to 8 PHYs
|
||||
PHY index goes from 0 to 7
|
||||
|
||||
For the internal PAXC based root complex, PHY index is always 8
|
||||
|
||||
Example:
|
||||
mhb: syscon@60401000 {
|
||||
compatible = "brcm,sr-mhb", "syscon";
|
||||
reg = <0 0x60401000 0 0x38c>;
|
||||
};
|
||||
|
||||
cdru: syscon@6641d000 {
|
||||
compatible = "brcm,sr-cdru", "syscon";
|
||||
reg = <0 0x6641d000 0 0x400>;
|
||||
};
|
||||
|
||||
pcie_phy: phy@40000000 {
|
||||
compatible = "brcm,sr-pcie-phy";
|
||||
reg = <0 0x40000000 0 0x800>;
|
||||
brcm,sr-cdru = <&cdru>;
|
||||
brcm,sr-mhb = <&mhb>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
/* users of the PCIe PHY */
|
||||
|
||||
pcie0: pcie@48000000 {
|
||||
...
|
||||
...
|
||||
phys = <&pcie_phy 0>;
|
||||
phy-names = "pcie-phy";
|
||||
};
|
32
bindings/phy/brcm,stingray-usb-phy.txt
Normal file
32
bindings/phy/brcm,stingray-usb-phy.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
Broadcom Stingray USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible : should be one of the listed compatibles
|
||||
- "brcm,sr-usb-combo-phy" is combo PHY has two PHYs, one SS and one HS.
|
||||
- "brcm,sr-usb-hs-phy" is a single HS PHY.
|
||||
- reg: offset and length of the PHY blocks registers
|
||||
- #phy-cells:
|
||||
- Must be 1 for brcm,sr-usb-combo-phy as it expects one argument to indicate
|
||||
the PHY number of two PHYs. 0 for HS PHY and 1 for SS PHY.
|
||||
- Must be 0 for brcm,sr-usb-hs-phy.
|
||||
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
usbphy0: usb-phy@0 {
|
||||
compatible = "brcm,sr-usb-combo-phy";
|
||||
reg = <0x00000000 0x100>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
usbphy1: usb-phy@10000 {
|
||||
compatible = "brcm,sr-usb-combo-phy";
|
||||
reg = <0x00010000 0x100>,
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
usbphy2: usb-phy@20000 {
|
||||
compatible = "brcm,sr-usb-hs-phy";
|
||||
reg = <0x00020000 0x100>,
|
||||
#phy-cells = <0>;
|
||||
};
|
50
bindings/phy/calxeda-combophy.yaml
Normal file
50
bindings/phy/calxeda-combophy.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/calxeda-combophy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Calxeda Highbank Combination PHYs binding for SATA
|
||||
|
||||
description: |
|
||||
The Calxeda Combination PHYs connect the SoC to the internal fabric
|
||||
and to SATA connectors. The PHYs support multiple protocols (SATA,
|
||||
SGMII, PCIe) and can be assigned to different devices (SATA or XGMAC
|
||||
controller).
|
||||
Programming the PHYs is typically handled by those device drivers,
|
||||
not by a dedicated PHY driver.
|
||||
|
||||
maintainers:
|
||||
- Andre Przywara <andre.przywara@arm.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: calxeda,hb-combophy
|
||||
|
||||
'#phy-cells':
|
||||
const: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
phydev:
|
||||
description: device ID for programming the ComboPHY.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
maximum: 31
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- phydev
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
combophy5: combo-phy@fff5d000 {
|
||||
compatible = "calxeda,hb-combophy";
|
||||
#phy-cells = <1>;
|
||||
reg = <0xfff5d000 0x1000>;
|
||||
phydev = <31>;
|
||||
};
|
42
bindings/phy/cdns,dphy-rx.yaml
Normal file
42
bindings/phy/cdns,dphy-rx.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/cdns,dphy-rx.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cadence DPHY Rx
|
||||
|
||||
maintainers:
|
||||
- Pratyush Yadav <pratyush@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: cdns,dphy-rx
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/soc/ti,sci_pm_domain.h>
|
||||
|
||||
dphy0: phy@4580000 {
|
||||
compatible = "cdns,dphy-rx";
|
||||
reg = <0x4580000 0x1100>;
|
||||
#phy-cells = <0>;
|
||||
power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
|
||||
};
|
57
bindings/phy/cdns,dphy.yaml
Normal file
57
bindings/phy/cdns,dphy.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/cdns,dphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cadence DPHY
|
||||
|
||||
maintainers:
|
||||
- Pratyush Yadav <pratyush@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cdns,dphy
|
||||
- ti,j721e-dphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: PMA state machine clock
|
||||
- description: PLL reference clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: psm
|
||||
- const: pll_ref
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/soc/ti,sci_pm_domain.h>
|
||||
|
||||
dphy0: phy@fd0e0000{
|
||||
compatible = "cdns,dphy";
|
||||
reg = <0xfd0e0000 0x1000>;
|
||||
clocks = <&psm_clk>, <&pll_ref_clk>;
|
||||
clock-names = "psm", "pll_ref";
|
||||
power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
|
||||
#phy-cells = <0>;
|
||||
};
|
52
bindings/phy/cdns,salvo-phy.yaml
Normal file
52
bindings/phy/cdns,salvo-phy.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 NXP
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/cdns,salvo-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Cadence SALVO PHY
|
||||
|
||||
maintainers:
|
||||
- Peter Chen <peter.chen@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- nxp,salvo-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: salvo_phy_clk
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/firmware/imx/rsrc.h>
|
||||
|
||||
usb3phy: usb3-phy@5b160000 {
|
||||
compatible = "nxp,salvo-phy";
|
||||
reg = <0x5b160000 0x40000>;
|
||||
clocks = <&usb3_lpcg 4>;
|
||||
clock-names = "salvo_phy_clk";
|
||||
power-domains = <&pd IMX_SC_R_USB_2_PHY>;
|
||||
#phy-cells = <0>;
|
||||
};
|
24
bindings/phy/dm816x-phy.txt
Normal file
24
bindings/phy/dm816x-phy.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
Device tree binding documentation for am816x USB PHY
|
||||
=========================
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "ti,dm816x-usb-phy"
|
||||
- reg : offset and length of the PHY register set.
|
||||
- reg-names : name for the phy registers
|
||||
- clocks : phandle to the clock
|
||||
- clock-names : name of the clock
|
||||
- syscon: phandle for the syscon node to access misc registers
|
||||
- #phy-cells : from the generic PHY bindings, must be 1
|
||||
- syscon: phandle for the syscon node to access misc registers
|
||||
|
||||
Example:
|
||||
|
||||
usb_phy0: usb-phy@20 {
|
||||
compatible = "ti,dm8168-usb-phy";
|
||||
reg = <0x20 0x8>;
|
||||
reg-names = "phy";
|
||||
clocks = <&main_fapll 6>;
|
||||
clock-names = "refclk";
|
||||
#phy-cells = <0>;
|
||||
syscon = <&scm_conf>;
|
||||
};
|
92
bindings/phy/fsl,imx8-pcie-phy.yaml
Normal file
92
bindings/phy/fsl,imx8-pcie-phy.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/fsl,imx8-pcie-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX8 SoC series PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Richard Zhu <hongxing.zhu@nxp.com>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx8mm-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: ref
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: pciephy
|
||||
|
||||
fsl,refclk-pad-mode:
|
||||
description: |
|
||||
Specifies the mode of the refclk pad used. It can be UNUSED(PHY
|
||||
refclock is derived from SoC internal source), INPUT(PHY refclock
|
||||
is provided externally via the refclk pad) or OUTPUT(PHY refclock
|
||||
is derived from SoC internal source and provided on the refclk pad).
|
||||
Refer include/dt-bindings/phy/phy-imx8-pcie.h for the constants
|
||||
to be used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2 ]
|
||||
|
||||
fsl,tx-deemph-gen1:
|
||||
description: Gen1 De-emphasis value (optional).
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 0
|
||||
|
||||
fsl,tx-deemph-gen2:
|
||||
description: Gen2 De-emphasis value (optional).
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 0
|
||||
|
||||
fsl,clkreq-unsupported:
|
||||
type: boolean
|
||||
description: A boolean property indicating the CLKREQ# signal is
|
||||
not supported in the board design (optional)
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- fsl,refclk-pad-mode
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/imx8mm-clock.h>
|
||||
#include <dt-bindings/phy/phy-imx8-pcie.h>
|
||||
#include <dt-bindings/reset/imx8mq-reset.h>
|
||||
|
||||
pcie_phy: pcie-phy@32f00000 {
|
||||
compatible = "fsl,imx8mm-pcie-phy";
|
||||
reg = <0x32f00000 0x10000>;
|
||||
clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
|
||||
clock-names = "ref";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
|
||||
assigned-clock-rates = <100000000>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_100M>;
|
||||
resets = <&src IMX8MQ_RESET_PCIEPHY>;
|
||||
reset-names = "pciephy";
|
||||
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
...
|
53
bindings/phy/fsl,imx8mq-usb-phy.yaml
Normal file
53
bindings/phy/fsl,imx8mq-usb-phy.yaml
Normal file
@@ -0,0 +1,53 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/fsl,imx8mq-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX8MQ USB3 PHY binding
|
||||
|
||||
maintainers:
|
||||
- Li Jun <jun.li@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx8mq-usb-phy
|
||||
- fsl,imx8mp-usb-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: phy
|
||||
|
||||
vbus-supply:
|
||||
description:
|
||||
A phandle to the regulator for USB VBUS.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/imx8mq-clock.h>
|
||||
usb3_phy0: phy@381f0040 {
|
||||
compatible = "fsl,imx8mq-usb-phy";
|
||||
reg = <0x381f0040 0x40>;
|
||||
clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>;
|
||||
clock-names = "phy";
|
||||
#phy-cells = <0>;
|
||||
};
|
61
bindings/phy/fsl,imx8qm-lvds-phy.yaml
Normal file
61
bindings/phy/fsl,imx8qm-lvds-phy.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/fsl,imx8qm-lvds-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mixel LVDS PHY for Freescale i.MX8qm SoC
|
||||
|
||||
maintainers:
|
||||
- Liu Ying <victor.liu@nxp.com>
|
||||
|
||||
description: |
|
||||
The Mixel LVDS PHY IP block is found on Freescale i.MX8qm SoC.
|
||||
It converts two groups of four 7/10 bits of CMOS data into two
|
||||
groups of four data lanes of LVDS data streams. A phase-locked
|
||||
transmit clock is transmitted in parallel with each group of
|
||||
data streams over a fifth LVDS link. Every cycle of the transmit
|
||||
clock, 56/80 bits of input data are sampled and transmitted
|
||||
through the two groups of LVDS data streams. Together with the
|
||||
transmit clocks, the two groups of LVDS data streams form two
|
||||
LVDS channels.
|
||||
|
||||
The Mixel LVDS PHY found on Freescale i.MX8qm SoC is controlled
|
||||
by Control and Status Registers(CSR) module in the SoC. The CSR
|
||||
module, as a system controller, contains the PHY's registers.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx8qm-lvds-phy
|
||||
- mixel,28fdsoi-lvds-1250-8ch-tx-pll
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description: |
|
||||
Cell allows setting the LVDS channel index of the PHY.
|
||||
Index 0 is for LVDS channel0 and index 1 is for LVDS channel1.
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#phy-cells"
|
||||
- clocks
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/firmware/imx/rsrc.h>
|
||||
phy {
|
||||
compatible = "fsl,imx8qm-lvds-phy";
|
||||
#phy-cells = <1>;
|
||||
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>;
|
||||
power-domains = <&pd IMX_SC_R_LVDS_0>;
|
||||
};
|
40
bindings/phy/fsl,lynx-28g.yaml
Normal file
40
bindings/phy/fsl,lynx-28g.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/fsl,lynx-28g.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale Lynx 28G SerDes PHY binding
|
||||
|
||||
maintainers:
|
||||
- Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,lynx-28g
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
serdes_1: phy@1ea0000 {
|
||||
compatible = "fsl,lynx-28g";
|
||||
reg = <0x0 0x1ea0000 0x0 0x1e30>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
50
bindings/phy/hisilicon,hi3660-usb3.yaml
Normal file
50
bindings/phy/hisilicon,hi3660-usb3.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/hisilicon,hi3660-usb3.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Hisilicon Kirin 960 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
||||
description: |+
|
||||
Bindings for USB3 PHY on HiSilicon Kirin 960.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hisilicon,hi3660-usb-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
hisilicon,pericrg-syscon:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: phandle of syscon used to control iso refclk.
|
||||
|
||||
hisilicon,pctrl-syscon:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: phandle of syscon used to control usb tcxo.
|
||||
|
||||
hisilicon,eye-diagram-param:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Eye diagram for phy.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- hisilicon,pericrg-syscon
|
||||
- hisilicon,pctrl-syscon
|
||||
- hisilicon,eye-diagram-param
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy {
|
||||
compatible = "hisilicon,hi3660-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
hisilicon,pericrg-syscon = <&crg_ctrl>;
|
||||
hisilicon,pctrl-syscon = <&pctrl>;
|
||||
hisilicon,eye-diagram-param = <0x22466e4>;
|
||||
};
|
63
bindings/phy/hisilicon,hi3670-usb3.yaml
Normal file
63
bindings/phy/hisilicon,hi3670-usb3.yaml
Normal file
@@ -0,0 +1,63 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/hisilicon,hi3670-usb3.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Hisilicon Kirin970 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
||||
|
||||
description: |+
|
||||
Bindings for USB3 PHY on HiSilicon Kirin 970.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hisilicon,hi3670-usb-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
hisilicon,pericrg-syscon:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: phandle of syscon used to control iso refclk.
|
||||
|
||||
hisilicon,pctrl-syscon:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: phandle of syscon used to control usb tcxo.
|
||||
|
||||
hisilicon,sctrl-syscon:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: phandle of syscon used to control phy deep sleep.
|
||||
|
||||
hisilicon,eye-diagram-param:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Eye diagram for phy.
|
||||
|
||||
hisilicon,tx-vboost-lvl:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: TX level vboost for phy.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- hisilicon,pericrg-syscon
|
||||
- hisilicon,pctrl-syscon
|
||||
- hisilicon,sctrl-syscon
|
||||
- hisilicon,eye-diagram-param
|
||||
- hisilicon,tx-vboost-lvl
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy {
|
||||
compatible = "hisilicon,hi3670-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
hisilicon,pericrg-syscon = <&crg_ctrl>;
|
||||
hisilicon,pctrl-syscon = <&pctrl>;
|
||||
hisilicon,sctrl-syscon = <&sctrl>;
|
||||
hisilicon,eye-diagram-param = <0xfdfee4>;
|
||||
hisilicon,tx-vboost-lvl = <0x5>;
|
||||
};
|
82
bindings/phy/hisilicon,phy-hi3670-pcie.yaml
Normal file
82
bindings/phy/hisilicon,phy-hi3670-pcie.yaml
Normal file
@@ -0,0 +1,82 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/hisilicon,phy-hi3670-pcie.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: HiSilicon Kirin970 PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
||||
|
||||
description: |+
|
||||
Bindings for PCIe PHY on HiSilicon Kirin 970.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hisilicon,hi970-pcie-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: PHY Control registers
|
||||
|
||||
phy-supply:
|
||||
description: The PCIe PHY power supply
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: PCIe PHY clock
|
||||
- description: PCIe AUX clock
|
||||
- description: PCIe APB PHY clock
|
||||
- description: PCIe APB SYS clock
|
||||
- description: PCIe ACLK clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: phy_ref
|
||||
- const: aux
|
||||
- const: apb_phy
|
||||
- const: apb_sys
|
||||
- const: aclk
|
||||
|
||||
hisilicon,eye-diagram-param:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: Eye diagram for phy.
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- hisilicon,eye-diagram-param
|
||||
- phy-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/hi3670-clock.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
pcie_phy: pcie-phy@fc000000 {
|
||||
compatible = "hisilicon,hi970-pcie-phy";
|
||||
reg = <0x0 0xfc000000 0x0 0x80000>;
|
||||
#phy-cells = <0>;
|
||||
phy-supply = <&ldo33>;
|
||||
clocks = <&crg_ctrl HI3670_CLK_GATE_PCIEPHY_REF>,
|
||||
<&crg_ctrl HI3670_CLK_GATE_PCIEAUX>,
|
||||
<&crg_ctrl HI3670_PCLK_GATE_PCIE_PHY>,
|
||||
<&crg_ctrl HI3670_PCLK_GATE_PCIE_SYS>,
|
||||
<&crg_ctrl HI3670_ACLK_GATE_PCIE>;
|
||||
clock-names = "phy_ref", "aux",
|
||||
"apb_phy", "apb_sys", "aclk";
|
||||
hisilicon,eye-diagram-param = <0xffffffff 0xffffffff
|
||||
0xffffffff 0xffffffff 0xffffffff>;
|
||||
};
|
||||
};
|
22
bindings/phy/hix5hd2-phy.txt
Normal file
22
bindings/phy/hix5hd2-phy.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Hisilicon hix5hd2 SATA PHY
|
||||
-----------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "hisilicon,hix5hd2-sata-phy"
|
||||
- reg: offset and length of the PHY registers
|
||||
- #phy-cells: must be 0
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Optional Properties:
|
||||
- hisilicon,peripheral-syscon: phandle of syscon used to control peripheral.
|
||||
- hisilicon,power-reg: offset and bit number within peripheral-syscon,
|
||||
register of controlling sata power supply.
|
||||
|
||||
Example:
|
||||
sata_phy: phy@f9900000 {
|
||||
compatible = "hisilicon,hix5hd2-sata-phy";
|
||||
reg = <0xf9900000 0x10000>;
|
||||
#phy-cells = <0>;
|
||||
hisilicon,peripheral-syscon = <&peripheral_ctrl>;
|
||||
hisilicon,power-reg = <0x8 10>;
|
||||
};
|
58
bindings/phy/ingenic,phy-usb.yaml
Normal file
58
bindings/phy/ingenic,phy-usb.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/ingenic,phy-usb.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Ingenic SoCs USB PHY devicetree bindings
|
||||
|
||||
maintainers:
|
||||
- Paul Cercueil <paul@crapouillou.net>
|
||||
- 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: '^usb-phy@.*'
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- ingenic,jz4770-phy
|
||||
- ingenic,jz4775-phy
|
||||
- ingenic,jz4780-phy
|
||||
- ingenic,x1000-phy
|
||||
- ingenic,x1830-phy
|
||||
- ingenic,x2000-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply:
|
||||
description: VCC power supply
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- vcc-supply
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/ingenic,jz4770-cgu.h>
|
||||
otg_phy: usb-phy@3c {
|
||||
compatible = "ingenic,jz4770-phy";
|
||||
reg = <0x3c 0x10>;
|
||||
|
||||
vcc-supply = <&vcc>;
|
||||
clocks = <&cgu JZ4770_CLK_OTG_PHY>;
|
||||
|
||||
#phy-cells = <0>;
|
||||
};
|
109
bindings/phy/intel,combo-phy.yaml
Normal file
109
bindings/phy/intel,combo-phy.yaml
Normal file
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/intel,combo-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Intel ComboPhy Subsystem
|
||||
|
||||
maintainers:
|
||||
- Dilip Kota <eswara.kota@linux.intel.com>
|
||||
|
||||
description: |
|
||||
Intel Combophy subsystem supports PHYs for PCIe, EMAC and SATA
|
||||
controllers. A single Combophy provides two PHY instances.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "combophy(@.*|-[0-9a-f])*$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: intel,combophy-lgm
|
||||
- const: intel,combo-phy
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: ComboPhy core registers
|
||||
- description: PCIe app core control registers
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: core
|
||||
- const: app
|
||||
|
||||
resets:
|
||||
maxItems: 4
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
- const: core
|
||||
- const: iphy0
|
||||
- const: iphy1
|
||||
|
||||
intel,syscfg:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
- items:
|
||||
- description: phandle to Chip configuration registers
|
||||
- description: ComboPhy instance id
|
||||
description: Chip configuration registers handle and ComboPhy instance id
|
||||
|
||||
intel,hsio:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
- items:
|
||||
- description: phandle to HSIO registers
|
||||
- description: ComboPhy instance id
|
||||
description: HSIO registers handle and ComboPhy instance id on NOC
|
||||
|
||||
intel,aggregation:
|
||||
type: boolean
|
||||
description: |
|
||||
Specify the flag to configure ComboPHY in dual lane mode.
|
||||
|
||||
intel,phy-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Mode of the two phys in ComboPhy.
|
||||
See dt-bindings/phy/phy.h for values.
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- reg
|
||||
- reg-names
|
||||
- intel,syscfg
|
||||
- intel,hsio
|
||||
- intel,phy-mode
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
combophy@d0a00000 {
|
||||
compatible = "intel,combophy-lgm", "intel,combo-phy";
|
||||
clocks = <&cgu0 1>;
|
||||
#phy-cells = <1>;
|
||||
reg = <0xd0a00000 0x40000>,
|
||||
<0xd0a40000 0x1000>;
|
||||
reg-names = "core", "app";
|
||||
resets = <&rcu0 0x50 6>,
|
||||
<&rcu0 0x50 17>,
|
||||
<&rcu0 0x50 23>,
|
||||
<&rcu0 0x50 24>;
|
||||
reset-names = "phy", "core", "iphy0", "iphy1";
|
||||
intel,syscfg = <&sysconf 0>;
|
||||
intel,hsio = <&hsiol 0>;
|
||||
intel,phy-mode = <PHY_TYPE_PCIE>;
|
||||
intel,aggregation;
|
||||
};
|
44
bindings/phy/intel,keembay-phy-usb.yaml
Normal file
44
bindings/phy/intel,keembay-phy-usb.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/intel,keembay-phy-usb.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Intel Keem Bay USB PHY bindings
|
||||
|
||||
maintainers:
|
||||
- Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: intel,keembay-usb-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: USB APB CPR (clock, power, reset) register
|
||||
- description: USB APB slave register
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: cpr-apb-base
|
||||
- const: slv-apb-base
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@20400000 {
|
||||
compatible = "intel,keembay-usb-phy";
|
||||
reg = <0x20400000 0x1c>,
|
||||
<0x20480000 0xd0>;
|
||||
reg-names = "cpr-apb-base", "slv-apb-base";
|
||||
#phy-cells = <0>;
|
||||
};
|
75
bindings/phy/intel,lgm-emmc-phy.yaml
Normal file
75
bindings/phy/intel,lgm-emmc-phy.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/intel,lgm-emmc-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Intel Lightning Mountain(LGM) eMMC PHY
|
||||
|
||||
maintainers:
|
||||
- Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@linux.intel.com>
|
||||
|
||||
description: |+
|
||||
Bindings for eMMC PHY on Intel's Lightning Mountain SoC, syscon
|
||||
node is used to reference the base address of eMMC phy registers.
|
||||
|
||||
The eMMC PHY node should be the child of a syscon node with the
|
||||
required property:
|
||||
|
||||
- compatible: Should be one of the following:
|
||||
"intel,lgm-syscon", "syscon"
|
||||
- reg:
|
||||
maxItems: 1
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- intel,lgm-emmc-phy
|
||||
- intel,keembay-emmc-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: emmcclk
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sysconf: chiptop@e0200000 {
|
||||
compatible = "intel,lgm-syscon", "syscon";
|
||||
reg = <0xe0200000 0x100>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
emmc_phy: emmc-phy@a8 {
|
||||
compatible = "intel,lgm-emmc-phy";
|
||||
reg = <0x00a8 0x10>;
|
||||
clocks = <&emmc>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
phy@20290000 {
|
||||
compatible = "intel,keembay-emmc-phy";
|
||||
reg = <0x20290000 0x54>;
|
||||
clocks = <&emmc>;
|
||||
clock-names = "emmcclk";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
...
|
58
bindings/phy/intel,lgm-usb-phy.yaml
Normal file
58
bindings/phy/intel,lgm-usb-phy.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/intel,lgm-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Intel LGM USB PHY
|
||||
|
||||
maintainers:
|
||||
- Vadivel Murugan Ramuthevar <vadivel.muruganx.ramuthevar@linux.intel.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: intel,lgm-usb-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: USB PHY and Host controller reset
|
||||
- description: APB BUS reset
|
||||
- description: General Hardware reset
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
- const: apb
|
||||
- const: phy31
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- reg
|
||||
- resets
|
||||
- reset-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@e7e00000 {
|
||||
compatible = "intel,lgm-usb-phy";
|
||||
reg = <0xe7e00000 0x10000>;
|
||||
clocks = <&cgu0 153>;
|
||||
resets = <&rcu 0x70 0x24>,
|
||||
<&rcu 0x70 0x26>,
|
||||
<&rcu 0x70 0x28>;
|
||||
reset-names = "phy", "apb", "phy31";
|
||||
#phy-cells = <0>;
|
||||
};
|
46
bindings/phy/intel,phy-thunderbay-emmc.yaml
Normal file
46
bindings/phy/intel,phy-thunderbay-emmc.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/intel,phy-thunderbay-emmc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Intel Thunder Bay eMMC PHY bindings
|
||||
|
||||
maintainers:
|
||||
- Srikandan Nandhini <nandhini.srikandan@intel.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: intel,thunderbay-emmc-phy
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: emmcclk
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mmc_phy@80440800 {
|
||||
#phy-cells = <0x0>;
|
||||
compatible = "intel,thunderbay-emmc-phy";
|
||||
status = "okay";
|
||||
reg = <0x80440800 0x100>;
|
||||
clocks = <&emmc>;
|
||||
clock-names = "emmcclk";
|
||||
};
|
19
bindings/phy/keystone-usb-phy.txt
Normal file
19
bindings/phy/keystone-usb-phy.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
TI Keystone USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "ti,keystone-usbphy".
|
||||
- #address-cells, #size-cells : should be '1' if the device has sub-nodes
|
||||
with 'reg' property.
|
||||
- reg : Address and length of the usb phy control register set.
|
||||
|
||||
The main purpose of this PHY driver is to enable the USB PHY reference clock
|
||||
gate on the Keystone SOC for both the USB2 and USB3 PHY. Otherwise it is just
|
||||
an NOP PHY driver. Hence this node is referenced as both the usb2 and usb3
|
||||
phy node in the USB Glue layer driver node.
|
||||
|
||||
usb_phy: usb_phy@2620738 {
|
||||
compatible = "ti,keystone-usbphy";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x2620738 32>;
|
||||
};
|
95
bindings/phy/lantiq,vrx200-pcie-phy.yaml
Normal file
95
bindings/phy/lantiq,vrx200-pcie-phy.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/lantiq,vrx200-pcie-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Lantiq VRX200 and ARX300 PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description: selects the PHY mode as defined in <dt-bindings/phy/phy-lantiq-vrx200-pcie.h>
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- lantiq,vrx200-pcie-phy
|
||||
- lantiq,arx300-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: PHY module clock
|
||||
- description: PDI register clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: phy
|
||||
- const: pdi
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: exclusive PHY reset line
|
||||
- description: shared reset line between the PCIe PHY and PCIe controller
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy
|
||||
- const: pcie
|
||||
|
||||
lantiq,rcu:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: phandle to the RCU syscon
|
||||
|
||||
lantiq,rcu-endian-offset:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: the offset of the endian registers for this PHY instance in the RCU syscon
|
||||
|
||||
lantiq,rcu-big-endian-mask:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: the mask to set the PDI (PHY) registers for this PHY instance to big endian
|
||||
|
||||
big-endian:
|
||||
description: Configures the PDI (PHY) registers in big-endian mode
|
||||
type: boolean
|
||||
|
||||
little-endian:
|
||||
description: Configures the PDI (PHY) registers in big-endian mode
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- lantiq,rcu
|
||||
- lantiq,rcu-endian-offset
|
||||
- lantiq,rcu-big-endian-mask
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie0_phy: phy@106800 {
|
||||
compatible = "lantiq,vrx200-pcie-phy";
|
||||
reg = <0x106800 0x100>;
|
||||
lantiq,rcu = <&rcu0>;
|
||||
lantiq,rcu-endian-offset = <0x4c>;
|
||||
lantiq,rcu-big-endian-mask = <0x80>; /* bit 7 */
|
||||
big-endian;
|
||||
clocks = <&pmu 32>, <&pmu 36>;
|
||||
clock-names = "phy", "pdi";
|
||||
resets = <&reset0 12 24>, <&reset0 22 22>;
|
||||
reset-names = "phy", "pcie";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
...
|
57
bindings/phy/marvell,armada-3700-utmi-phy.yaml
Normal file
57
bindings/phy/marvell,armada-3700-utmi-phy.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/marvell,armada-3700-utmi-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Marvell Armada UTMI/UTMI+ PHY
|
||||
|
||||
maintainers:
|
||||
- Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
description:
|
||||
On Armada 3700, there are two USB controllers, one is compatible with
|
||||
the USB2 and USB3 specifications and supports OTG. The other one is USB2
|
||||
compliant and only supports host mode. Both of these controllers come with
|
||||
a slightly different UTMI PHY.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- marvell,a3700-utmi-host-phy
|
||||
- marvell,a3700-utmi-otg-phy
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
marvell,usb-misc-reg:
|
||||
description:
|
||||
Phandle on the "USB miscellaneous registers" shared region
|
||||
covering registers related to both the host controller and
|
||||
the PHY.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
- marvell,usb-misc-reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb2_utmi_host_phy: phy@5f000 {
|
||||
compatible = "marvell,a3700-utmi-host-phy";
|
||||
reg = <0x5f000 0x800>;
|
||||
marvell,usb-misc-reg = <&usb2_syscon>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2_syscon: system-controller@5f800 {
|
||||
compatible = "marvell,armada-3700-usb2-host-misc", "syscon";
|
||||
reg = <0x5f800 0x800>;
|
||||
};
|
109
bindings/phy/marvell,armada-cp110-utmi-phy.yaml
Normal file
109
bindings/phy/marvell,armada-cp110-utmi-phy.yaml
Normal file
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/marvell,armada-cp110-utmi-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Marvell Armada CP110/CP115 UTMI PHY
|
||||
|
||||
maintainers:
|
||||
- Konstantin Porotchkin <kostap@marvell.com>
|
||||
|
||||
description:
|
||||
On Armada 7k/8k and CN913x, there are two host and one device USB controllers.
|
||||
Each of two exiting UTMI PHYs could be connected to either USB host or USB device
|
||||
controller.
|
||||
The USB device controller can only be connected to a single UTMI PHY port
|
||||
0.H----- USB HOST0
|
||||
UTMI PHY0 --------/
|
||||
0.D-----0
|
||||
\------ USB DEVICE
|
||||
1.D-----1
|
||||
UTMI PHY1 --------\
|
||||
1.H----- USB HOST1
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: marvell,cp110-utmi-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
marvell,system-controller:
|
||||
description:
|
||||
Phandle to the system controller node
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
#Required child nodes:
|
||||
|
||||
patternProperties:
|
||||
"^usb-phy@[0|1]$":
|
||||
type: object
|
||||
description:
|
||||
Each UTMI PHY port must be represented as a sub-node.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: phy port index.
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- marvell,system-controller
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
cp0_utmi: utmi@580000 {
|
||||
compatible = "marvell,cp110-utmi-phy";
|
||||
reg = <0x580000 0x2000>;
|
||||
marvell,system-controller = <&cp0_syscon0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cp0_utmi0: usb-phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
cp0_utmi1: usb-phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
cp0_usb3_0 {
|
||||
usb-phy = <&cp0_usb3_0_phy0>;
|
||||
phys = <&cp0_utmi0>;
|
||||
phy-names = "utmi";
|
||||
/* UTMI0 is connected to USB host controller (default mode) */
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
cp0_usb3_1 {
|
||||
usb-phy = <&cp0_usb3_0_phy1>;
|
||||
phys = <&cp0_utmi1>;
|
||||
phy-names = "utmi";
|
||||
/* UTMI1 is connected to USB device controller */
|
||||
dr_mode = "peripheral";
|
||||
};
|
37
bindings/phy/marvell,mmp3-hsic-phy.yaml
Normal file
37
bindings/phy/marvell,mmp3-hsic-phy.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
|
||||
# Copyright 2019 Lubomir Rintel <lkundrak@v3.sk>
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/marvell,mmp3-hsic-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Marvell MMP3 HSIC PHY
|
||||
|
||||
maintainers:
|
||||
- Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: marvell,mmp3-hsic-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: base address of the device
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
hsic-phy@f0001800 {
|
||||
compatible = "marvell,mmp3-hsic-phy";
|
||||
reg = <0xf0001800 0x40>;
|
||||
#phy-cells = <0>;
|
||||
};
|
42
bindings/phy/marvell,mmp3-usb-phy.yaml
Normal file
42
bindings/phy/marvell,mmp3-usb-phy.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
|
||||
# Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk>
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/marvell,mmp3-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Marvell MMP3 USB PHY bindings
|
||||
|
||||
maintainers:
|
||||
- Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: '^usb-phy@[a-f0-9]+$'
|
||||
|
||||
compatible:
|
||||
const: marvell,mmp3-usb-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: base address of the device
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@d4207000 {
|
||||
compatible = "marvell,mmp3-usb-phy";
|
||||
reg = <0xd4207000 0x40>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
...
|
92
bindings/phy/mediatek,dsi-phy.yaml
Normal file
92
bindings/phy/mediatek,dsi-phy.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 MediaTek
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,dsi-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MIPI Display Serial Interface (DSI) PHY binding
|
||||
|
||||
maintainers:
|
||||
- Chun-Kuang Hu <chunkuang.hu@kernel.org>
|
||||
- Philipp Zabel <p.zabel@pengutronix.de>
|
||||
- Chunfeng Yun <chunfeng.yun@mediatek.com>
|
||||
|
||||
description: The MIPI DSI PHY supports up to 4-lane output.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^dsi-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt7623-mipi-tx
|
||||
- const: mediatek,mt2701-mipi-tx
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8365-mipi-tx
|
||||
- const: mediatek,mt8183-mipi-tx
|
||||
- const: mediatek,mt2701-mipi-tx
|
||||
- const: mediatek,mt8173-mipi-tx
|
||||
- const: mediatek,mt8183-mipi-tx
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: PLL reference clock
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
nvmem-cells:
|
||||
maxItems: 1
|
||||
description: A phandle to the calibration data provided by a nvmem device,
|
||||
if unspecified, default values shall be used.
|
||||
|
||||
nvmem-cell-names:
|
||||
items:
|
||||
- const: calibration-data
|
||||
|
||||
drive-strength-microamp:
|
||||
description: adjust driving current
|
||||
multipleOf: 200
|
||||
minimum: 2000
|
||||
maximum: 6000
|
||||
default: 4600
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-output-names
|
||||
- "#phy-cells"
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
dsi-phy@10215000 {
|
||||
compatible = "mediatek,mt8173-mipi-tx";
|
||||
reg = <0x10215000 0x1000>;
|
||||
clocks = <&clk26m>;
|
||||
clock-output-names = "mipi_tx0_pll";
|
||||
drive-strength-microamp = <4000>;
|
||||
nvmem-cells= <&mipi_tx_calibration>;
|
||||
nvmem-cell-names = "calibration-data";
|
||||
#clock-cells = <0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
...
|
95
bindings/phy/mediatek,hdmi-phy.yaml
Normal file
95
bindings/phy/mediatek,hdmi-phy.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 MediaTek
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,hdmi-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek High Definition Multimedia Interface (HDMI) PHY binding
|
||||
|
||||
maintainers:
|
||||
- Chun-Kuang Hu <chunkuang.hu@kernel.org>
|
||||
- Philipp Zabel <p.zabel@pengutronix.de>
|
||||
- Chunfeng Yun <chunfeng.yun@mediatek.com>
|
||||
|
||||
description: |
|
||||
The HDMI PHY serializes the HDMI encoder's three channel 10-bit parallel
|
||||
output and drives the HDMI pads.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^hdmi-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt7623-hdmi-phy
|
||||
- const: mediatek,mt2701-hdmi-phy
|
||||
- const: mediatek,mt2701-hdmi-phy
|
||||
- const: mediatek,mt8173-hdmi-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: PLL reference clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pll_ref
|
||||
|
||||
clock-output-names:
|
||||
items:
|
||||
- const: hdmitx_dig_cts
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
mediatek,ibias:
|
||||
description:
|
||||
TX DRV bias current for < 1.65Gbps
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
default: 0xa
|
||||
|
||||
mediatek,ibias_up:
|
||||
description:
|
||||
TX DRV bias current for >= 1.65Gbps
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
default: 0x1c
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- clock-output-names
|
||||
- "#phy-cells"
|
||||
- "#clock-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
hdmi_phy: hdmi-phy@10209100 {
|
||||
compatible = "mediatek,mt8173-hdmi-phy";
|
||||
reg = <0x10209100 0x24>;
|
||||
clocks = <&apmixedsys CLK_APMIXED_HDMI_REF>;
|
||||
clock-names = "pll_ref";
|
||||
clock-output-names = "hdmitx_dig_cts";
|
||||
mediatek,ibias = <0xa>;
|
||||
mediatek,ibias_up = <0x1c>;
|
||||
#clock-cells = <0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
...
|
41
bindings/phy/mediatek,mt7621-pci-phy.yaml
Normal file
41
bindings/phy/mediatek,mt7621-pci-phy.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/mediatek,mt7621-pci-phy.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Mediatek Mt7621 PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt7621-pci-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description: selects if the phy is dual-ported
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie0_phy: pcie-phy@1e149000 {
|
||||
compatible = "mediatek,mt7621-pci-phy";
|
||||
reg = <0x1e149000 0x0700>;
|
||||
clocks = <&sysc 0>;
|
||||
#phy-cells = <1>;
|
||||
};
|
75
bindings/phy/mediatek,pcie-phy.yaml
Normal file
75
bindings/phy/mediatek,pcie-phy.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,pcie-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek PCIe PHY
|
||||
|
||||
maintainers:
|
||||
- Jianjun Wang <jianjun.wang@mediatek.com>
|
||||
|
||||
description: |
|
||||
The PCIe PHY supports physical layer functionality for PCIe Gen3 port.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8195-pcie-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: sif
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
nvmem-cells:
|
||||
maxItems: 7
|
||||
description:
|
||||
Phandles to nvmem cell that contains the efuse data, if unspecified,
|
||||
default value is used.
|
||||
|
||||
nvmem-cell-names:
|
||||
items:
|
||||
- const: glb_intr
|
||||
- const: tx_ln0_pmos
|
||||
- const: tx_ln0_nmos
|
||||
- const: rx_ln0
|
||||
- const: tx_ln1_pmos
|
||||
- const: tx_ln1_nmos
|
||||
- const: rx_ln1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
phy@11e80000 {
|
||||
compatible = "mediatek,mt8195-pcie-phy";
|
||||
#phy-cells = <0>;
|
||||
reg = <0x11e80000 0x10000>;
|
||||
reg-names = "sif";
|
||||
nvmem-cells = <&pciephy_glb_intr>,
|
||||
<&pciephy_tx_ln0_pmos>,
|
||||
<&pciephy_tx_ln0_nmos>,
|
||||
<&pciephy_rx_ln0>,
|
||||
<&pciephy_tx_ln1_pmos>,
|
||||
<&pciephy_tx_ln1_nmos>,
|
||||
<&pciephy_rx_ln1>;
|
||||
nvmem-cell-names = "glb_intr", "tx_ln0_pmos",
|
||||
"tx_ln0_nmos", "rx_ln0",
|
||||
"tx_ln1_pmos", "tx_ln1_nmos",
|
||||
"rx_ln1";
|
||||
power-domains = <&spm 2>;
|
||||
};
|
312
bindings/phy/mediatek,tphy.yaml
Normal file
312
bindings/phy/mediatek,tphy.yaml
Normal file
@@ -0,0 +1,312 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 MediaTek
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,tphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek T-PHY Controller
|
||||
|
||||
maintainers:
|
||||
- Chunfeng Yun <chunfeng.yun@mediatek.com>
|
||||
|
||||
description: |
|
||||
The T-PHY controller supports physical layer functionality for a number of
|
||||
controllers on MediaTek SoCs, includes USB2.0, USB3.0, PCIe and SATA.
|
||||
|
||||
Layout differences of banks between T-PHY V1 (mt8173/mt2701) and
|
||||
T-PHY V2 (mt2712) / V3 (mt8195) when works on USB mode:
|
||||
-----------------------------------
|
||||
Version 1:
|
||||
port offset bank
|
||||
shared 0x0000 SPLLC
|
||||
0x0100 FMREG
|
||||
u2 port0 0x0800 U2PHY_COM
|
||||
u3 port0 0x0900 U3PHYD
|
||||
0x0a00 U3PHYD_BANK2
|
||||
0x0b00 U3PHYA
|
||||
0x0c00 U3PHYA_DA
|
||||
u2 port1 0x1000 U2PHY_COM
|
||||
u3 port1 0x1100 U3PHYD
|
||||
0x1200 U3PHYD_BANK2
|
||||
0x1300 U3PHYA
|
||||
0x1400 U3PHYA_DA
|
||||
u2 port2 0x1800 U2PHY_COM
|
||||
...
|
||||
|
||||
Version 2/3:
|
||||
port offset bank
|
||||
u2 port0 0x0000 MISC
|
||||
0x0100 FMREG
|
||||
0x0300 U2PHY_COM
|
||||
u3 port0 0x0700 SPLLC
|
||||
0x0800 CHIP
|
||||
0x0900 U3PHYD
|
||||
0x0a00 U3PHYD_BANK2
|
||||
0x0b00 U3PHYA
|
||||
0x0c00 U3PHYA_DA
|
||||
u2 port1 0x1000 MISC
|
||||
0x1100 FMREG
|
||||
0x1300 U2PHY_COM
|
||||
u3 port1 0x1700 SPLLC
|
||||
0x1800 CHIP
|
||||
0x1900 U3PHYD
|
||||
0x1a00 U3PHYD_BANK2
|
||||
0x1b00 U3PHYA
|
||||
0x1c00 U3PHYA_DA
|
||||
u2 port2 0x2000 MISC
|
||||
...
|
||||
|
||||
SPLLC shared by u3 ports and FMREG shared by u2 ports on V1 are put back
|
||||
into each port; a new bank MISC for u2 ports and CHIP for u3 ports are
|
||||
added on V2; the FMREG bank for slew rate calibration is not used anymore
|
||||
and reserved on V3;
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^t-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt2701-tphy
|
||||
- mediatek,mt7623-tphy
|
||||
- mediatek,mt7622-tphy
|
||||
- mediatek,mt8516-tphy
|
||||
- const: mediatek,generic-tphy-v1
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt2712-tphy
|
||||
- mediatek,mt7629-tphy
|
||||
- mediatek,mt8183-tphy
|
||||
- mediatek,mt8186-tphy
|
||||
- mediatek,mt8192-tphy
|
||||
- mediatek,mt8365-tphy
|
||||
- const: mediatek,generic-tphy-v2
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8188-tphy
|
||||
- mediatek,mt8195-tphy
|
||||
- const: mediatek,generic-tphy-v3
|
||||
- const: mediatek,mt2701-u3phy
|
||||
deprecated: true
|
||||
- const: mediatek,mt2712-u3phy
|
||||
deprecated: true
|
||||
- const: mediatek,mt8173-u3phy
|
||||
|
||||
reg:
|
||||
description:
|
||||
Register shared by multiple ports, exclude port's private register.
|
||||
It is needed for T-PHY V1, such as mt2701 and mt8173, but not for
|
||||
T-PHY V2/V3, such as mt2712.
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
enum: [1, 2]
|
||||
|
||||
"#size-cells":
|
||||
enum: [1, 2]
|
||||
|
||||
# Used with non-empty value if optional 'reg' is not provided.
|
||||
# The format of the value is an arbitrary number of triplets of
|
||||
# (child-bus-address, parent-bus-address, length).
|
||||
ranges: true
|
||||
|
||||
mediatek,src-ref-clk-mhz:
|
||||
description:
|
||||
Frequency of reference clock for slew rate calibrate
|
||||
default: 26
|
||||
|
||||
mediatek,src-coef:
|
||||
description:
|
||||
Coefficient for slew rate calibrate, depends on SoC process
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 28
|
||||
|
||||
# Required child node:
|
||||
patternProperties:
|
||||
"^(usb|pcie|sata)-phy@[0-9a-f]+$":
|
||||
type: object
|
||||
description:
|
||||
A sub-node is required for each port the controller provides.
|
||||
Address range information including the usual 'reg' property
|
||||
is used inside these nodes to describe the controller's topology.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Reference clock, (HS is 48Mhz, SS/P is 24~27Mhz)
|
||||
- description: Reference clock of analog phy
|
||||
description:
|
||||
Uses both clocks if the clock of analog and digital phys are
|
||||
separated, otherwise uses "ref" clock only if needed.
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: ref
|
||||
- const: da_ref
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description: |
|
||||
The cells contain the following arguments.
|
||||
|
||||
- description: The PHY type
|
||||
enum:
|
||||
- PHY_TYPE_USB2
|
||||
- PHY_TYPE_USB3
|
||||
- PHY_TYPE_PCIE
|
||||
- PHY_TYPE_SATA
|
||||
- PHY_TYPE_SGMII
|
||||
|
||||
nvmem-cells:
|
||||
items:
|
||||
- description: internal R efuse for U2 PHY or U3/PCIe PHY
|
||||
- description: rx_imp_sel efuse for U3/PCIe PHY
|
||||
- description: tx_imp_sel efuse for U3/PCIe PHY
|
||||
description: |
|
||||
Phandles to nvmem cell that contains the efuse data;
|
||||
Available only for U2 PHY or U3/PCIe PHY of version 2/3, these
|
||||
three items should be provided at the same time for U3/PCIe PHY,
|
||||
when use software to load efuse;
|
||||
If unspecified, will use hardware auto-load efuse.
|
||||
|
||||
nvmem-cell-names:
|
||||
items:
|
||||
- const: intr
|
||||
- const: rx_imp
|
||||
- const: tx_imp
|
||||
|
||||
# The following optional vendor properties are only for debug or HQA test
|
||||
mediatek,eye-src:
|
||||
description:
|
||||
The value of slew rate calibrate (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,eye-vrt:
|
||||
description:
|
||||
The selection of VRT reference voltage (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,eye-term:
|
||||
description:
|
||||
The selection of HS_TX TERM reference voltage (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,intr:
|
||||
description:
|
||||
The selection of internal resistor (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 31
|
||||
|
||||
mediatek,discth:
|
||||
description:
|
||||
The selection of disconnect threshold (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 15
|
||||
|
||||
mediatek,pre-emphasis:
|
||||
description:
|
||||
The level of pre-emphasis which used to widen the eye opening and
|
||||
boost eye swing, the unit step is about 4.16% increment; e.g. the
|
||||
level 1 means amplitude increases about 4.16%, the level 2 is about
|
||||
8.3% etc. (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 3
|
||||
|
||||
mediatek,bc12:
|
||||
description:
|
||||
Specify the flag to enable BC1.2 if support it
|
||||
type: boolean
|
||||
|
||||
mediatek,syscon-type:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
maxItems: 1
|
||||
description:
|
||||
A phandle to syscon used to access the register of type switch,
|
||||
the field should always be 3 cells long.
|
||||
items:
|
||||
items:
|
||||
- description:
|
||||
The first cell represents a phandle to syscon
|
||||
- description:
|
||||
The second cell represents the register offset
|
||||
- description:
|
||||
The third cell represents the index of config segment
|
||||
enum: [0, 1, 2, 3]
|
||||
|
||||
required:
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- ranges
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
usb@11271000 {
|
||||
compatible = "mediatek,mt8173-mtu3", "mediatek,mtu3";
|
||||
reg = <0x11271000 0x3000>, <0x11280700 0x0100>;
|
||||
reg-names = "mac", "ippc";
|
||||
phys = <&u2port0 PHY_TYPE_USB2>,
|
||||
<&u3port0 PHY_TYPE_USB3>,
|
||||
<&u2port1 PHY_TYPE_USB2>;
|
||||
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&topckgen CLK_TOP_USB30_SEL>;
|
||||
clock-names = "sys_ck";
|
||||
};
|
||||
|
||||
t-phy@11290000 {
|
||||
compatible = "mediatek,mt8173-u3phy";
|
||||
reg = <0x11290000 0x800>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
u2port0: usb-phy@11290800 {
|
||||
reg = <0x11290800 0x100>;
|
||||
clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>, <&clk48m>;
|
||||
clock-names = "ref", "da_ref";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
u3port0: usb-phy@11290900 {
|
||||
reg = <0x11290900 0x700>;
|
||||
clocks = <&clk26m>;
|
||||
clock-names = "ref";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
u2port1: usb-phy@11291000 {
|
||||
reg = <0x11291000 0x100>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
69
bindings/phy/mediatek,ufs-phy.yaml
Normal file
69
bindings/phy/mediatek,ufs-phy.yaml
Normal file
@@ -0,0 +1,69 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 MediaTek
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,ufs-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek Universal Flash Storage (UFS) M-PHY binding
|
||||
|
||||
maintainers:
|
||||
- Stanley Chu <stanley.chu@mediatek.com>
|
||||
- Chunfeng Yun <chunfeng.yun@mediatek.com>
|
||||
|
||||
description: |
|
||||
UFS M-PHY nodes are defined to describe on-chip UFS M-PHY hardware macro.
|
||||
Each UFS M-PHY node should have its own node.
|
||||
To bind UFS M-PHY with UFS host controller, the controller node should
|
||||
contain a phandle reference to UFS M-PHY node.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^ufs-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8195-ufsphy
|
||||
- const: mediatek,mt8183-ufsphy
|
||||
- const: mediatek,mt8183-ufsphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Unipro core control clock.
|
||||
- description: M-PHY core control clock.
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: unipro
|
||||
- const: mp
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
ufsphy: ufs-phy@11fa0000 {
|
||||
compatible = "mediatek,mt8183-ufsphy";
|
||||
reg = <0x11fa0000 0xc000>;
|
||||
clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
|
||||
<&infracfg CLK_INFRA_UFS_MP_SAP_BCLK>;
|
||||
clock-names = "unipro", "mp";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
...
|
199
bindings/phy/mediatek,xsphy.yaml
Normal file
199
bindings/phy/mediatek,xsphy.yaml
Normal file
@@ -0,0 +1,199 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (c) 2020 MediaTek
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mediatek,xsphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek XS-PHY Controller
|
||||
|
||||
maintainers:
|
||||
- Chunfeng Yun <chunfeng.yun@mediatek.com>
|
||||
|
||||
description: |
|
||||
The XS-PHY controller supports physical layer functionality for USB3.1
|
||||
GEN2 controller on MediaTek SoCs.
|
||||
|
||||
Banks layout of xsphy
|
||||
----------------------------------
|
||||
port offset bank
|
||||
u2 port0 0x0000 MISC
|
||||
0x0100 FMREG
|
||||
0x0300 U2PHY_COM
|
||||
u2 port1 0x1000 MISC
|
||||
0x1100 FMREG
|
||||
0x1300 U2PHY_COM
|
||||
u2 port2 0x2000 MISC
|
||||
...
|
||||
u31 common 0x3000 DIG_GLB
|
||||
0x3100 PHYA_GLB
|
||||
u31 port0 0x3400 DIG_LN_TOP
|
||||
0x3500 DIG_LN_TX0
|
||||
0x3600 DIG_LN_RX0
|
||||
0x3700 DIG_LN_DAIF
|
||||
0x3800 PHYA_LN
|
||||
u31 port1 0x3a00 DIG_LN_TOP
|
||||
0x3b00 DIG_LN_TX0
|
||||
0x3c00 DIG_LN_RX0
|
||||
0x3d00 DIG_LN_DAIF
|
||||
0x3e00 PHYA_LN
|
||||
...
|
||||
DIG_GLB & PHYA_GLB are shared by U31 ports.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^xs-phy@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- mediatek,mt3611-xsphy
|
||||
- mediatek,mt3612-xsphy
|
||||
- const: mediatek,xsphy
|
||||
|
||||
reg:
|
||||
description:
|
||||
Register shared by multiple U3 ports, exclude port's private register,
|
||||
if only U2 ports provided, shouldn't use the property.
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
enum: [1, 2]
|
||||
|
||||
"#size-cells":
|
||||
enum: [1, 2]
|
||||
|
||||
ranges: true
|
||||
|
||||
mediatek,src-ref-clk-mhz:
|
||||
description:
|
||||
Frequency of reference clock for slew rate calibrate
|
||||
default: 26
|
||||
|
||||
mediatek,src-coef:
|
||||
description:
|
||||
Coefficient for slew rate calibrate, depends on SoC process
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 17
|
||||
|
||||
# Required child node:
|
||||
patternProperties:
|
||||
"^usb-phy@[0-9a-f]+$":
|
||||
type: object
|
||||
description:
|
||||
A sub-node is required for each port the controller provides.
|
||||
Address range information including the usual 'reg' property
|
||||
is used inside these nodes to describe the controller's topology.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Reference clock, (HS is 48Mhz, SS/P is 24~27Mhz)
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: ref
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description: |
|
||||
The cells contain the following arguments.
|
||||
|
||||
- description: The PHY type
|
||||
enum:
|
||||
- PHY_TYPE_USB2
|
||||
- PHY_TYPE_USB3
|
||||
|
||||
# The following optional vendor properties are only for debug or HQA test
|
||||
mediatek,eye-src:
|
||||
description:
|
||||
The value of slew rate calibrate (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,eye-vrt:
|
||||
description:
|
||||
The selection of VRT reference voltage (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,eye-term:
|
||||
description:
|
||||
The selection of HS_TX TERM reference voltage (U2 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
mediatek,efuse-intr:
|
||||
description:
|
||||
The selection of Internal Resistor (U2/U3 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 63
|
||||
|
||||
mediatek,efuse-tx-imp:
|
||||
description:
|
||||
The selection of TX Impedance (U3 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 31
|
||||
|
||||
mediatek,efuse-rx-imp:
|
||||
description:
|
||||
The selection of RX Impedance (U3 phy)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 31
|
||||
|
||||
required:
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- ranges
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
u3phy: xs-phy@11c40000 {
|
||||
compatible = "mediatek,mt3611-xsphy", "mediatek,xsphy";
|
||||
reg = <0x11c43000 0x0200>;
|
||||
mediatek,src-ref-clk-mhz = <26>;
|
||||
mediatek,src-coef = <17>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
u2port0: usb-phy@11c40000 {
|
||||
reg = <0x11c40000 0x0400>;
|
||||
clocks = <&clk48m>;
|
||||
clock-names = "ref";
|
||||
mediatek,eye-src = <4>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
u3port0: usb-phy@11c43000 {
|
||||
reg = <0x11c43400 0x0500>;
|
||||
clocks = <&clk26m>;
|
||||
clock-names = "ref";
|
||||
mediatek,efuse-intr = <28>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
21
bindings/phy/meson-gxl-usb2-phy.txt
Normal file
21
bindings/phy/meson-gxl-usb2-phy.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
* Amlogic Meson GXL and GXM USB2 PHY binding
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "amlogic,meson-gxl-usb2-phy"
|
||||
- reg: The base address and length of the registers
|
||||
- #phys-cells: must be 0 (see phy-bindings.txt in this directory)
|
||||
|
||||
Optional properties:
|
||||
- clocks: a phandle to the clock of this PHY
|
||||
- clock-names: must be "phy"
|
||||
- resets: a phandle to the reset line of this PHY
|
||||
- reset-names: must be "phy"
|
||||
- phy-supply: see phy-bindings.txt in this directory
|
||||
|
||||
|
||||
Example:
|
||||
usb2_phy0: phy@78000 {
|
||||
compatible = "amlogic,meson-gxl-usb2-phy";
|
||||
#phy-cells = <0>;
|
||||
reg = <0x0 0x78000 0x0 0x20>;
|
||||
};
|
59
bindings/phy/microchip,lan966x-serdes.yaml
Normal file
59
bindings/phy/microchip,lan966x-serdes.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/microchip,lan966x-serdes.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip Lan966x Serdes controller
|
||||
|
||||
maintainers:
|
||||
- Horatiu Vultur <horatiu.vultur@microchip.com>
|
||||
|
||||
description: |
|
||||
Lan966x has 7 interfaces, consisting of 2 copper transceivers(CU),
|
||||
3 SERDES6G and 2 RGMII interfaces. Two of the SERDES6G support QSGMII.
|
||||
Also it has 8 logical Ethernet ports which can be connected to these
|
||||
interfaces. The Serdes controller will allow to configure these interfaces
|
||||
and allows to "mux" the interfaces to different ports.
|
||||
|
||||
For simple selection of the interface that is used with a port, the
|
||||
following macros are defined CU(X), SERDES6G(X), RGMII(X). Where X is a
|
||||
number that represents the index of that interface type. For example
|
||||
CU(1) means use interface copper transceivers 1. SERDES6G(2) means use
|
||||
interface SerDes 2.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^serdes@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
const: microchip,lan966x-serdes
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: HSIO registers
|
||||
- description: HW_STAT register
|
||||
|
||||
'#phy-cells':
|
||||
const: 2
|
||||
description: |
|
||||
- Input port to use for a given macro.
|
||||
- The macro to be used. The macros are defined in
|
||||
dt-bindings/phy/phy-lan966x-serdes.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
serdes: serdes@e2004010 {
|
||||
compatible = "microchip,lan966x-serdes";
|
||||
reg = <0xe202c000 0x9c>, <0xe2004010 0x4>;
|
||||
#phy-cells = <2>;
|
||||
};
|
||||
|
||||
...
|
100
bindings/phy/microchip,sparx5-serdes.yaml
Normal file
100
bindings/phy/microchip,sparx5-serdes.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/microchip,sparx5-serdes.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip Sparx5 Serdes controller
|
||||
|
||||
maintainers:
|
||||
- Steen Hegelund <steen.hegelund@microchip.com>
|
||||
|
||||
description: |
|
||||
The Sparx5 SERDES interfaces share the same basic functionality, but
|
||||
support different operating modes and line rates.
|
||||
|
||||
The following list lists the SERDES features:
|
||||
|
||||
* RX Adaptive Decision Feedback Equalizer (DFE)
|
||||
* Programmable continuous time linear equalizer (CTLE)
|
||||
* Rx variable gain control
|
||||
* Rx built-in fault detector (loss-of-lock/loss-of-signal)
|
||||
* Adjustable tx de-emphasis (FFE)
|
||||
* Tx output amplitude control
|
||||
* Supports rx eye monitor
|
||||
* Multiple loopback modes
|
||||
* Prbs generator and checker
|
||||
* Polarity inversion control
|
||||
|
||||
SERDES6G:
|
||||
|
||||
The SERDES6G is a high-speed SERDES interface, which can operate at
|
||||
the following data rates:
|
||||
|
||||
* 100 Mbps (100BASE-FX)
|
||||
* 1.25 Gbps (SGMII/1000BASE-X/1000BASE-KX)
|
||||
* 3.125 Gbps (2.5GBASE-X/2.5GBASE-KX)
|
||||
* 5.15625 Gbps (5GBASE-KR/5G-USXGMII)
|
||||
|
||||
SERDES10G
|
||||
|
||||
The SERDES10G is a high-speed SERDES interface, which can operate at
|
||||
the following data rates:
|
||||
|
||||
* 100 Mbps (100BASE-FX)
|
||||
* 1.25 Gbps (SGMII/1000BASE-X/1000BASE-KX)
|
||||
* 3.125 Gbps (2.5GBASE-X/2.5GBASE-KX)
|
||||
* 5 Gbps (QSGMII/USGMII)
|
||||
* 5.15625 Gbps (5GBASE-KR/5G-USXGMII)
|
||||
* 10 Gbps (10G-USGMII)
|
||||
* 10.3125 Gbps (10GBASE-R/10GBASE-KR/USXGMII)
|
||||
|
||||
SERDES25G
|
||||
|
||||
The SERDES25G is a high-speed SERDES interface, which can operate at
|
||||
the following data rates:
|
||||
|
||||
* 1.25 Gbps (SGMII/1000BASE-X/1000BASE-KX)
|
||||
* 3.125 Gbps (2.5GBASE-X/2.5GBASE-KX)
|
||||
* 5 Gbps (QSGMII/USGMII)
|
||||
* 5.15625 Gbps (5GBASE-KR/5G-USXGMII)
|
||||
* 10 Gbps (10G-USGMII)
|
||||
* 10.3125 Gbps (10GBASE-R/10GBASE-KR/USXGMII)
|
||||
* 25.78125 Gbps (25GBASE-KR/25GBASE-CR/25GBASE-SR/25GBASE-LR/25GBASE-ER)
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^serdes@[0-9a-f]+$"
|
||||
|
||||
compatible:
|
||||
const: microchip,sparx5-serdes
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
|
||||
'#phy-cells':
|
||||
const: 1
|
||||
description: |
|
||||
- The main serdes input port
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#phy-cells'
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
serdes: serdes@10808000 {
|
||||
compatible = "microchip,sparx5-serdes";
|
||||
#phy-cells = <1>;
|
||||
clocks = <&sys_clk>;
|
||||
reg = <0x10808000 0x5d0000>;
|
||||
};
|
||||
|
||||
...
|
107
bindings/phy/mixel,mipi-dsi-phy.yaml
Normal file
107
bindings/phy/mixel,mipi-dsi-phy.yaml
Normal file
@@ -0,0 +1,107 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mixel,mipi-dsi-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mixel DSI PHY for i.MX8
|
||||
|
||||
maintainers:
|
||||
- Guido Günther <agx@sigxcpu.org>
|
||||
|
||||
description: |
|
||||
The Mixel MIPI-DSI PHY IP block is e.g. found on i.MX8 platforms (along the
|
||||
MIPI-DSI IP from Northwest Logic). It represents the physical layer for the
|
||||
electrical signals for DSI.
|
||||
|
||||
The Mixel PHY IP block found on i.MX8qxp is a combo PHY that can work
|
||||
in either MIPI-DSI PHY mode or LVDS PHY mode.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx8mq-mipi-dphy
|
||||
- fsl,imx8qxp-mipi-dphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: phy_ref
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-parents:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-rates:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
fsl,syscon:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: |
|
||||
A phandle which points to Control and Status Registers(CSR) module.
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#phy-cells"
|
||||
- power-domains
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx8mq-mipi-dphy
|
||||
then:
|
||||
properties:
|
||||
fsl,syscon: false
|
||||
|
||||
required:
|
||||
- assigned-clocks
|
||||
- assigned-clock-parents
|
||||
- assigned-clock-rates
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx8qxp-mipi-dphy
|
||||
then:
|
||||
properties:
|
||||
assigned-clocks: false
|
||||
assigned-clock-parents: false
|
||||
assigned-clock-rates: false
|
||||
|
||||
required:
|
||||
- fsl,syscon
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/imx8mq-clock.h>
|
||||
dphy: dphy@30a0030 {
|
||||
compatible = "fsl,imx8mq-mipi-dphy";
|
||||
reg = <0x30a00300 0x100>;
|
||||
clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
|
||||
clock-names = "phy_ref";
|
||||
assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MQ_VIDEO_PLL1_OUT>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
#phy-cells = <0>;
|
||||
power-domains = <&pgc_mipi>;
|
||||
};
|
56
bindings/phy/mscc,vsc7514-serdes.yaml
Normal file
56
bindings/phy/mscc,vsc7514-serdes.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/mscc,vsc7514-serdes.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microsemi Ocelot SerDes muxing
|
||||
|
||||
maintainers:
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
- UNGLinuxDriver@microchip.com
|
||||
|
||||
description: |
|
||||
On Microsemi Ocelot, there is a handful of registers in HSIO address
|
||||
space for setting up the SerDes to switch port muxing.
|
||||
|
||||
A SerDes X can be "muxed" to work with switch port Y or Z for example.
|
||||
One specific SerDes can also be used as a PCIe interface.
|
||||
|
||||
Hence, a SerDes represents an interface, be it an Ethernet or a PCIe one.
|
||||
|
||||
There are two kinds of SerDes: SERDES1G supports 10/100Mbps in
|
||||
half/full-duplex and 1000Mbps in full-duplex mode while SERDES6G supports
|
||||
10/100Mbps in half/full-duplex and 1000/2500Mbps in full-duplex mode.
|
||||
|
||||
Also, SERDES6G number (aka "macro") 0 is the only interface supporting
|
||||
QSGMII.
|
||||
|
||||
This is a child of the HSIO syscon ("mscc,ocelot-hsio", see
|
||||
Documentation/devicetree/bindings/mips/mscc.txt) on the Microsemi Ocelot.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mscc,vsc7514-serdes
|
||||
|
||||
"#phy-cells":
|
||||
const: 2
|
||||
description: |
|
||||
The first number defines the input port to use for a given SerDes macro.
|
||||
The second defines the macro to use. They are defined in
|
||||
dt-bindings/phy/phy-ocelot-serdes.h
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties:
|
||||
false
|
||||
|
||||
examples:
|
||||
- |
|
||||
serdes: serdes {
|
||||
compatible = "mscc,vsc7514-serdes";
|
||||
#phy-cells = <2>;
|
||||
};
|
33
bindings/phy/mxs-usb-phy.txt
Normal file
33
bindings/phy/mxs-usb-phy.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
* Freescale MXS USB Phy Device
|
||||
|
||||
Required properties:
|
||||
- compatible: should contain:
|
||||
* "fsl,imx23-usbphy" for imx23 and imx28
|
||||
* "fsl,imx6q-usbphy" for imx6dq and imx6dl
|
||||
* "fsl,imx6sl-usbphy" for imx6sl
|
||||
* "fsl,vf610-usbphy" for Vybrid vf610
|
||||
* "fsl,imx6sx-usbphy" for imx6sx
|
||||
* "fsl,imx7ulp-usbphy" for imx7ulp
|
||||
* "fsl,imx8dxl-usbphy" for imx8dxl
|
||||
"fsl,imx23-usbphy" is still a fallback for other strings
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain phy interrupt
|
||||
- fsl,anatop: phandle for anatop register, it is only for imx6 SoC series
|
||||
|
||||
Optional properties:
|
||||
- fsl,tx-cal-45-dn-ohms: Integer [35-54]. Resistance (in ohms) of switchable
|
||||
high-speed trimming resistor connected in parallel with the 45 ohm resistor
|
||||
that terminates the DN output signal. Default: 45
|
||||
- fsl,tx-cal-45-dp-ohms: Integer [35-54]. Resistance (in ohms) of switchable
|
||||
high-speed trimming resistor connected in parallel with the 45 ohm resistor
|
||||
that terminates the DP output signal. Default: 45
|
||||
- fsl,tx-d-cal: Integer [79-119]. Current trimming value (as a percentage) of
|
||||
the 17.78mA TX reference current. Default: 100
|
||||
|
||||
Example:
|
||||
usbphy1: usb-phy@20c9000 {
|
||||
compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020c9000 0x1000>;
|
||||
interrupts = <0 44 0x04>;
|
||||
fsl,anatop = <&anatop>;
|
||||
};
|
779
bindings/phy/nvidia,tegra124-xusb-padctl.txt
Normal file
779
bindings/phy/nvidia,tegra124-xusb-padctl.txt
Normal file
@@ -0,0 +1,779 @@
|
||||
Device tree binding for NVIDIA Tegra XUSB pad controller
|
||||
========================================================
|
||||
|
||||
The Tegra XUSB pad controller manages a set of I/O lanes (with differential
|
||||
signals) which connect directly to pins/pads on the SoC package. Each lane
|
||||
is controlled by a HW block referred to as a "pad" in the Tegra hardware
|
||||
documentation. Each such "pad" may control either one or multiple lanes,
|
||||
and thus contains any logic common to all its lanes. Each lane can be
|
||||
separately configured and powered up.
|
||||
|
||||
Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or
|
||||
super-speed USB. Other lanes are for various types of low-speed, full-speed
|
||||
or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller
|
||||
contains a software-configurable mux that sits between the I/O controller
|
||||
ports (e.g. PCIe) and the lanes.
|
||||
|
||||
In addition to per-lane configuration, USB 3.0 ports may require additional
|
||||
settings on a per-board basis.
|
||||
|
||||
Pads will be represented as children of the top-level XUSB pad controller
|
||||
device tree node. Each lane exposed by the pad will be represented by its
|
||||
own subnode and can be referenced by users of the lane using the standard
|
||||
PHY bindings, as described by the phy-bindings.txt file in this directory.
|
||||
|
||||
The Tegra hardware documentation refers to the connection between the XUSB
|
||||
pad controller and the XUSB controller as "ports". This is confusing since
|
||||
"port" is typically used to denote the physical USB receptacle. The device
|
||||
tree binding in this document uses the term "port" to refer to the logical
|
||||
abstraction of the signals that are routed to a USB receptacle (i.e. a PHY
|
||||
for the USB signal, the VBUS power supply, the USB 2.0 companion port for
|
||||
USB 3.0 receptacles, ...).
|
||||
|
||||
Required properties:
|
||||
--------------------
|
||||
- compatible: Must be:
|
||||
- Tegra124: "nvidia,tegra124-xusb-padctl"
|
||||
- Tegra132: "nvidia,tegra132-xusb-padctl", "nvidia,tegra124-xusb-padctl"
|
||||
- Tegra210: "nvidia,tegra210-xusb-padctl"
|
||||
- Tegra186: "nvidia,tegra186-xusb-padctl"
|
||||
- Tegra194: "nvidia,tegra194-xusb-padctl"
|
||||
- reg: Physical base address and length of the controller's registers.
|
||||
- resets: Must contain an entry for each entry in reset-names.
|
||||
- reset-names: Must include the following entries:
|
||||
- "padctl"
|
||||
|
||||
For Tegra124:
|
||||
- avdd-pll-utmip-supply: UTMI PLL power supply. Must supply 1.8 V.
|
||||
- avdd-pll-erefe-supply: PLLE reference PLL power supply. Must supply 1.05 V.
|
||||
- avdd-pex-pll-supply: PCIe/USB3 PLL power supply. Must supply 1.05 V.
|
||||
- hvdd-pex-pll-e-supply: High-voltage PLLE power supply. Must supply 3.3 V.
|
||||
|
||||
For Tegra210:
|
||||
- avdd-pll-utmip-supply: UTMI PLL power supply. Must supply 1.8 V.
|
||||
- avdd-pll-uerefe-supply: PLLE reference PLL power supply. Must supply 1.05 V.
|
||||
- dvdd-pex-pll-supply: PCIe/USB3 PLL power supply. Must supply 1.05 V.
|
||||
- hvdd-pex-pll-e-supply: High-voltage PLLE power supply. Must supply 1.8 V.
|
||||
- nvidia,pmc: phandle and specifier referring to the Tegra210 PMC node.
|
||||
|
||||
For Tegra186:
|
||||
- avdd-pll-erefeut-supply: UPHY brick and reference clock as well as UTMI PHY
|
||||
power supply. Must supply 1.8 V.
|
||||
- avdd-usb-supply: USB I/Os, VBUS, ID, REXT, D+/D- power supply. Must supply
|
||||
3.3 V.
|
||||
- vclamp-usb-supply: Bias rail for USB pad. Must supply 1.8 V.
|
||||
- vddio-hsic-supply: HSIC PHY power supply. Must supply 1.2 V.
|
||||
|
||||
For Tegra194:
|
||||
- avdd-usb-supply: USB I/Os, VBUS, ID, REXT, D+/D- power supply. Must supply
|
||||
3.3 V.
|
||||
- vclamp-usb-supply: Bias rail for USB pad. Must supply 1.8 V.
|
||||
|
||||
Pad nodes:
|
||||
==========
|
||||
|
||||
A required child node named "pads" contains a list of subnodes, one for each
|
||||
of the pads exposed by the XUSB pad controller. Each pad may need additional
|
||||
resources that can be referenced in its pad node.
|
||||
|
||||
The "status" property is used to enable or disable the use of a pad. If set
|
||||
to "disabled", the pad will not be used on the given board. In order to use
|
||||
the pad and any of its lanes, this property must be set to "okay".
|
||||
|
||||
For Tegra124 and Tegra132, the following pads exist: usb2, ulpi, hsic, pcie
|
||||
and sata. No extra resources are required for operation of these pads.
|
||||
|
||||
For Tegra210, the following pads exist: usb2, hsic, pcie and sata. Below is
|
||||
a description of the properties of each pad.
|
||||
|
||||
UTMI pad:
|
||||
---------
|
||||
|
||||
Required properties:
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
- clock-names: Must contain the following entries:
|
||||
- "trk": phandle and specifier referring to the USB2 tracking clock
|
||||
|
||||
HSIC pad:
|
||||
---------
|
||||
|
||||
Required properties:
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
- clock-names: Must contain the following entries:
|
||||
- "trk": phandle and specifier referring to the HSIC tracking clock
|
||||
|
||||
PCIe pad:
|
||||
---------
|
||||
|
||||
Required properties:
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
- clock-names: Must contain the following entries:
|
||||
- "pll": phandle and specifier referring to the PLLE
|
||||
- resets: Must contain an entry for each entry in reset-names.
|
||||
- reset-names: Must contain the following entries:
|
||||
- "phy": reset for the PCIe UPHY block
|
||||
|
||||
SATA pad:
|
||||
---------
|
||||
|
||||
Required properties:
|
||||
- resets: Must contain an entry for each entry in reset-names.
|
||||
- reset-names: Must contain the following entries:
|
||||
- "phy": reset for the SATA UPHY block
|
||||
|
||||
|
||||
PHY nodes:
|
||||
==========
|
||||
|
||||
Each pad node has a child named "lanes" that contains one or more children of
|
||||
its own, each representing one of the lanes controlled by the pad.
|
||||
|
||||
Required properties:
|
||||
--------------------
|
||||
- status: Defines the operation status of the PHY. Valid values are:
|
||||
- "disabled": the PHY is disabled
|
||||
- "okay": the PHY is enabled
|
||||
- #phy-cells: Should be 0. Since each lane represents a single PHY, there is
|
||||
no need for an additional specifier.
|
||||
- nvidia,function: The output function of the PHY. See below for a list of
|
||||
valid functions per SoC generation.
|
||||
|
||||
For Tegra124 and Tegra132, the list of valid PHY nodes is given below:
|
||||
- usb2: usb2-0, usb2-1, usb2-2
|
||||
- functions: "snps", "xusb", "uart"
|
||||
- ulpi: ulpi-0
|
||||
- functions: "snps", "xusb"
|
||||
- hsic: hsic-0, hsic-1
|
||||
- functions: "snps", "xusb"
|
||||
- pcie: pcie-0, pcie-1, pcie-2, pcie-3, pcie-4
|
||||
- functions: "pcie", "usb3-ss"
|
||||
- sata: sata-0
|
||||
- functions: "usb3-ss", "sata"
|
||||
|
||||
For Tegra210, the list of valid PHY nodes is given below:
|
||||
- usb2: usb2-0, usb2-1, usb2-2, usb2-3
|
||||
- functions: "snps", "xusb", "uart"
|
||||
- hsic: hsic-0, hsic-1
|
||||
- functions: "snps", "xusb"
|
||||
- pcie: pcie-0, pcie-1, pcie-2, pcie-3, pcie-4, pcie-5, pcie-6
|
||||
- functions: "pcie-x1", "usb3-ss", "pcie-x4"
|
||||
- sata: sata-0
|
||||
- functions: "usb3-ss", "sata"
|
||||
|
||||
For Tegra194, the list of valid PHY nodes is given below:
|
||||
- usb2: usb2-0, usb2-1, usb2-2, usb2-3
|
||||
- functions: "xusb"
|
||||
- usb3: usb3-0, usb3-1, usb3-2, usb3-3
|
||||
- functions: "xusb"
|
||||
|
||||
Port nodes:
|
||||
===========
|
||||
|
||||
A required child node named "ports" contains a list of all the ports exposed
|
||||
by the XUSB pad controller. Per-port configuration is only required for USB.
|
||||
|
||||
USB2 ports:
|
||||
-----------
|
||||
|
||||
Required properties:
|
||||
- status: Defines the operation status of the port. Valid values are:
|
||||
- "disabled": the port is disabled
|
||||
- "okay": the port is enabled
|
||||
- mode: A string that determines the mode in which to run the port. Valid
|
||||
values are:
|
||||
- "host": for USB host mode
|
||||
- "device": for USB device mode
|
||||
- "otg": for USB OTG mode
|
||||
|
||||
Required properties for OTG/Peripheral capable USB2 ports:
|
||||
- usb-role-switch: Boolean property to indicate that the port support OTG or
|
||||
peripheral mode. If present, the port supports switching between USB host
|
||||
and peripheral roles. Connector should be added as subnode.
|
||||
See usb/usb-conn-gpio.txt.
|
||||
|
||||
Optional properties:
|
||||
- nvidia,internal: A boolean property whose presence determines that a port
|
||||
is internal. In the absence of this property the port is considered to be
|
||||
external.
|
||||
- vbus-supply: phandle to a regulator supplying the VBUS voltage.
|
||||
|
||||
ULPI ports:
|
||||
-----------
|
||||
|
||||
Optional properties:
|
||||
- status: Defines the operation status of the port. Valid values are:
|
||||
- "disabled": the port is disabled
|
||||
- "okay": the port is enabled
|
||||
- nvidia,internal: A boolean property whose presence determines that a port
|
||||
is internal. In the absence of this property the port is considered to be
|
||||
external.
|
||||
- vbus-supply: phandle to a regulator supplying the VBUS voltage.
|
||||
|
||||
HSIC ports:
|
||||
-----------
|
||||
|
||||
Required properties:
|
||||
- status: Defines the operation status of the port. Valid values are:
|
||||
- "disabled": the port is disabled
|
||||
- "okay": the port is enabled
|
||||
|
||||
Optional properties:
|
||||
- vbus-supply: phandle to a regulator supplying the VBUS voltage.
|
||||
|
||||
Super-speed USB ports:
|
||||
----------------------
|
||||
|
||||
Required properties:
|
||||
- status: Defines the operation status of the port. Valid values are:
|
||||
- "disabled": the port is disabled
|
||||
- "okay": the port is enabled
|
||||
- nvidia,usb2-companion: A single cell that specifies the physical port number
|
||||
to map this super-speed USB port to. The range of valid port numbers varies
|
||||
with the SoC generation:
|
||||
- 0-2: for Tegra124 and Tegra132
|
||||
- 0-3: for Tegra210
|
||||
|
||||
Optional properties:
|
||||
- nvidia,internal: A boolean property whose presence determines that a port
|
||||
is internal. In the absence of this property the port is considered to be
|
||||
external.
|
||||
|
||||
- maximum-speed: Only for Tegra194. A string property that specifies maximum
|
||||
supported speed of a usb3 port. Valid values are:
|
||||
- "super-speed-plus": default, the usb3 port supports USB 3.1 Gen 2 speed.
|
||||
- "super-speed": the usb3 port supports USB 3.1 Gen 1 speed only.
|
||||
|
||||
For Tegra124 and Tegra132, the XUSB pad controller exposes the following
|
||||
ports:
|
||||
- 3x USB2: usb2-0, usb2-1, usb2-2
|
||||
- 1x ULPI: ulpi-0
|
||||
- 2x HSIC: hsic-0, hsic-1
|
||||
- 2x super-speed USB: usb3-0, usb3-1
|
||||
|
||||
For Tegra210, the XUSB pad controller exposes the following ports:
|
||||
- 4x USB2: usb2-0, usb2-1, usb2-2, usb2-3
|
||||
- 2x HSIC: hsic-0, hsic-1
|
||||
- 4x super-speed USB: usb3-0, usb3-1, usb3-2, usb3-3
|
||||
|
||||
For Tegra194, the XUSB pad controller exposes the following ports:
|
||||
- 4x USB2: usb2-0, usb2-1, usb2-2, usb2-3
|
||||
- 4x super-speed USB: usb3-0, usb3-1, usb3-2, usb3-3
|
||||
|
||||
Examples:
|
||||
=========
|
||||
|
||||
Tegra124 and Tegra132:
|
||||
----------------------
|
||||
|
||||
SoC include:
|
||||
|
||||
padctl@7009f000 {
|
||||
/* for Tegra124 */
|
||||
compatible = "nvidia,tegra124-xusb-padctl";
|
||||
/* for Tegra132 */
|
||||
compatible = "nvidia,tegra132-xusb-padctl",
|
||||
"nvidia,tegra124-xusb-padctl";
|
||||
reg = <0x0 0x7009f000 0x0 0x1000>;
|
||||
resets = <&tegra_car 142>;
|
||||
reset-names = "padctl";
|
||||
|
||||
pads {
|
||||
usb2 {
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
usb2-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ulpi {
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
ulpi-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hsic {
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
hsic-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
hsic-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pcie {
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
pcie-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-2 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-3 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-4 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sata {
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
sata-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
usb2-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ulpi-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsic-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsic-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Board file:
|
||||
|
||||
padctl@7009f000 {
|
||||
status = "okay";
|
||||
|
||||
pads {
|
||||
usb2 {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
usb2-0 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pcie {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
pcie-0 {
|
||||
nvidia,function = "usb3-ss";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-2 {
|
||||
nvidia,function = "pcie";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-4 {
|
||||
nvidia,function = "pcie";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sata {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
sata-0 {
|
||||
nvidia,function = "sata";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
/* Micro A/B */
|
||||
usb2-0 {
|
||||
status = "okay";
|
||||
mode = "otg";
|
||||
};
|
||||
|
||||
/* Mini PCIe */
|
||||
usb2-1 {
|
||||
status = "okay";
|
||||
mode = "host";
|
||||
};
|
||||
|
||||
/* USB3 */
|
||||
usb2-2 {
|
||||
status = "okay";
|
||||
mode = "host";
|
||||
|
||||
vbus-supply = <&vdd_usb3_vbus>;
|
||||
};
|
||||
|
||||
usb3-0 {
|
||||
nvidia,port = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Tegra210:
|
||||
---------
|
||||
|
||||
SoC include:
|
||||
|
||||
padctl@7009f000 {
|
||||
compatible = "nvidia,tegra210-xusb-padctl";
|
||||
reg = <0x0 0x7009f000 0x0 0x1000>;
|
||||
resets = <&tegra_car 142>;
|
||||
reset-names = "padctl";
|
||||
|
||||
status = "disabled";
|
||||
|
||||
pads {
|
||||
usb2 {
|
||||
clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>;
|
||||
clock-names = "trk";
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
usb2-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb2-3 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hsic {
|
||||
clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>;
|
||||
clock-names = "trk";
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
hsic-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
hsic-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pcie {
|
||||
clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
|
||||
clock-names = "pll";
|
||||
resets = <&tegra_car 205>;
|
||||
reset-names = "phy";
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
pcie-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-1 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-2 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-3 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-4 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-5 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
pcie-6 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sata {
|
||||
clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
|
||||
clock-names = "pll";
|
||||
resets = <&tegra_car 204>;
|
||||
reset-names = "phy";
|
||||
status = "disabled";
|
||||
|
||||
lanes {
|
||||
sata-0 {
|
||||
status = "disabled";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
usb2-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2-3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsic-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsic-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb3-3 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Board file:
|
||||
|
||||
padctl@7009f000 {
|
||||
status = "okay";
|
||||
|
||||
pads {
|
||||
usb2 {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
usb2-0 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2-3 {
|
||||
nvidia,function = "xusb";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pcie {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
pcie-0 {
|
||||
nvidia,function = "pcie-x1";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-1 {
|
||||
nvidia,function = "pcie-x4";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-2 {
|
||||
nvidia,function = "pcie-x4";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-3 {
|
||||
nvidia,function = "pcie-x4";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-4 {
|
||||
nvidia,function = "pcie-x4";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-5 {
|
||||
nvidia,function = "usb3-ss";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-6 {
|
||||
nvidia,function = "usb3-ss";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sata {
|
||||
status = "okay";
|
||||
|
||||
lanes {
|
||||
sata-0 {
|
||||
nvidia,function = "sata";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
usb2-0 {
|
||||
status = "okay";
|
||||
mode = "otg";
|
||||
};
|
||||
|
||||
usb2-1 {
|
||||
status = "okay";
|
||||
vbus-supply = <&vdd_5v0_rtl>;
|
||||
mode = "host";
|
||||
};
|
||||
|
||||
usb2-2 {
|
||||
status = "okay";
|
||||
vbus-supply = <&vdd_usb_vbus>;
|
||||
mode = "host";
|
||||
};
|
||||
|
||||
usb2-3 {
|
||||
status = "okay";
|
||||
mode = "host";
|
||||
};
|
||||
|
||||
usb3-0 {
|
||||
status = "okay";
|
||||
nvidia,lanes = "pcie-6";
|
||||
nvidia,port = <1>;
|
||||
};
|
||||
|
||||
usb3-1 {
|
||||
status = "okay";
|
||||
nvidia,lanes = "pcie-5";
|
||||
nvidia,port = <2>;
|
||||
};
|
||||
};
|
||||
};
|
373
bindings/phy/nvidia,tegra20-usb-phy.yaml
Normal file
373
bindings/phy/nvidia,tegra20-usb-phy.yaml
Normal file
@@ -0,0 +1,373 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/nvidia,tegra20-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVIDIA Tegra USB PHY
|
||||
|
||||
maintainers:
|
||||
- Dmitry Osipenko <digetx@gmail.com>
|
||||
- Jon Hunter <jonathanh@nvidia.com>
|
||||
- Thierry Reding <thierry.reding@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra124-usb-phy
|
||||
- nvidia,tegra114-usb-phy
|
||||
- enum:
|
||||
- nvidia,tegra30-usb-phy
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra30-usb-phy
|
||||
- nvidia,tegra20-usb-phy
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
description: |
|
||||
PHY0 and PHY2 share power and ground, PHY0 contains shared registers.
|
||||
PHY0 and PHY2 must specify two register sets, where the first set is
|
||||
PHY own registers and the second set is the PHY0 registers.
|
||||
|
||||
clocks:
|
||||
anyOf:
|
||||
- items:
|
||||
- description: Registers clock
|
||||
- description: Main PHY clock
|
||||
|
||||
- items:
|
||||
- description: Registers clock
|
||||
- description: Main PHY clock
|
||||
- description: ULPI PHY clock
|
||||
|
||||
- items:
|
||||
- description: Registers clock
|
||||
- description: Main PHY clock
|
||||
- description: UTMI pads control registers clock
|
||||
|
||||
- items:
|
||||
- description: Registers clock
|
||||
- description: Main PHY clock
|
||||
- description: UTMI timeout clock
|
||||
- description: UTMI pads control registers clock
|
||||
|
||||
clock-names:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: ulpi-link
|
||||
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: utmi-pads
|
||||
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: timer
|
||||
- const: utmi-pads
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
oneOf:
|
||||
- maxItems: 1
|
||||
description: PHY reset
|
||||
|
||||
- items:
|
||||
- description: PHY reset
|
||||
- description: UTMI pads reset
|
||||
|
||||
reset-names:
|
||||
oneOf:
|
||||
- const: usb
|
||||
|
||||
- items:
|
||||
- const: usb
|
||||
- const: utmi-pads
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
phy_type:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum: [utmi, ulpi, hsic]
|
||||
|
||||
dr_mode:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum: [host, peripheral, otg]
|
||||
default: host
|
||||
|
||||
vbus-supply:
|
||||
description: Regulator controlling USB VBUS.
|
||||
|
||||
nvidia,has-legacy-mode:
|
||||
description: |
|
||||
Indicates whether this controller can operate in legacy mode
|
||||
(as APX 2500 / 2600). In legacy mode some registers are accessed
|
||||
through the APB_MISC base address instead of the USB controller.
|
||||
type: boolean
|
||||
|
||||
nvidia,is-wired:
|
||||
description: |
|
||||
Indicates whether we can do certain kind of power optimizations for
|
||||
the devices that are always connected. e.g. modem.
|
||||
type: boolean
|
||||
|
||||
nvidia,has-utmi-pad-registers:
|
||||
description: |
|
||||
Indicates whether this controller contains the UTMI pad control
|
||||
registers common to all USB controllers.
|
||||
type: boolean
|
||||
|
||||
nvidia,hssync-start-delay:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 31
|
||||
description: |
|
||||
Number of 480 MHz clock cycles to wait before start of sync launches
|
||||
RxActive.
|
||||
|
||||
nvidia,elastic-limit:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 31
|
||||
description: Variable FIFO Depth of elastic input store.
|
||||
|
||||
nvidia,idle-wait-delay:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 31
|
||||
description: |
|
||||
Number of 480 MHz clock cycles of idle to wait before declare IDLE.
|
||||
|
||||
nvidia,term-range-adj:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
description: Range adjustment on terminations.
|
||||
|
||||
nvidia,xcvr-setup:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 127
|
||||
description: Input of XCVR cell, HS driver output control.
|
||||
|
||||
nvidia,xcvr-setup-use-fuses:
|
||||
description: Indicates that the value is read from the on-chip fuses.
|
||||
type: boolean
|
||||
|
||||
nvidia,xcvr-lsfslew:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
description: LS falling slew rate control.
|
||||
|
||||
nvidia,xcvr-lsrslew:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
description: LS rising slew rate control.
|
||||
|
||||
nvidia,xcvr-hsslew:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 511
|
||||
description: HS slew rate control.
|
||||
|
||||
nvidia,hssquelch-level:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
description: HS squelch detector level.
|
||||
|
||||
nvidia,hsdiscon-level:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
description: HS disconnect detector level.
|
||||
|
||||
nvidia,phy-reset-gpio:
|
||||
maxItems: 1
|
||||
description: GPIO used to reset the PHY.
|
||||
|
||||
nvidia,pmc:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
- items:
|
||||
- description: Phandle to Power Management controller.
|
||||
- description: USB controller ID.
|
||||
description:
|
||||
Phandle to Power Management controller.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- "#phy-cells"
|
||||
- phy_type
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
phy_type:
|
||||
const: utmi
|
||||
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
resets:
|
||||
maxItems: 2
|
||||
|
||||
reset-names:
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- nvidia,hssync-start-delay
|
||||
- nvidia,elastic-limit
|
||||
- nvidia,idle-wait-delay
|
||||
- nvidia,term-range-adj
|
||||
- nvidia,xcvr-lsfslew
|
||||
- nvidia,xcvr-lsrslew
|
||||
|
||||
anyOf:
|
||||
- required: ["nvidia,xcvr-setup"]
|
||||
- required: ["nvidia,xcvr-setup-use-fuses"]
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: nvidia,tegra30-usb-phy
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: utmi-pads
|
||||
|
||||
required:
|
||||
- nvidia,xcvr-hsslew
|
||||
- nvidia,hssquelch-level
|
||||
- nvidia,hsdiscon-level
|
||||
|
||||
else:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: timer
|
||||
- const: utmi-pads
|
||||
|
||||
- if:
|
||||
properties:
|
||||
phy_type:
|
||||
const: ulpi
|
||||
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
minItems: 2
|
||||
maxItems: 3
|
||||
|
||||
oneOf:
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
|
||||
- items:
|
||||
- const: reg
|
||||
- const: pll_u
|
||||
- const: ulpi-link
|
||||
|
||||
resets:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
reset-names:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/tegra124-car.h>
|
||||
|
||||
usb-phy@7d008000 {
|
||||
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
|
||||
reg = <0x7d008000 0x4000>,
|
||||
<0x7d000000 0x4000>;
|
||||
interrupts = <0 97 4>;
|
||||
phy_type = "utmi";
|
||||
clocks = <&tegra_car TEGRA124_CLK_USB3>,
|
||||
<&tegra_car TEGRA124_CLK_PLL_U>,
|
||||
<&tegra_car TEGRA124_CLK_USBD>;
|
||||
clock-names = "reg", "pll_u", "utmi-pads";
|
||||
resets = <&tegra_car 59>, <&tegra_car 22>;
|
||||
reset-names = "usb", "utmi-pads";
|
||||
#phy-cells = <0>;
|
||||
nvidia,hssync-start-delay = <0>;
|
||||
nvidia,idle-wait-delay = <17>;
|
||||
nvidia,elastic-limit = <16>;
|
||||
nvidia,term-range-adj = <6>;
|
||||
nvidia,xcvr-setup = <9>;
|
||||
nvidia,xcvr-lsfslew = <0>;
|
||||
nvidia,xcvr-lsrslew = <3>;
|
||||
nvidia,hssquelch-level = <2>;
|
||||
nvidia,hsdiscon-level = <5>;
|
||||
nvidia,xcvr-hsslew = <12>;
|
||||
nvidia,pmc = <&tegra_pmc 2>;
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/clock/tegra20-car.h>
|
||||
|
||||
usb-phy@c5004000 {
|
||||
compatible = "nvidia,tegra20-usb-phy";
|
||||
reg = <0xc5004000 0x4000>;
|
||||
interrupts = <0 21 4>;
|
||||
phy_type = "ulpi";
|
||||
clocks = <&tegra_car TEGRA20_CLK_USB2>,
|
||||
<&tegra_car TEGRA20_CLK_PLL_U>,
|
||||
<&tegra_car TEGRA20_CLK_CDEV2>;
|
||||
clock-names = "reg", "pll_u", "ulpi-link";
|
||||
resets = <&tegra_car 58>, <&tegra_car 22>;
|
||||
reset-names = "usb", "utmi-pads";
|
||||
#phy-cells = <0>;
|
||||
nvidia,pmc = <&tegra_pmc 1>;
|
||||
};
|
48
bindings/phy/phy-armada38x-comphy.txt
Normal file
48
bindings/phy/phy-armada38x-comphy.txt
Normal file
@@ -0,0 +1,48 @@
|
||||
mvebu armada 38x comphy driver
|
||||
------------------------------
|
||||
|
||||
This comphy controller can be found on Marvell Armada 38x. It provides a
|
||||
number of shared PHYs used by various interfaces (network, sata, usb,
|
||||
PCIe...).
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be "marvell,armada-380-comphy"
|
||||
- reg: should contain the comphy register location and length.
|
||||
- #address-cells: should be 1.
|
||||
- #size-cells: should be 0.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reg-names: must be "comphy" as the first name, and "conf".
|
||||
- reg: must contain the comphy register location and length as the first
|
||||
pair, followed by an optional configuration register address and
|
||||
length pair.
|
||||
|
||||
A sub-node is required for each comphy lane provided by the comphy.
|
||||
|
||||
Required properties (child nodes):
|
||||
|
||||
- reg: comphy lane number.
|
||||
- #phy-cells : from the generic phy bindings, must be 1. Defines the
|
||||
input port to use for a given comphy lane.
|
||||
|
||||
Example:
|
||||
|
||||
comphy: phy@18300 {
|
||||
compatible = "marvell,armada-380-comphy";
|
||||
reg-names = "comphy", "conf";
|
||||
reg = <0x18300 0x100>, <0x18460 4>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpm_comphy0: phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
cpm_comphy1: phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
18
bindings/phy/phy-ath79-usb.txt
Normal file
18
bindings/phy/phy-ath79-usb.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
* Atheros AR71XX/9XXX USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: "qca,ar7100-usb-phy"
|
||||
- #phys-cells: should be 0
|
||||
- reset-names: "phy"[, "suspend-override"]
|
||||
- resets: references to the reset controllers
|
||||
|
||||
Example:
|
||||
|
||||
usb-phy {
|
||||
compatible = "qca,ar7100-usb-phy";
|
||||
|
||||
reset-names = "phy", "suspend-override";
|
||||
resets = <&rst 4>, <&rst 3>;
|
||||
|
||||
#phy-cells = <0>;
|
||||
};
|
72
bindings/phy/phy-bindings.txt
Normal file
72
bindings/phy/phy-bindings.txt
Normal file
@@ -0,0 +1,72 @@
|
||||
This document explains only the device tree data binding. For general
|
||||
information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst
|
||||
|
||||
PHY device node
|
||||
===============
|
||||
|
||||
Required Properties:
|
||||
#phy-cells: Number of cells in a PHY specifier; The meaning of all those
|
||||
cells is defined by the binding for the phy node. The PHY
|
||||
provider can use the values in cells to find the appropriate
|
||||
PHY.
|
||||
|
||||
Optional Properties:
|
||||
phy-supply: Phandle to a regulator that provides power to the PHY. This
|
||||
regulator will be managed during the PHY power on/off sequence.
|
||||
|
||||
For example:
|
||||
|
||||
phys: phy {
|
||||
compatible = "xxx";
|
||||
reg = <...>;
|
||||
.
|
||||
.
|
||||
#phy-cells = <1>;
|
||||
.
|
||||
.
|
||||
};
|
||||
|
||||
That node describes an IP block (PHY provider) that implements 2 different PHYs.
|
||||
In order to differentiate between these 2 PHYs, an additional specifier should be
|
||||
given while trying to get a reference to it.
|
||||
|
||||
PHY user node
|
||||
=============
|
||||
|
||||
Required Properties:
|
||||
phys : the phandle for the PHY device (used by the PHY subsystem; not to be
|
||||
confused with the Ethernet specific 'phy' and 'phy-handle' properties,
|
||||
see Documentation/devicetree/bindings/net/ethernet.txt for these)
|
||||
phy-names : the names of the PHY corresponding to the PHYs present in the
|
||||
*phys* phandle
|
||||
|
||||
Example 1:
|
||||
usb1: usb_otg_ss@xxx {
|
||||
compatible = "xxx";
|
||||
reg = <xxx>;
|
||||
.
|
||||
.
|
||||
phys = <&usb2_phy>, <&usb3_phy>;
|
||||
phy-names = "usb2phy", "usb3phy";
|
||||
.
|
||||
.
|
||||
};
|
||||
|
||||
This node represents a controller that uses two PHYs, one for usb2 and one for
|
||||
usb3.
|
||||
|
||||
Example 2:
|
||||
usb2: usb_otg_ss@xxx {
|
||||
compatible = "xxx";
|
||||
reg = <xxx>;
|
||||
.
|
||||
.
|
||||
phys = <&phys 1>;
|
||||
phy-names = "usbphy";
|
||||
.
|
||||
.
|
||||
};
|
||||
|
||||
This node represents a controller that uses one of the PHYs of the PHY provider
|
||||
device defined previously. Note that the phy handle has an additional specifier
|
||||
"1" to differentiate between the two PHYs.
|
174
bindings/phy/phy-cadence-sierra.yaml
Normal file
174
bindings/phy/phy-cadence-sierra.yaml
Normal file
@@ -0,0 +1,174 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/phy-cadence-sierra.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Cadence Sierra PHY binding
|
||||
|
||||
description:
|
||||
This binding describes the Cadence Sierra PHY. Sierra PHY supports multilink
|
||||
multiprotocol combinations including protocols such as PCIe, USB etc.
|
||||
|
||||
maintainers:
|
||||
- Swapnil Jakhade <sjakhade@cadence.com>
|
||||
- Yuti Amonkar <yamonkar@cadence.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cdns,sierra-phy-t0
|
||||
- ti,sierra-phy-t0
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
resets:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Sierra PHY reset.
|
||||
- description: Sierra APB reset. This is optional.
|
||||
|
||||
reset-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: sierra_reset
|
||||
- const: sierra_apb
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description:
|
||||
Offset of the Sierra PHY configuration registers.
|
||||
|
||||
reg-names:
|
||||
const: serdes
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
minItems: 2
|
||||
items:
|
||||
- const: cmn_refclk_dig_div
|
||||
- const: cmn_refclk1_dig_div
|
||||
- const: pll0_refclk
|
||||
- const: pll1_refclk
|
||||
|
||||
assigned-clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
assigned-clock-parents:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
cdns,autoconf:
|
||||
type: boolean
|
||||
description:
|
||||
A boolean property whose presence indicates that the PHY registers will be
|
||||
configured by hardware. If not present, all sub-node optional properties
|
||||
must be provided.
|
||||
|
||||
patternProperties:
|
||||
'^phy@[0-9a-f]$':
|
||||
type: object
|
||||
description:
|
||||
Each group of PHY lanes with a single master lane should be represented as
|
||||
a sub-node. Note that the actual configuration of each lane is determined
|
||||
by hardware strapping, and must match the configuration specified here.
|
||||
properties:
|
||||
reg:
|
||||
description:
|
||||
The master lane number. This is the lowest numbered lane in the lane group.
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
|
||||
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.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [2, 4]
|
||||
|
||||
cdns,num-lanes:
|
||||
description:
|
||||
Number of lanes in this group. The group is made up of consecutive lanes.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 16
|
||||
|
||||
cdns,ssc-mode:
|
||||
description:
|
||||
Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC,
|
||||
EXTERNAL_SSC or INTERNAL_SSC.
|
||||
Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2]
|
||||
default: 1
|
||||
|
||||
required:
|
||||
- reg
|
||||
- resets
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- reg
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
sierra-phy@fd240000 {
|
||||
compatible = "cdns,sierra-phy-t0";
|
||||
reg = <0x0 0xfd240000 0x0 0x40000>;
|
||||
resets = <&phyrst 0>, <&phyrst 1>;
|
||||
reset-names = "sierra_reset", "sierra_apb";
|
||||
clocks = <&cmn_refclk_dig_div>, <&cmn_refclk1_dig_div>;
|
||||
clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pcie0_phy0: phy@0 {
|
||||
reg = <0>;
|
||||
resets = <&phyrst 2>;
|
||||
cdns,num-lanes = <2>;
|
||||
#phy-cells = <0>;
|
||||
cdns,phy-type = <PHY_TYPE_PCIE>;
|
||||
};
|
||||
pcie0_phy1: phy@2 {
|
||||
reg = <2>;
|
||||
resets = <&phyrst 4>;
|
||||
cdns,num-lanes = <1>;
|
||||
#phy-cells = <0>;
|
||||
cdns,phy-type = <PHY_TYPE_PCIE>;
|
||||
};
|
||||
};
|
||||
};
|
218
bindings/phy/phy-cadence-torrent.yaml
Normal file
218
bindings/phy/phy-cadence-torrent.yaml
Normal file
@@ -0,0 +1,218 @@
|
||||
# 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
|
||||
|
||||
description:
|
||||
This binding describes the Cadence SD0801 PHY (also known as Torrent PHY)
|
||||
hardware included with the Cadence MHDP DisplayPort controller. Torrent
|
||||
PHY also supports multilink multiprotocol combinations including protocols
|
||||
such as PCIe, USB, SGMII, QSGMII etc.
|
||||
|
||||
maintainers:
|
||||
- Swapnil Jakhade <sjakhade@cadence.com>
|
||||
- Yuti Amonkar <yamonkar@cadence.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cdns,torrent-phy
|
||||
- ti,j721e-serdes-10g
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
description:
|
||||
PHY reference clock for 1 item. Must contain an entry in clock-names.
|
||||
Optional Parent to enable output reference clock.
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: refclk
|
||||
- const: phy_en_refclk
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 3
|
||||
|
||||
assigned-clock-parents:
|
||||
maxItems: 3
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Offset of the Torrent PHY configuration registers.
|
||||
- description: Offset of the DPTX PHY configuration registers.
|
||||
|
||||
reg-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: torrent_phy
|
||||
- const: dptx_phy
|
||||
|
||||
resets:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Torrent PHY reset.
|
||||
- description: Torrent APB reset. This is optional.
|
||||
|
||||
reset-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: torrent_reset
|
||||
- const: torrent_apb
|
||||
|
||||
patternProperties:
|
||||
'^phy@[0-3]$':
|
||||
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.
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
|
||||
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.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 9
|
||||
|
||||
cdns,num-lanes:
|
||||
description:
|
||||
Number of lanes.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 3, 4]
|
||||
default: 4
|
||||
|
||||
cdns,ssc-mode:
|
||||
description:
|
||||
Specifies the Spread Spectrum Clocking mode used. It can be NO_SSC,
|
||||
EXTERNAL_SSC or INTERNAL_SSC.
|
||||
Refer include/dt-bindings/phy/phy-cadence.h for the constants to be used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2]
|
||||
default: 0
|
||||
|
||||
cdns,max-bit-rate:
|
||||
description:
|
||||
Maximum DisplayPort link bit rate to use, in Mbps
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100]
|
||||
default: 8100
|
||||
|
||||
required:
|
||||
- reg
|
||||
- resets
|
||||
- "#phy-cells"
|
||||
- cdns,phy-type
|
||||
- cdns,num-lanes
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- clocks
|
||||
- clock-names
|
||||
- reg
|
||||
- reg-names
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
torrent-phy@f0fb500000 {
|
||||
compatible = "cdns,torrent-phy";
|
||||
reg = <0xf0 0xfb500000 0x0 0x00100000>,
|
||||
<0xf0 0xfb030a00 0x0 0x00000040>;
|
||||
reg-names = "torrent_phy", "dptx_phy";
|
||||
resets = <&phyrst 0>;
|
||||
reset-names = "torrent_reset";
|
||||
clocks = <&ref_clk>;
|
||||
clock-names = "refclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/phy/phy-cadence.h>
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
torrent-phy@f0fb500000 {
|
||||
compatible = "cdns,torrent-phy";
|
||||
reg = <0xf0 0xfb500000 0x0 0x00100000>;
|
||||
reg-names = "torrent_phy";
|
||||
resets = <&phyrst 0>, <&phyrst 1>;
|
||||
reset-names = "torrent_reset", "torrent_apb";
|
||||
clocks = <&ref_clk>;
|
||||
clock-names = "refclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
phy@0 {
|
||||
reg = <0>;
|
||||
resets = <&phyrst 2>, <&phyrst 3>;
|
||||
#phy-cells = <0>;
|
||||
cdns,phy-type = <PHY_TYPE_PCIE>;
|
||||
cdns,num-lanes = <2>;
|
||||
cdns,ssc-mode = <CDNS_SERDES_NO_SSC>;
|
||||
};
|
||||
|
||||
phy@2 {
|
||||
reg = <2>;
|
||||
resets = <&phyrst 4>;
|
||||
#phy-cells = <0>;
|
||||
cdns,phy-type = <PHY_TYPE_SGMII>;
|
||||
cdns,num-lanes = <1>;
|
||||
cdns,ssc-mode = <CDNS_SERDES_NO_SSC>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
40
bindings/phy/phy-cpcap-usb.txt
Normal file
40
bindings/phy/phy-cpcap-usb.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Motorola CPCAP PMIC USB PHY binding
|
||||
|
||||
Required properties:
|
||||
compatible: Shall be either "motorola,cpcap-usb-phy" or
|
||||
"motorola,mapphone-cpcap-usb-phy"
|
||||
#phy-cells: Shall be 0
|
||||
interrupts: CPCAP PMIC interrupts used by the USB PHY
|
||||
interrupt-names: Interrupt names
|
||||
io-channels: IIO ADC channels used by the USB PHY
|
||||
io-channel-names: IIO ADC channel names
|
||||
vusb-supply: Regulator for the PHY
|
||||
|
||||
Optional properties:
|
||||
pinctrl: Optional alternate pin modes for the PHY
|
||||
pinctrl-names: Names for optional pin modes
|
||||
mode-gpios: Optional GPIOs for configuring alternate modes
|
||||
|
||||
Example:
|
||||
cpcap_usb2_phy: phy {
|
||||
compatible = "motorola,mapphone-cpcap-usb-phy";
|
||||
pinctrl-0 = <&usb_gpio_mux_sel1 &usb_gpio_mux_sel2>;
|
||||
pinctrl-1 = <&usb_ulpi_pins>;
|
||||
pinctrl-2 = <&usb_utmi_pins>;
|
||||
pinctrl-3 = <&uart3_pins>;
|
||||
pinctrl-names = "default", "ulpi", "utmi", "uart";
|
||||
#phy-cells = <0>;
|
||||
interrupts-extended = <
|
||||
&cpcap 15 0 &cpcap 14 0 &cpcap 28 0 &cpcap 19 0
|
||||
&cpcap 18 0 &cpcap 17 0 &cpcap 16 0 &cpcap 49 0
|
||||
&cpcap 48 1
|
||||
>;
|
||||
interrupt-names =
|
||||
"id_ground", "id_float", "se0conn", "vbusvld",
|
||||
"sessvld", "sessend", "se1", "dm", "dp";
|
||||
mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH
|
||||
&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>;
|
||||
io-channel-names = "vbus", "id";
|
||||
vusb-supply = <&vusb>;
|
||||
};
|
40
bindings/phy/phy-da8xx-usb.txt
Normal file
40
bindings/phy/phy-da8xx-usb.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
TI DA8xx/OMAP-L1xx/AM18xx USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "ti,da830-usb-phy".
|
||||
- #phy-cells: must be 1.
|
||||
|
||||
This device controls the PHY for both the USB 1.1 OHCI and USB 2.0 OTG
|
||||
controllers on DA8xx SoCs. Consumers of this device should use index 0 for
|
||||
the USB 2.0 phy device and index 1 for the USB 1.1 phy device.
|
||||
|
||||
It also requires a "syscon" node with compatible = "ti,da830-cfgchip", "syscon"
|
||||
to access the CFGCHIP2 register.
|
||||
|
||||
Example:
|
||||
|
||||
cfgchip: cfgchip@1417c {
|
||||
compatible = "ti,da830-cfgchip", "syscon";
|
||||
reg = <0x1417c 0x14>;
|
||||
};
|
||||
|
||||
usb_phy: usb-phy {
|
||||
compatible = "ti,da830-usb-phy";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
usb20: usb@200000 {
|
||||
compatible = "ti,da830-musb";
|
||||
reg = <0x200000 0x1000>;
|
||||
interrupts = <58>;
|
||||
phys = <&usb_phy 0>;
|
||||
phy-names = "usb-phy";
|
||||
};
|
||||
|
||||
usb11: usb@225000 {
|
||||
compatible = "ti,da830-ohci";
|
||||
reg = <0x225000 0x1000>;
|
||||
interrupts = <59>;
|
||||
phys = <&usb_phy 1>;
|
||||
phy-names = "usb-phy";
|
||||
};
|
59
bindings/phy/phy-hi3798cv200-combphy.txt
Normal file
59
bindings/phy/phy-hi3798cv200-combphy.txt
Normal file
@@ -0,0 +1,59 @@
|
||||
HiSilicon STB PCIE/SATA/USB3 PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "hisilicon,hi3798cv200-combphy"
|
||||
- reg: Should be the address space for COMBPHY configuration and state
|
||||
registers in peripheral controller, e.g. PERI_COMBPHY0_CFG and
|
||||
PERI_COMBPHY0_STATE for COMBPHY0 Hi3798CV200 SoC.
|
||||
- #phy-cells: Should be 1. The cell number is used to select the phy mode
|
||||
as defined in <dt-bindings/phy/phy.h>.
|
||||
- clocks: The phandle to clock provider and clock specifier pair.
|
||||
- resets: The phandle to reset controller and reset specifier pair.
|
||||
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties.
|
||||
|
||||
Optional properties:
|
||||
- hisilicon,fixed-mode: If the phy device doesn't support mode select
|
||||
but a fixed mode setting, the property should be present to specify
|
||||
the particular mode.
|
||||
- hisilicon,mode-select-bits: If the phy device support mode select,
|
||||
this property should be present to specify the register bits in
|
||||
peripheral controller, as a 3 integers tuple:
|
||||
<register_offset bit_shift bit_mask>.
|
||||
|
||||
Notes:
|
||||
- Between hisilicon,fixed-mode and hisilicon,mode-select-bits, one and only
|
||||
one of them should be present.
|
||||
- The device node should be a child of peripheral controller that contains
|
||||
COMBPHY configuration/state and PERI_CTRL register used to select PHY mode.
|
||||
Refer to arm/hisilicon/hisilicon.txt for the parent peripheral controller
|
||||
bindings.
|
||||
|
||||
Examples:
|
||||
|
||||
perictrl: peripheral-controller@8a20000 {
|
||||
compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
|
||||
"simple-mfd";
|
||||
reg = <0x8a20000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x8a20000 0x1000>;
|
||||
|
||||
combphy0: phy@850 {
|
||||
compatible = "hisilicon,hi3798cv200-combphy";
|
||||
reg = <0x850 0x8>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&crg HISTB_COMBPHY0_CLK>;
|
||||
resets = <&crg 0x188 4>;
|
||||
hisilicon,fixed-mode = <PHY_TYPE_USB3>;
|
||||
};
|
||||
|
||||
combphy1: phy@858 {
|
||||
compatible = "hisilicon,hi3798cv200-combphy";
|
||||
reg = <0x858 0x8>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&crg HISTB_COMBPHY1_CLK>;
|
||||
resets = <&crg 0x188 12>;
|
||||
hisilicon,mode-select-bits = <0x0008 11 (0x3 << 11)>;
|
||||
};
|
||||
};
|
16
bindings/phy/phy-hi6220-usb.txt
Normal file
16
bindings/phy/phy-hi6220-usb.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Hisilicon hi6220 usb PHY
|
||||
-----------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "hisilicon,hi6220-usb-phy"
|
||||
- #phy-cells: must be 0
|
||||
- hisilicon,peripheral-syscon: phandle of syscon used to control phy.
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
usb_phy: usbphy {
|
||||
compatible = "hisilicon,hi6220-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
phy-supply = <&fixed_5v_hub>;
|
||||
hisilicon,peripheral-syscon = <&sys_ctrl>;
|
||||
};
|
71
bindings/phy/phy-hisi-inno-usb2.txt
Normal file
71
bindings/phy/phy-hisi-inno-usb2.txt
Normal file
@@ -0,0 +1,71 @@
|
||||
Device tree bindings for HiSilicon INNO USB2 PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following strings:
|
||||
"hisilicon,inno-usb2-phy",
|
||||
"hisilicon,hi3798cv200-usb2-phy".
|
||||
- reg: Should be the address space for PHY configuration register in peripheral
|
||||
controller, e.g. PERI_USB0 for USB 2.0 PHY01 on Hi3798CV200 SoC.
|
||||
- clocks: The phandle and clock specifier pair for INNO USB2 PHY device
|
||||
reference clock.
|
||||
- resets: The phandle and reset specifier pair for INNO USB2 PHY device reset
|
||||
signal.
|
||||
- #address-cells: Must be 1.
|
||||
- #size-cells: Must be 0.
|
||||
|
||||
The INNO USB2 PHY device should be a child node of peripheral controller that
|
||||
contains the PHY configuration register, and each device suppports up to 2 PHY
|
||||
ports which are represented as child nodes of INNO USB2 PHY device.
|
||||
|
||||
Required properties for PHY port node:
|
||||
- reg: The PHY port instance number.
|
||||
- #phy-cells: Defined by generic PHY bindings. Must be 0.
|
||||
- resets: The phandle and reset specifier pair for PHY port reset signal.
|
||||
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
|
||||
perictrl: peripheral-controller@8a20000 {
|
||||
compatible = "hisilicon,hi3798cv200-perictrl", "simple-mfd";
|
||||
reg = <0x8a20000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x8a20000 0x1000>;
|
||||
|
||||
usb2_phy1: usb2-phy@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>;
|
||||
|
||||
usb2_phy1_port0: phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <0>;
|
||||
resets = <&crg 0xbc 8>;
|
||||
};
|
||||
|
||||
usb2_phy1_port1: phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <0>;
|
||||
resets = <&crg 0xbc 9>;
|
||||
};
|
||||
};
|
||||
|
||||
usb2_phy2: usb2-phy@124 {
|
||||
compatible = "hisilicon,hi3798cv200-usb2-phy";
|
||||
reg = <0x124 0x4>;
|
||||
clocks = <&crg HISTB_USB2_PHY2_REF_CLK>;
|
||||
resets = <&crg 0xbc 6>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
usb2_phy2_port0: phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <0>;
|
||||
resets = <&crg 0xbc 10>;
|
||||
};
|
||||
};
|
||||
};
|
40
bindings/phy/phy-lantiq-rcu-usb2.txt
Normal file
40
bindings/phy/phy-lantiq-rcu-usb2.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Lantiq XWAY SoC RCU USB 1.1/2.0 PHY binding
|
||||
===========================================
|
||||
|
||||
This binding describes the USB PHY hardware provided by the RCU module on the
|
||||
Lantiq XWAY SoCs.
|
||||
|
||||
This node has to be a sub node of the Lantiq RCU block.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Required properties (controller (parent) node):
|
||||
- compatible : Should be one of
|
||||
"lantiq,ase-usb2-phy"
|
||||
"lantiq,danube-usb2-phy"
|
||||
"lantiq,xrx100-usb2-phy"
|
||||
"lantiq,xrx200-usb2-phy"
|
||||
"lantiq,xrx300-usb2-phy"
|
||||
- reg : Defines the following sets of registers in the parent
|
||||
syscon device
|
||||
- Offset of the USB PHY configuration register
|
||||
- Offset of the USB Analog configuration
|
||||
register (only for xrx200 and xrx200)
|
||||
- clocks : References to the (PMU) "phy" clk gate.
|
||||
- clock-names : Must be "phy"
|
||||
- resets : References to the RCU USB configuration reset bits.
|
||||
- reset-names : Must be one of the following:
|
||||
"phy" (optional)
|
||||
"ctrl" (shared)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Example for the USB PHYs on an xRX200 SoC:
|
||||
usb_phy0: usb2-phy@18 {
|
||||
compatible = "lantiq,xrx200-usb2-phy";
|
||||
reg = <0x18 4>, <0x38 4>;
|
||||
|
||||
clocks = <&pmu PMU_GATE_USB0_PHY>;
|
||||
clock-names = "phy";
|
||||
resets = <&reset1 4 4>, <&reset0 4 4>;
|
||||
reset-names = "phy", "ctrl";
|
||||
#phy-cells = <0>;
|
||||
};
|
26
bindings/phy/phy-lpc18xx-usb-otg.txt
Normal file
26
bindings/phy/phy-lpc18xx-usb-otg.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
NXP LPC18xx/43xx internal USB OTG PHY binding
|
||||
---------------------------------------------
|
||||
|
||||
This file contains documentation for the internal USB OTG PHY found
|
||||
in NXP LPC18xx and LPC43xx SoCs.
|
||||
|
||||
Required properties:
|
||||
- compatible : must be "nxp,lpc1850-usb-otg-phy"
|
||||
- clocks : must be exactly one entry
|
||||
See: Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
- #phy-cells : must be 0 for this phy
|
||||
See: Documentation/devicetree/bindings/phy/phy-bindings.txt
|
||||
|
||||
The phy node must be a child of the creg syscon node.
|
||||
|
||||
Example:
|
||||
creg: syscon@40043000 {
|
||||
compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
|
||||
reg = <0x40043000 0x1000>;
|
||||
|
||||
usb0_otg_phy: phy {
|
||||
compatible = "nxp,lpc1850-usb-otg-phy";
|
||||
clocks = <&ccu1 CLK_USB0>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
29
bindings/phy/phy-mapphone-mdm6600.txt
Normal file
29
bindings/phy/phy-mapphone-mdm6600.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
Device tree binding documentation for Motorola Mapphone MDM6600 USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible Must be "motorola,mapphone-mdm6600"
|
||||
- enable-gpios GPIO to enable the USB PHY
|
||||
- power-gpios GPIO to power on the device
|
||||
- reset-gpios GPIO to reset the device
|
||||
- motorola,mode-gpios Two GPIOs to configure MDM6600 USB start-up mode for
|
||||
normal mode versus USB flashing mode
|
||||
- motorola,cmd-gpios Three GPIOs to control the power state of the MDM6600
|
||||
- motorola,status-gpios Three GPIOs to read the power state of the MDM6600
|
||||
|
||||
Example:
|
||||
|
||||
usb-phy {
|
||||
compatible = "motorola,mapphone-mdm6600";
|
||||
enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
|
||||
power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
|
||||
motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio5 21 GPIO_ACTIVE_HIGH>;
|
||||
motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio4 8 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio5 14 GPIO_ACTIVE_HIGH>;
|
||||
motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio2 21 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio2 23 GPIO_ACTIVE_HIGH>;
|
||||
#phy-cells = <0>;
|
||||
};
|
117
bindings/phy/phy-miphy28lp.txt
Normal file
117
bindings/phy/phy-miphy28lp.txt
Normal file
@@ -0,0 +1,117 @@
|
||||
STMicroelectronics STi MIPHY28LP PHY binding
|
||||
============================================
|
||||
|
||||
This binding describes a miphy device that is used to control PHY hardware
|
||||
for SATA, PCIe or USB3.
|
||||
|
||||
Required properties (controller (parent) node):
|
||||
- compatible : Should be "st,miphy28lp-phy".
|
||||
- st,syscfg : Should be a phandle of the system configuration register group
|
||||
which contain the SATA, PCIe or USB3 mode setting bits.
|
||||
|
||||
Required nodes : A sub-node is required for each channel the controller
|
||||
provides. Address range information including the usual
|
||||
'reg' and 'reg-names' properties are used inside these
|
||||
nodes to describe the controller's topology. These nodes
|
||||
are translated by the driver's .xlate() function.
|
||||
|
||||
Required properties (port (child) node):
|
||||
- #phy-cells : Should be 1 (See second example)
|
||||
Cell after port phandle is device type from:
|
||||
- PHY_TYPE_SATA
|
||||
- PHY_TYPE_PCI
|
||||
- PHY_TYPE_USB3
|
||||
- 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". It can also contain the offset of the system configuration
|
||||
registers used as glue-logic to setup the device for SATA/PCIe or USB3
|
||||
devices.
|
||||
- st,syscfg : Offset of the parent configuration register.
|
||||
- resets : phandle to the parent reset controller.
|
||||
- reset-names : Associated name must be "miphy-sw-rst".
|
||||
|
||||
Optional properties (port (child) node):
|
||||
- st,osc-rdy : to check the MIPHY0_OSC_RDY status in the glue-logic. This
|
||||
is not available in all the MiPHY. For example, for STiH407, only the
|
||||
MiPHY0 has this bit.
|
||||
- st,osc-force-ext : to select the external oscillator. This can change from
|
||||
different MiPHY inside the same SoC.
|
||||
- st,sata_gen : to select which SATA_SPDMODE has to be set in the SATA system config
|
||||
register.
|
||||
- st,px_rx_pol_inv : to invert polarity of RXn/RXp (respectively negative line and positive
|
||||
line).
|
||||
- st,scc-on : enable ssc to reduce effects of EMI (only for sata or PCIe).
|
||||
- st,tx-impedance-comp : to compensate tx impedance avoiding out of range values.
|
||||
|
||||
example:
|
||||
|
||||
miphy28lp_phy: miphy28lp@9b22000 {
|
||||
compatible = "st,miphy28lp-phy";
|
||||
st,syscfg = <&syscfg_core>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
phy_port0: port@9b22000 {
|
||||
reg = <0x9b22000 0xff>,
|
||||
<0x9b09000 0xff>,
|
||||
<0x9b04000 0xff>;
|
||||
reg-names = "sata-up",
|
||||
"pcie-up",
|
||||
"pipew";
|
||||
|
||||
st,syscfg = <0x114 0x818 0xe0 0xec>;
|
||||
#phy-cells = <1>;
|
||||
st,osc-rdy;
|
||||
reset-names = "miphy-sw-rst";
|
||||
resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
|
||||
};
|
||||
|
||||
phy_port1: port@9b2a000 {
|
||||
reg = <0x9b2a000 0xff>,
|
||||
<0x9b19000 0xff>,
|
||||
<0x9b14000 0xff>;
|
||||
reg-names = "sata-up",
|
||||
"pcie-up",
|
||||
"pipew";
|
||||
|
||||
st,syscfg = <0x118 0x81c 0xe4 0xf0>;
|
||||
|
||||
#phy-cells = <1>;
|
||||
st,osc-force-ext;
|
||||
reset-names = "miphy-sw-rst";
|
||||
resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
|
||||
};
|
||||
|
||||
phy_port2: port@8f95000 {
|
||||
reg = <0x8f95000 0xff>,
|
||||
<0x8f90000 0xff>;
|
||||
reg-names = "pipew",
|
||||
"usb3-up";
|
||||
|
||||
st,syscfg = <0x11c 0x820>;
|
||||
|
||||
#phy-cells = <1>;
|
||||
reset-names = "miphy-sw-rst";
|
||||
resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Specifying phy control of devices
|
||||
=================================
|
||||
|
||||
Device nodes should specify the configuration required in their "phys"
|
||||
property, containing a phandle to the miphy device node and an index
|
||||
specifying which configuration to use, as described in phy-bindings.txt.
|
||||
|
||||
example:
|
||||
sata0: sata@9b20000 {
|
||||
...
|
||||
phys = <&phy_port0 PHY_TYPE_SATA>;
|
||||
...
|
||||
};
|
||||
|
||||
Macro definitions for the supported miphy configuration can be found in:
|
||||
|
||||
include/dt-bindings/phy/phy.h
|
77
bindings/phy/phy-miphy365x.txt
Normal file
77
bindings/phy/phy-miphy365x.txt
Normal file
@@ -0,0 +1,77 @@
|
||||
STMicroelectronics STi MIPHY365x PHY binding
|
||||
============================================
|
||||
|
||||
This binding describes a miphy device that is used to control PHY hardware
|
||||
for SATA and PCIe.
|
||||
|
||||
Required properties (controller (parent) node):
|
||||
- compatible : Should be "st,miphy365x-phy"
|
||||
- st,syscfg : Phandle / integer array property. Phandle of sysconfig group
|
||||
containing the miphy registers and integer array should contain
|
||||
an entry for each port sub-node, specifying the control
|
||||
register offset inside the sysconfig group.
|
||||
|
||||
Required nodes : A sub-node is required for each channel the controller
|
||||
provides. Address range information including the usual
|
||||
'reg' and 'reg-names' properties are used inside these
|
||||
nodes to describe the controller's topology. These nodes
|
||||
are translated by the driver's .xlate() function.
|
||||
|
||||
Required properties (port (child) node):
|
||||
- #phy-cells : Should be 1 (See second example)
|
||||
Cell after port phandle is device type from:
|
||||
- PHY_TYPE_SATA
|
||||
- PHY_TYPE_PCI
|
||||
- reg : Address and length of register sets for each device in
|
||||
"reg-names"
|
||||
- reg-names : The names of the register addresses corresponding to the
|
||||
registers filled in "reg":
|
||||
- sata: For SATA devices
|
||||
- pcie: For PCIe devices
|
||||
|
||||
Optional properties (port (child) node):
|
||||
- st,sata-gen : Generation of locally attached SATA IP. Expected values
|
||||
are {1,2,3). If not supplied generation 1 hardware will
|
||||
be expected
|
||||
- st,pcie-tx-pol-inv : Bool property to invert the polarity PCIe Tx (Txn/Txp)
|
||||
- st,sata-tx-pol-inv : Bool property to invert the polarity SATA Tx (Txn/Txp)
|
||||
|
||||
Example:
|
||||
|
||||
miphy365x_phy: miphy365x@fe382000 {
|
||||
compatible = "st,miphy365x-phy";
|
||||
st,syscfg = <&syscfg_rear 0x824 0x828>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
phy_port0: port@fe382000 {
|
||||
reg = <0xfe382000 0x100>, <0xfe394000 0x100>;
|
||||
reg-names = "sata", "pcie";
|
||||
#phy-cells = <1>;
|
||||
st,sata-gen = <3>;
|
||||
};
|
||||
|
||||
phy_port1: port@fe38a000 {
|
||||
reg = <0xfe38a000 0x100>, <0xfe804000 0x100>;;
|
||||
reg-names = "sata", "pcie", "syscfg";
|
||||
#phy-cells = <1>;
|
||||
st,pcie-tx-pol-inv;
|
||||
};
|
||||
};
|
||||
|
||||
Specifying phy control of devices
|
||||
=================================
|
||||
|
||||
Device nodes should specify the configuration required in their "phys"
|
||||
property, containing a phandle to the phy port node and a device type.
|
||||
|
||||
Example:
|
||||
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
sata0: sata@fe380000 {
|
||||
...
|
||||
phys = <&phy_port0 PHY_TYPE_SATA>;
|
||||
...
|
||||
};
|
94
bindings/phy/phy-mvebu-comphy.txt
Normal file
94
bindings/phy/phy-mvebu-comphy.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
MVEBU comphy drivers
|
||||
--------------------
|
||||
|
||||
COMPHY controllers can be found on the following Marvell MVEBU SoCs:
|
||||
* Armada 7k/8k (on the CP110)
|
||||
* Armada 3700
|
||||
It provides a number of shared PHYs used by various interfaces (network, SATA,
|
||||
USB, PCIe...).
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be one of:
|
||||
* "marvell,comphy-cp110" for Armada 7k/8k
|
||||
* "marvell,comphy-a3700" for Armada 3700
|
||||
- reg: should contain the COMPHY register(s) location(s) and length(s).
|
||||
* 1 entry for Armada 7k/8k
|
||||
* 4 entries for Armada 3700 along with the corresponding reg-names
|
||||
properties, memory areas are:
|
||||
* Generic COMPHY registers
|
||||
* Lane 1 (PCIe/GbE)
|
||||
* Lane 0 (USB3/GbE)
|
||||
* Lane 2 (SATA/USB3)
|
||||
- marvell,system-controller: should contain a phandle to the system
|
||||
controller node (only for Armada 7k/8k)
|
||||
- #address-cells: should be 1.
|
||||
- #size-cells: should be 0.
|
||||
|
||||
Optional properlties:
|
||||
|
||||
- clocks: pointers to the reference clocks for this device (CP110 only),
|
||||
consequently: MG clock, MG Core clock, AXI clock.
|
||||
- clock-names: names of used clocks for CP110 only, must be :
|
||||
"mg_clk", "mg_core_clk" and "axi_clk".
|
||||
|
||||
A sub-node is required for each comphy lane provided by the comphy.
|
||||
|
||||
Required properties (child nodes):
|
||||
|
||||
- reg: COMPHY lane number.
|
||||
- #phy-cells : from the generic PHY bindings, must be 1. Defines the
|
||||
input port to use for a given comphy lane.
|
||||
|
||||
Examples:
|
||||
|
||||
CP11X_LABEL(comphy): phy@120000 {
|
||||
compatible = "marvell,comphy-cp110";
|
||||
reg = <0x120000 0x6000>;
|
||||
marvell,system-controller = <&CP11X_LABEL(syscon0)>;
|
||||
clocks = <&CP11X_LABEL(clk) 1 5>, <&CP11X_LABEL(clk) 1 6>,
|
||||
<&CP11X_LABEL(clk) 1 18>;
|
||||
clock-names = "mg_clk", "mg_core_clk", "axi_clk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
CP11X_LABEL(comphy0): phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
CP11X_LABEL(comphy1): phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
comphy: phy@18300 {
|
||||
compatible = "marvell,comphy-a3700";
|
||||
reg = <0x18300 0x300>,
|
||||
<0x1F000 0x400>,
|
||||
<0x5C000 0x400>,
|
||||
<0xe0178 0x8>;
|
||||
reg-names = "comphy",
|
||||
"lane1_pcie_gbe",
|
||||
"lane0_usb3_gbe",
|
||||
"lane2_sata_usb3";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
|
||||
comphy0: phy@0 {
|
||||
reg = <0>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
comphy1: phy@1 {
|
||||
reg = <1>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
comphy2: phy@2 {
|
||||
reg = <2>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
42
bindings/phy/phy-mvebu.txt
Normal file
42
bindings/phy/phy-mvebu.txt
Normal file
@@ -0,0 +1,42 @@
|
||||
* Marvell MVEBU SATA PHY
|
||||
|
||||
Power control for the SATA phy found on Marvell MVEBU SoCs.
|
||||
|
||||
This document extends the binding described in phy-bindings.txt
|
||||
|
||||
Required properties :
|
||||
|
||||
- reg : Offset and length of the register set for the SATA device
|
||||
- compatible : Should be "marvell,mvebu-sata-phy"
|
||||
- clocks : phandle of clock and specifier that supplies the device
|
||||
- clock-names : Should be "sata"
|
||||
|
||||
Example:
|
||||
sata-phy@84000 {
|
||||
compatible = "marvell,mvebu-sata-phy";
|
||||
reg = <0x84000 0x0334>;
|
||||
clocks = <&gate_clk 15>;
|
||||
clock-names = "sata";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
Armada 375 USB cluster
|
||||
----------------------
|
||||
|
||||
Armada 375 comes with an USB2 host and device controller and an USB3
|
||||
controller. The USB cluster control register allows to manage common
|
||||
features of both USB controllers.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "marvell,armada-375-usb-cluster"
|
||||
- reg: Should contain usb cluster register location and length.
|
||||
- #phy-cells : from the generic phy bindings, must be 1. Possible
|
||||
values are 1 (USB2), 2 (USB3).
|
||||
|
||||
Example:
|
||||
usbcluster: usb-cluster@18400 {
|
||||
compatible = "marvell,armada-375-usb-cluster";
|
||||
reg = <0x18400 0x4>;
|
||||
#phy-cells = <1>
|
||||
};
|
18
bindings/phy/phy-pxa-usb.txt
Normal file
18
bindings/phy/phy-pxa-usb.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
Marvell PXA USB PHY
|
||||
-------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: one of: "marvell,mmp2-usb-phy", "marvell,pxa910-usb-phy",
|
||||
"marvell,pxa168-usb-phy",
|
||||
- #phy-cells: must be 0
|
||||
|
||||
Example:
|
||||
usb-phy: usbphy@d4207000 {
|
||||
compatible = "marvell,mmp2-usb-phy";
|
||||
reg = <0xd4207000 0x40>;
|
||||
#phy-cells = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
This document explains the device tree binding. For general
|
||||
information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst
|
43
bindings/phy/phy-rockchip-inno-hdmi.txt
Normal file
43
bindings/phy/phy-rockchip-inno-hdmi.txt
Normal file
@@ -0,0 +1,43 @@
|
||||
ROCKCHIP HDMI PHY WITH INNO IP BLOCK
|
||||
|
||||
Required properties:
|
||||
- compatible : should be one of the listed compatibles:
|
||||
* "rockchip,rk3228-hdmi-phy",
|
||||
* "rockchip,rk3328-hdmi-phy";
|
||||
- reg : Address and length of the hdmi phy control register set
|
||||
- clocks : phandle + clock specifier for the phy clocks
|
||||
- clock-names : string, clock name, must contain "sysclk" for system
|
||||
control and register configuration, "refoclk" for crystal-
|
||||
oscillator reference PLL clock input and "refpclk" for pclk-
|
||||
based refeference PLL clock input.
|
||||
- #clock-cells: should be 0.
|
||||
- clock-output-names : shall be the name for the output clock.
|
||||
- interrupts : phandle + interrupt specified for the hdmiphy interrupt
|
||||
- #phy-cells : must be 0. See ./phy-bindings.txt for details.
|
||||
|
||||
Optional properties for rk3328-hdmi-phy:
|
||||
- nvmem-cells = phandle + nvmem specifier for the cpu-version efuse
|
||||
- nvmem-cell-names : "cpu-version" to read the chip version, required
|
||||
for adjustment to some frequency settings
|
||||
|
||||
Example:
|
||||
hdmi_phy: hdmi-phy@12030000 {
|
||||
compatible = "rockchip,rk3228-hdmi-phy";
|
||||
reg = <0x12030000 0x10000>;
|
||||
#phy-cells = <0>;
|
||||
clocks = <&cru PCLK_HDMI_PHY>, <&xin24m>, <&cru DCLK_HDMIPHY>;
|
||||
clock-names = "sysclk", "refoclk", "refpclk";
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "hdmi_phy";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
Then the PHY can be used in other nodes such as:
|
||||
|
||||
hdmi: hdmi@200a0000 {
|
||||
compatible = "rockchip,rk3228-dw-hdmi";
|
||||
...
|
||||
phys = <&hdmi_phy>;
|
||||
phy-names = "hdmi";
|
||||
...
|
||||
};
|
188
bindings/phy/phy-rockchip-inno-usb2.yaml
Normal file
188
bindings/phy/phy-rockchip-inno-usb2.yaml
Normal file
@@ -0,0 +1,188 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/phy-rockchip-inno-usb2.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip USB2.0 phy with inno IP block
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,px30-usb2phy
|
||||
- rockchip,rk3128-usb2phy
|
||||
- rockchip,rk3228-usb2phy
|
||||
- rockchip,rk3308-usb2phy
|
||||
- rockchip,rk3328-usb2phy
|
||||
- rockchip,rk3366-usb2phy
|
||||
- rockchip,rk3399-usb2phy
|
||||
- rockchip,rk3568-usb2phy
|
||||
- rockchip,rv1108-usb2phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
description:
|
||||
The usb 480m output clock name.
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: phyclk
|
||||
|
||||
assigned-clocks:
|
||||
description:
|
||||
Phandle of the usb 480m clock.
|
||||
|
||||
assigned-clock-parents:
|
||||
description:
|
||||
Parent of the usb 480m clock.
|
||||
Select between usb-phy output 480m and xin24m.
|
||||
Refer to clk/clock-bindings.txt for generic clock consumer properties.
|
||||
|
||||
extcon:
|
||||
description:
|
||||
Phandle to the extcon device providing the cable state for the otg phy.
|
||||
|
||||
interrupts:
|
||||
description: Muxed interrupt for both ports
|
||||
maxItems: 1
|
||||
|
||||
rockchip,usbgrf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Phandle to the syscon managing the 'usb general register files'.
|
||||
When set the driver will request its phandle as one companion-grf
|
||||
for some special SoCs (e.g rv1108).
|
||||
|
||||
host-port:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
description: host linestate interrupt
|
||||
maxItems: 1
|
||||
|
||||
interrupt-names:
|
||||
const: linestate
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Phandle to a regulator that provides power to VBUS.
|
||||
See ./phy-bindings.txt for details.
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
|
||||
otg-port:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
interrupt-names:
|
||||
oneOf:
|
||||
- const: linestate
|
||||
- const: otg-mux
|
||||
- items:
|
||||
- const: otg-bvalid
|
||||
- const: otg-id
|
||||
- const: linestate
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Phandle to a regulator that provides power to VBUS.
|
||||
See ./phy-bindings.txt for details.
|
||||
|
||||
required:
|
||||
- "#phy-cells"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clock-output-names
|
||||
- "#clock-cells"
|
||||
- host-port
|
||||
- otg-port
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: rockchip,rk3568-usb2phy
|
||||
|
||||
then:
|
||||
properties:
|
||||
host-port:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
otg-port:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
required:
|
||||
- interrupts
|
||||
|
||||
else:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
host-port:
|
||||
required:
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
otg-port:
|
||||
required:
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3399-cru.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
u2phy0: usb2phy@e450 {
|
||||
compatible = "rockchip,rk3399-usb2phy";
|
||||
reg = <0xe450 0x10>;
|
||||
clocks = <&cru SCLK_USB2PHY0_REF>;
|
||||
clock-names = "phyclk";
|
||||
clock-output-names = "clk_usbphy0_480m";
|
||||
#clock-cells = <0>;
|
||||
|
||||
u2phy0_host: host-port {
|
||||
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
interrupt-names = "linestate";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
u2phy0_otg: otg-port {
|
||||
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||
<GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
|
||||
<GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
interrupt-names = "otg-bvalid", "otg-id", "linestate";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
109
bindings/phy/phy-rockchip-naneng-combphy.yaml
Normal file
109
bindings/phy/phy-rockchip-naneng-combphy.yaml
Normal file
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/phy-rockchip-naneng-combphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip SoC Naneng Combo Phy
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk3568-naneng-combphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: reference clock
|
||||
- description: apb clock
|
||||
- description: pipe clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: ref
|
||||
- const: apb
|
||||
- const: pipe
|
||||
|
||||
resets:
|
||||
items:
|
||||
- description: exclusive PHY reset line
|
||||
|
||||
rockchip,enable-ssc:
|
||||
type: boolean
|
||||
description:
|
||||
The option SSC can be enabled for U3, SATA and PCIE.
|
||||
Most commercially available platforms use SSC to reduce EMI.
|
||||
|
||||
rockchip,ext-refclk:
|
||||
type: boolean
|
||||
description:
|
||||
Many PCIe connections, especially backplane connections,
|
||||
require a synchronous reference clock between the two link partners.
|
||||
To achieve this a common clock source, referred to as REFCLK in
|
||||
the PCI Express Card Electromechanical Specification,
|
||||
should be used by both ends of the PCIe link.
|
||||
In PCIe mode one can choose to use an internal or an external reference
|
||||
clock.
|
||||
By default the internal clock is selected. The PCIe PHY provides a 100MHz
|
||||
differential clock output(optional with SSC) for system applications.
|
||||
When selecting this option an externally 100MHz differential
|
||||
reference clock needs to be provided to the PCIe PHY.
|
||||
|
||||
rockchip,pipe-grf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Some additional phy settings are accessed through GRF regs.
|
||||
|
||||
rockchip,pipe-phy-grf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Some additional pipe settings are accessed through GRF regs.
|
||||
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- rockchip,pipe-grf
|
||||
- rockchip,pipe-phy-grf
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3568-cru.h>
|
||||
|
||||
pipegrf: syscon@fdc50000 {
|
||||
compatible = "rockchip,rk3568-pipe-grf", "syscon";
|
||||
reg = <0xfdc50000 0x1000>;
|
||||
};
|
||||
|
||||
pipe_phy_grf0: syscon@fdc70000 {
|
||||
compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
|
||||
reg = <0xfdc70000 0x1000>;
|
||||
};
|
||||
|
||||
combphy0: phy@fe820000 {
|
||||
compatible = "rockchip,rk3568-naneng-combphy";
|
||||
reg = <0xfe820000 0x100>;
|
||||
clocks = <&pmucru CLK_PCIEPHY0_REF>,
|
||||
<&cru PCLK_PIPEPHY0>,
|
||||
<&cru PCLK_PIPE>;
|
||||
clock-names = "ref", "apb", "pipe";
|
||||
assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
|
||||
assigned-clock-rates = <100000000>;
|
||||
resets = <&cru SRST_PIPEPHY0>;
|
||||
rockchip,pipe-grf = <&pipegrf>;
|
||||
rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
|
||||
#phy-cells = <1>;
|
||||
};
|
84
bindings/phy/phy-rockchip-typec.txt
Normal file
84
bindings/phy/phy-rockchip-typec.txt
Normal file
@@ -0,0 +1,84 @@
|
||||
* ROCKCHIP type-c PHY
|
||||
---------------------
|
||||
|
||||
Required properties:
|
||||
- compatible : must be "rockchip,rk3399-typec-phy"
|
||||
- reg: Address and length of the usb phy control register set
|
||||
- rockchip,grf : phandle to the syscon managing the "general
|
||||
register files"
|
||||
- clocks : phandle + clock specifier for the phy clocks
|
||||
- clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref";
|
||||
- assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or
|
||||
<&cru SCLK_UPHY1_TCPDCORE>;
|
||||
- assigned-clock-rates : the phy core clk frequency, shall be: 50000000
|
||||
- resets : a list of phandle + reset specifier pairs
|
||||
- reset-names : string reset name, must be:
|
||||
"uphy", "uphy-pipe", "uphy-tcphy"
|
||||
|
||||
Optional properties:
|
||||
- extcon : extcon specifier for the Power Delivery
|
||||
|
||||
Required nodes : a sub-node is required for each port the phy provides.
|
||||
The sub-node name is used to identify dp or usb3 port,
|
||||
and shall be the following entries:
|
||||
* "dp-port" : the name of DP port.
|
||||
* "usb3-port" : the name of USB3 port.
|
||||
|
||||
Required properties (port (child) node):
|
||||
- #phy-cells : must be 0, See ./phy-bindings.txt for details.
|
||||
|
||||
Deprecated properties, do not use in new device tree sources, these
|
||||
properties are determined by the compatible value:
|
||||
- rockchip,typec-conn-dir
|
||||
- rockchip,usb3tousb2-en
|
||||
- rockchip,external-psm
|
||||
- rockchip,pipe-status
|
||||
|
||||
Example:
|
||||
tcphy0: phy@ff7c0000 {
|
||||
compatible = "rockchip,rk3399-typec-phy";
|
||||
reg = <0x0 0xff7c0000 0x0 0x40000>;
|
||||
rockchip,grf = <&grf>;
|
||||
extcon = <&fusb0>;
|
||||
clocks = <&cru SCLK_UPHY0_TCPDCORE>,
|
||||
<&cru SCLK_UPHY0_TCPDPHY_REF>;
|
||||
clock-names = "tcpdcore", "tcpdphy-ref";
|
||||
assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
|
||||
assigned-clock-rates = <50000000>;
|
||||
resets = <&cru SRST_UPHY0>,
|
||||
<&cru SRST_UPHY0_PIPE_L00>,
|
||||
<&cru SRST_P_UPHY0_TCPHY>;
|
||||
reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
|
||||
|
||||
tcphy0_dp: dp-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
tcphy0_usb3: usb3-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
tcphy1: phy@ff800000 {
|
||||
compatible = "rockchip,rk3399-typec-phy";
|
||||
reg = <0x0 0xff800000 0x0 0x40000>;
|
||||
rockchip,grf = <&grf>;
|
||||
extcon = <&fusb1>;
|
||||
clocks = <&cru SCLK_UPHY1_TCPDCORE>,
|
||||
<&cru SCLK_UPHY1_TCPDPHY_REF>;
|
||||
clock-names = "tcpdcore", "tcpdphy-ref";
|
||||
assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
|
||||
assigned-clock-rates = <50000000>;
|
||||
resets = <&cru SRST_UPHY1>,
|
||||
<&cru SRST_UPHY1_PIPE_L00>,
|
||||
<&cru SRST_P_UPHY1_TCPHY>;
|
||||
reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
|
||||
|
||||
tcphy1_dp: dp-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
tcphy1_usb3: usb3-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
24
bindings/phy/phy-stih407-usb.txt
Normal file
24
bindings/phy/phy-stih407-usb.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
ST STiH407 USB PHY controller
|
||||
|
||||
This file documents the dt bindings for the usb picoPHY driver which is the PHY for both USB2 and USB3
|
||||
host controllers (when controlling usb2/1.1 devices) available on STiH407 SoC family from STMicroelectronics.
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "st,stih407-usb2-phy"
|
||||
- st,syscfg : phandle of sysconfig bank plus integer array containing phyparam and phyctrl register offsets
|
||||
- resets : list of phandle and reset specifier pairs. There should be two entries, one
|
||||
for the whole phy and one for the port
|
||||
- reset-names : list of reset signal names. Should be "global" and "port"
|
||||
See: Documentation/devicetree/bindings/reset/st,stih407-powerdown.yaml
|
||||
See: Documentation/devicetree/bindings/reset/reset.txt
|
||||
|
||||
Example:
|
||||
|
||||
usb2_picophy0: usbpicophy@f8 {
|
||||
compatible = "st,stih407-usb2-phy";
|
||||
#phy-cells = <0>;
|
||||
st,syscfg = <&syscfg_core 0x100 0xf4>;
|
||||
resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
|
||||
<&picophyreset STIH407_PICOPHY0_RESET>;
|
||||
reset-names = "global", "port";
|
||||
};
|
282
bindings/phy/phy-stm32-usbphyc.yaml
Normal file
282
bindings/phy/phy-stm32-usbphyc.yaml
Normal file
@@ -0,0 +1,282 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/phy-stm32-usbphyc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: STMicroelectronics STM32 USB HS PHY controller binding
|
||||
|
||||
description:
|
||||
|
||||
The STM32 USBPHYC block contains a dual port High Speed UTMI+ PHY and a UTMI
|
||||
switch. It controls PHY configuration and status, and the UTMI+ switch that
|
||||
selects either OTG or HOST controller for the second PHY port. It also sets
|
||||
PLL configuration.
|
||||
|
||||
USBPHYC
|
||||
|_ PLL
|
||||
|
|
||||
|_ PHY port#1 _________________ HOST controller
|
||||
| __ |
|
||||
| / 1|________________|
|
||||
|_ PHY port#2 ----| |________________
|
||||
| \_0| |
|
||||
|_ UTMI switch_______| OTG controller
|
||||
|
||||
maintainers:
|
||||
- Amelie Delaunay <amelie.delaunay@foss.st.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: st,stm32mp1-usbphyc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
vdda1v1-supply:
|
||||
description: regulator providing 1V1 power supply to the PLL block
|
||||
|
||||
vdda1v8-supply:
|
||||
description: regulator providing 1V8 power supply to the PLL block
|
||||
|
||||
'#clock-cells':
|
||||
description: number of clock cells for ck_usbo_48m consumer
|
||||
const: 0
|
||||
|
||||
#Required child nodes:
|
||||
|
||||
patternProperties:
|
||||
"^usb-phy@[0|1]$":
|
||||
type: object
|
||||
description:
|
||||
Each port the controller provides must be represented as a sub-node.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: phy port index.
|
||||
maxItems: 1
|
||||
|
||||
phy-supply:
|
||||
description: regulator providing 3V3 power supply to the PHY.
|
||||
|
||||
"#phy-cells":
|
||||
enum: [ 0x0, 0x1 ]
|
||||
|
||||
connector:
|
||||
type: object
|
||||
$ref: /schemas/connector/usb-connector.yaml
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
vbus-supply: true
|
||||
|
||||
# It can be necessary to adjust the PHY settings to compensate parasitics, which can be due
|
||||
# to USB connector/receptacle, routing, ESD protection component,... Here is the list of
|
||||
# all optional parameters to tune the interface of the PHY (HS for High-Speed, FS for Full-
|
||||
# Speed, LS for Low-Speed)
|
||||
|
||||
st,current-boost-microamp:
|
||||
description: Current boosting in uA
|
||||
enum: [ 1000, 2000 ]
|
||||
|
||||
st,no-lsfs-fb-cap:
|
||||
description: Disables the LS/FS feedback capacitor
|
||||
type: boolean
|
||||
|
||||
st,decrease-hs-slew-rate:
|
||||
description: Decreases the HS driver slew rate by 10%
|
||||
type: boolean
|
||||
|
||||
st,tune-hs-dc-level:
|
||||
description: |
|
||||
Tunes the HS driver DC level
|
||||
- <0> normal level
|
||||
- <1> increases the level by 5 to 7 mV
|
||||
- <2> increases the level by 10 to 14 mV
|
||||
- <3> decreases the level by 5 to 7 mV
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
st,enable-fs-rftime-tuning:
|
||||
description: Enables the FS rise/fall tuning option
|
||||
type: boolean
|
||||
|
||||
st,enable-hs-rftime-reduction:
|
||||
description: Enables the HS rise/fall reduction feature
|
||||
type: boolean
|
||||
|
||||
st,trim-hs-current:
|
||||
description: |
|
||||
Controls HS driver current trimming for choke compensation
|
||||
- <0> = 18.87 mA target current / nominal + 0%
|
||||
- <1> = 19.165 mA target current / nominal + 1.56%
|
||||
- <2> = 19.46 mA target current / nominal + 3.12%
|
||||
- <3> = 19.755 mA target current / nominal + 4.68%
|
||||
- <4> = 20.05 mA target current / nominal + 6.24%
|
||||
- <5> = 20.345 mA target current / nominal + 7.8%
|
||||
- <6> = 20.64 mA target current / nominal + 9.36%
|
||||
- <7> = 20.935 mA target current / nominal + 10.92%
|
||||
- <8> = 21.23 mA target current / nominal + 12.48%
|
||||
- <9> = 21.525 mA target current / nominal + 14.04%
|
||||
- <10> = 21.82 mA target current / nominal + 15.6%
|
||||
- <11> = 22.115 mA target current / nominal + 17.16%
|
||||
- <12> = 22.458 mA target current / nominal + 19.01%
|
||||
- <13> = 22.755 mA target current / nominal + 20.58%
|
||||
- <14> = 23.052 mA target current / nominal + 22.16%
|
||||
- <15> = 23.348 mA target current / nominal + 23.73%
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 0
|
||||
|
||||
st,trim-hs-impedance:
|
||||
description: |
|
||||
Controls HS driver impedance tuning for choke compensation
|
||||
- <0> = no impedance offset
|
||||
- <1> = reduce the impedance by 2 ohms
|
||||
- <2> = reduce the impedance by 4 ohms
|
||||
- <3> = reduce the impedance by 6 ohms
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
st,tune-squelch-level:
|
||||
description: |
|
||||
Tunes the squelch DC threshold value
|
||||
- <0> = no shift in threshold
|
||||
- <1> = threshold shift by +7 mV
|
||||
- <2> = threshold shift by -5 mV
|
||||
- <3> = threshold shift by +14 mV
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
st,enable-hs-rx-gain-eq:
|
||||
description: Enables the HS Rx gain equalizer
|
||||
type: boolean
|
||||
|
||||
st,tune-hs-rx-offset:
|
||||
description: |
|
||||
Adjusts the HS Rx offset
|
||||
- <0> = no offset
|
||||
- <1> = offset of +5 mV
|
||||
- <2> = offset of +10 mV
|
||||
- <3> = offset of -5 mV
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
st,no-hs-ftime-ctrl:
|
||||
description: Disables the HS fall time control of single ended signals during pre-emphasis
|
||||
type: boolean
|
||||
|
||||
st,no-lsfs-sc:
|
||||
description: Disables the short circuit protection in LS/FS driver
|
||||
type: boolean
|
||||
|
||||
st,enable-hs-tx-staggering:
|
||||
description: Enables the basic staggering in HS Tx mode
|
||||
type: boolean
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
reg:
|
||||
const: 0
|
||||
then:
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
else:
|
||||
properties:
|
||||
"#phy-cells":
|
||||
const: 1
|
||||
description:
|
||||
The value is used to select UTMI switch output.
|
||||
0 for OTG controller and 1 for Host controller.
|
||||
|
||||
required:
|
||||
- reg
|
||||
- phy-supply
|
||||
- "#phy-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- vdda1v1-supply
|
||||
- vdda1v8-supply
|
||||
- usb-phy@0
|
||||
- usb-phy@1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/stm32mp1-clks.h>
|
||||
#include <dt-bindings/reset/stm32mp1-resets.h>
|
||||
usbphyc: usbphyc@5a006000 {
|
||||
compatible = "st,stm32mp1-usbphyc";
|
||||
reg = <0x5a006000 0x1000>;
|
||||
clocks = <&rcc USBPHY_K>;
|
||||
resets = <&rcc USBPHY_R>;
|
||||
vdda1v1-supply = <®11>;
|
||||
vdda1v8-supply = <®18>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#clock-cells = <0>;
|
||||
|
||||
usbphyc_port0: usb-phy@0 {
|
||||
reg = <0>;
|
||||
phy-supply = <&vdd_usb>;
|
||||
#phy-cells = <0>;
|
||||
st,tune-hs-dc-level = <2>;
|
||||
st,enable-fs-rftime-tuning;
|
||||
st,enable-hs-rftime-reduction;
|
||||
st,trim-hs-current = <15>;
|
||||
st,trim-hs-impedance = <1>;
|
||||
st,tune-squelch-level = <3>;
|
||||
st,tune-hs-rx-offset = <2>;
|
||||
st,no-lsfs-sc;
|
||||
connector {
|
||||
compatible = "usb-a-connector";
|
||||
vbus-supply = <&vbus_sw>;
|
||||
};
|
||||
};
|
||||
|
||||
usbphyc_port1: usb-phy@1 {
|
||||
reg = <1>;
|
||||
phy-supply = <&vdd_usb>;
|
||||
#phy-cells = <1>;
|
||||
st,tune-hs-dc-level = <2>;
|
||||
st,enable-fs-rftime-tuning;
|
||||
st,enable-hs-rftime-reduction;
|
||||
st,trim-hs-current = <15>;
|
||||
st,trim-hs-impedance = <1>;
|
||||
st,tune-squelch-level = <3>;
|
||||
st,tune-hs-rx-offset = <2>;
|
||||
st,no-lsfs-sc;
|
||||
};
|
||||
};
|
||||
...
|
53
bindings/phy/phy-tegra194-p2u.yaml
Normal file
53
bindings/phy/phy-tegra194-p2u.yaml
Normal file
@@ -0,0 +1,53 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/phy/phy-tegra194-p2u.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: NVIDIA Tegra194 & Tegra234 P2U binding
|
||||
|
||||
maintainers:
|
||||
- Thierry Reding <treding@nvidia.com>
|
||||
|
||||
description: >
|
||||
Tegra194 has two PHY bricks namely HSIO (High Speed IO) and NVHS (NVIDIA High
|
||||
Speed) each interfacing with 12 and 8 P2U instances respectively.
|
||||
Tegra234 has three PHY bricks namely HSIO, NVHS and GBE (Gigabit Ethernet)
|
||||
each interfacing with 8, 8 and 8 P2U instances respectively.
|
||||
A P2U instance is a glue logic between Synopsys DesignWare Core PCIe IP's PIPE
|
||||
interface and PHY of HSIO/NVHS/GBE bricks. Each P2U instance represents one
|
||||
PCIe lane.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- nvidia,tegra194-p2u
|
||||
- nvidia,tegra234-p2u
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: Should be the physical address space and length of respective each P2U instance.
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: ctl
|
||||
|
||||
nvidia,skip-sz-protect-en:
|
||||
description: Should be present if two PCIe retimers are present between
|
||||
the root port and its immediate downstream device.
|
||||
type: boolean
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
p2u_hsio_0: phy@3e10000 {
|
||||
compatible = "nvidia,tegra194-p2u";
|
||||
reg = <0x03e10000 0x10000>;
|
||||
reg-names = "ctl";
|
||||
|
||||
#phy-cells = <0>;
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user