← Documents Documentation/devicetree/bindings/phy/ti-phy.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

TI OMAP Control and PIPE3 PHY

TI OMAP Control PHY와 USB3·SATA·PCIe PIPE3 PHY 바인딩입니다.

Source pathDocumentation/devicetree/bindings/phy/ti-phy.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

ti-phy.txt:1-98

PHY 유형별 control register, clock, syscon power와 reset 속성을 정리합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs
2
3 OMAP CONTROL PHY
4
5 Required properties:
6 - compatible: Should be one of
7 "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4.
8 "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register
9 e.g. USB2_PHY on OMAP5.
10 "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control
11 e.g. USB3 PHY and SATA PHY on OMAP5.
12 "ti,control-phy-pcie" - for pcie to support external clock for pcie and to
13 set PCS delay value.
14 e.g. PCIE PHY in DRA7x
15 "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on
16 DRA7 platform.
17 "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on
18 AM437 platform.
19 - reg : register ranges as listed in the reg-names property
20 - reg-names: "otghs_control" for control-phy-otghs
21 "power", "pcie_pcs" and "control_sma" for control-phy-pcie
22 "power" for all other types
23
24 omap_control_usb: omap-control-usb@4a002300 {
25 compatible = "ti,control-phy-otghs";
26 reg = <0x4a00233c 0x4>;
27 reg-names = "otghs_control";
28 };
29
30 TI PIPE3 PHY
31
32 Required properties:
33 - compatible: Should be "ti,phy-usb3", "ti,phy-pipe3-sata" or
34 "ti,phy-pipe3-pcie. "ti,omap-usb3" is deprecated.
35 - reg : Address and length of the register set for the device.
36 - reg-names: The names of the register addresses corresponding to the registers
37 filled in "reg".
38 - #phy-cells: determine the number of cells that should be given in the
39 phandle while referencing this phy.
40 - clocks: a list of phandles and clock-specifier pairs, one for each entry in
41 clock-names.
42 - clock-names: should include:
43 * "wkupclk" - wakeup clock.
44 * "sysclk" - system clock.
45 * "refclk" - reference clock.
46 * "dpll_ref" - external dpll ref clk
47 * "dpll_ref_m2" - external dpll ref clk
48 * "phy-div" - divider for apll
49 * "div-clk" - apll clock
50
51 Optional properties:
52 - id: If there are multiple instance of the same type, in order to
53 differentiate between each instance "id" can be used (e.g., multi-lane PCIe
54 PHY). If "id" is not provided, it is set to default value of '1'.
55 - syscon-pllreset: Handle to system control region that contains the
56 CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0
57 register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy.
58 - syscon-pcs : phandle/offset pair. Phandle to the system control module and the
59 register offset to write the PCS delay value.
60
61 Deprecated properties:
62 - ctrl-module : phandle of the control module used by PHY driver to power on
63 the PHY.
64
65 Recommended properties:
66 - syscon-phy-power : phandle/offset pair. Phandle to the system control
67 module and the register offset to power on/off the PHY.
68
69 This is usually a subnode of ocp2scp to which it is connected.
70
71 usb3phy@4a084400 {
72 compatible = "ti,phy-usb3";
73 reg = <0x4a084400 0x80>,
74 <0x4a084800 0x64>,
75 <0x4a084c00 0x40>;
76 reg-names = "phy_rx", "phy_tx", "pll_ctrl";
77 ctrl-module = <&omap_control_usb>;
78 #phy-cells = <0>;
79 clocks = <&usb_phy_cm_clk32k>,
80 <&sys_clkin>,
81 <&usb_otg_ss_refclk960m>;
82 clock-names = "wkupclk",
83 "sysclk",
84 "refclk";
85 };
86
87 sata_phy: phy@4a096000 {
88 compatible = "ti,phy-pipe3-sata";
89 reg = <0x4A096000 0x80>, /* phy_rx */
90 <0x4A096400 0x64>, /* phy_tx */
91 <0x4A096800 0x40>; /* pll_ctrl */
92 reg-names = "phy_rx", "phy_tx", "pll_ctrl";
93 ctrl-module = <&omap_control_sata>;
94 clocks = <&sys_clkin1>, <&sata_ref_clk>;
95 clock-names = "sysclk", "refclk";
96 syscon-pllreset = <&scm_conf 0x3fc>;
97 #phy-cells = <0>;
98 };
99

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

OMAP Control PHY

1-23

OMAP Control PHY의 `compatible`은 하드웨어 종류에 맞춰 선택합니다. OMAP4처럼 `otghs_control` mailbox register가 있으면 `ti,control-phy-otghs`, OMAP5 USB2 PHY처럼 `control_dev_conf`에 power-down bit가 있으면 `ti,control-phy-usb2`를 사용합니다.

