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

Linux 6.18.37 · Devicetree Bindings

Common PHY Bindings

범용 PHY provider와 user 사이의 phandle 및 지정자 바인딩입니다.

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

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

1. 요약·해설

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

요약과 해설

phy-bindings.txt:1-72

provider의 `#phy-cells`와 user의 `phys`·`phy-names`가 PHY 인스턴스를 선택하는 방식을 보여 줍니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 This document explains only the device tree data binding. For general
2 information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst
3
4 PHY device node
5 ===============
6
7 Required Properties:
8 #phy-cells: Number of cells in a PHY specifier; The meaning of all those
9 cells is defined by the binding for the phy node. The PHY
10 provider can use the values in cells to find the appropriate
11 PHY.
12
13 Optional Properties:
14 phy-supply: Phandle to a regulator that provides power to the PHY. This
15 regulator will be managed during the PHY power on/off sequence.
16
17 For example:
18
19 phys: phy {
20 compatible = "xxx";
21 reg = <...>;
22 .
23 .
24 #phy-cells = <1>;
25 .
26 .
27 };
28
29 That node describes an IP block (PHY provider) that implements 2 different PHYs.
30 In order to differentiate between these 2 PHYs, an additional specifier should be
31 given while trying to get a reference to it.
32
33 PHY user node
34 =============
35
36 Required Properties:
37 phys : the phandle for the PHY device (used by the PHY subsystem; not to be
38 confused with the Ethernet specific 'phy' and 'phy-handle' properties,
39 see Documentation/devicetree/bindings/net/ethernet.txt for these)
40 phy-names : the names of the PHY corresponding to the PHYs present in the
41 *phys* phandle
42
43 Example 1:
44 usb1: usb_otg_ss@xxx {
45 compatible = "xxx";
46 reg = <xxx>;
47 .
48 .
49 phys = <&usb2_phy>, <&usb3_phy>;
50 phy-names = "usb2phy", "usb3phy";
51 .
52 .
53 };
54
55 This node represents a controller that uses two PHYs, one for usb2 and one for
56 usb3.
57
58 Example 2:
59 usb2: usb_otg_ss@xxx {
60 compatible = "xxx";
61 reg = <xxx>;
62 .
63 .
64 phys = <&phys 1>;
65 phy-names = "usbphy";
66 .
67 .
68 };
69
70 This node represents a controller that uses one of the PHYs of the PHY provider
71 device defined previously. Note that the phy handle has an additional specifier
72 "1" to differentiate between the two PHYs.
73

3. 한국어 전문 번역

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

PHY provider 노드와 속성

1-16

이 문서는 Device Tree 데이터 바인딩만 설명합니다. PHY subsystem의 일반 정보는 `Documentation/driver-api/phy/phy.rst`를 참조하십시오.

PHY 장치 노드의 필수 `#phy-cells`는 PHY 지정자에 들어가는 cell 수입니다. 각 cell의 의미는 해당 PHY 노드 바인딩이 정의하며 PHY provider는 이 값으로 적절한 PHY를 찾을 수 있습니다.

선택 속성 `phy-supply`는 PHY에 전원을 공급하는 regulator의 phandle입니다. 이 regulator는 PHY power-on/off 순서 중에 관리됩니다.

두 PHY를 제공하는 provider 예제

17-32

예제 노드는 서로 다른 PHY 두 개를 구현하는 IP block, 즉 PHY provider를 나타냅니다. 이 두 PHY를 구별하려면 참조를 얻을 때 추가 지정자를 전달해야 합니다.

phys: phy {
    compatible = "xxx";
    reg = <...>;
    .
    .
    #phy-cells = <1>;
    .
    .
};

PHY user 노드 속성

33-42

PHY user의 필수 `phys`는 PHY subsystem이 사용할 PHY 장치 phandle입니다. Ethernet 전용 `phy` 및 `phy-handle` 속성과 혼동하면 안 되며, 이 속성들은 `Documentation/devicetree/bindings/net/ethernet.txt`를 참조하십시오.

`phy-names`에는 `phys` phandle 목록의 각 PHY에 대응하는 이름이 들어갑니다.

독립 PHY 두 개를 사용하는 user 예제

43-57

첫 번째 user 예제는 USB2용 `usb2_phy`와 USB3용 `usb3_phy` 두 PHY를 사용하며 이름을 각각 `usb2phy`, `usb3phy`로 지정합니다.

usb1: usb_otg_ss@xxx {
    compatible = "xxx";
    reg = <xxx>;
    .
    .
    phys = <&usb2_phy>, <&usb3_phy>;
    phy-names = "usb2phy", "usb3phy";
    .
    .
};

provider 내부 PHY 하나를 선택하는 예제

58-72

두 번째 user 예제는 앞에서 정의한 PHY provider 장치의 PHY 가운데 하나를 사용합니다. PHY handle의 추가 지정자 `1`이 두 PHY를 구별합니다.

usb2: usb_otg_ss@xxx {
    compatible = "xxx";
    reg = <xxx>;
    .
    .
    phys = <&phys 1>;
    phy-names = "usbphy";
    .
    .
};