OMAP5의 USB3·SATA PHY처럼 DPLL과 개별 RX/TX power control이 있으면 `ti,control-phy-pipe3`, 외부 PCIe clock 지원과 PCS delay 설정이 필요한 DRA7x PCIe PHY는 `ti,control-phy-pcie`를 사용합니다.

DRA7의 USB2 PHY처럼 power-down register가 있으면 `ti,control-phy-usb2-dra7`, AM437의 같은 유형은 `ti,control-phy-usb2-am437`을 사용합니다.

`reg`는 `reg-names`에 나열된 register 범위입니다. `reg-names`는 control-phy-otghs에서 `otghs_control`, control-phy-pcie에서 `power`, `pcie_pcs`, `control_sma`, 그 밖의 유형에서 `power`를 사용합니다.

OMAP Control USB 예제

24-29

예제는 `0x4a00233c`의 4-byte `otghs_control` register를 가진 OMAP4 Control USB 노드를 정의합니다.

omap_control_usb: omap-control-usb@4a002300 {
        compatible = "ti,control-phy-otghs";
        reg = <0x4a00233c 0x4>;
        reg-names = "otghs_control";
};

TI PIPE3 PHY 필수 속성

30-50

PIPE3 PHY의 `compatible`은 USB3용 `ti,phy-usb3`, SATA용 `ti,phy-pipe3-sata`, PCIe용 `ti,phy-pipe3-pcie` 가운데 하나여야 합니다. `ti,omap-usb3`는 폐기되었습니다.

`reg`는 장치 register set의 주소와 길이이고 `reg-names`는 `reg`에 채운 각 register 주소의 이름입니다. `#phy-cells`는 이 PHY를 참조하는 phandle에 전달할 cell 수를 정합니다.

`clocks`에는 `clock-names`의 각 항목마다 phandle과 clock specifier 쌍이 하나씩 있어야 합니다. `clock-names`는 wakeup clock `wkupclk`, system clock `sysclk`, reference clock `refclk`, 외부 DPLL reference clock `dpll_ref`와 `dpll_ref_m2`, APLL divider `phy-div`, APLL clock `div-clk`를 포함할 수 있습니다.

TI PIPE3 PHY 선택·폐기·권장 속성

51-70

같은 유형의 인스턴스가 여러 개면 `id`로 구별할 수 있습니다. 예를 들어 multi-lane PCIe PHY에 사용하며 생략하면 기본값 1입니다.

SATA PHY에만 유효한 `syscon-pllreset`은 `SATA_PLL_SOFT_RESET` bit가 있는 `CTRL_CORE_SMA_SW_0` register를 포함하는 system control 영역 handle과 해당 register offset입니다. `syscon-pcs`는 PCS delay 값을 기록할 system control module phandle과 register offset의 쌍입니다.

폐기된 `ctrl-module`은 PHY 드라이버가 PHY 전원을 켜는 데 쓰는 control module phandle입니다. 권장되는 `syscon-phy-power`는 PHY power-on/off를 제어할 system control module phandle과 register offset 쌍입니다.

TI PIPE3 PHY 노드는 보통 연결 대상인 `ocp2scp`의 하위 노드입니다.

TI USB3 PHY 예제

71-86

USB3 예제는 RX, TX, PLL control의 세 register 영역과 폐기된 `ctrl-module`, cell 없는 PHY 지정자, wakeup·system·reference clock을 구성합니다.

usb3phy@4a084400 {
        compatible = "ti,phy-usb3";
        reg = <0x4a084400 0x80>,
              <0x4a084800 0x64>,
              <0x4a084c00 0x40>;
        reg-names = "phy_rx", "phy_tx", "pll_ctrl";
        ctrl-module = <&omap_control_usb>;
        #phy-cells = <0>;
        clocks = <&usb_phy_cm_clk32k>,
                 <&sys_clkin>,
                 <&usb_otg_ss_refclk960m>;
        clock-names =        "wkupclk",
                        "sysclk",
                        "refclk";
};

TI SATA PHY 예제

87-98

SATA 예제도 RX, TX, PLL control 영역을 사용하며 system·reference clock과 `syscon-pllreset` offset `0x3fc`, cell 없는 PHY 지정자를 구성합니다.

sata_phy: phy@4a096000 {
        compatible = "ti,phy-pipe3-sata";
        reg = <0x4A096000 0x80>, /* phy_rx */
              <0x4A096400 0x64>, /* phy_tx */
              <0x4A096800 0x40>; /* pll_ctrl */
        reg-names = "phy_rx", "phy_tx", "pll_ctrl";
        ctrl-module = <&omap_control_sata>;
        clocks = <&sys_clkin1>, <&sata_ref_clk>;
        clock-names = "sysclk", "refclk";
        syscon-pllreset = <&scm_conf 0x3fc>;
        #phy-cells = <0>;
};