Documentation/devicetree/bindings/mips/lantiq/rcu.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Lantiq XWAY RCU

XRX200 RCU의 syscon·reset·USB PHY·reboot 다기능 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mips/lantiq/rcu.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

rcu.txt:1-69

Shared register bit, 두 reset controller와 PHY reset 관계를 설명합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 Lantiq XWAY SoC RCU binding
2 ===========================
3
4 This binding describes the RCU (reset controller unit) multifunction device,
5 where each sub-device has its own set of registers.
6
7 The RCU register range is used for multiple purposes. Mostly one device
8 uses one or multiple register exclusively, but for some registers some
9 bits are for one driver and some other bits are for a different driver.
10 With this patch all accesses to the RCU registers will go through
11 syscon.
12
13
14 -------------------------------------------------------------------------------
15 Required properties:
16 - compatible : The first and second values must be:
17 "lantiq,xrx200-rcu", "simple-mfd", "syscon"
18 - reg : The address and length of the system control registers
19
20
21 -------------------------------------------------------------------------------
22 Example of the RCU bindings on a xRX200 SoC:
23 rcu0: rcu@203000 {
24 compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
25 reg = <0x203000 0x100>;
26 ranges = <0x0 0x203000 0x100>;
27 big-endian;
28
29 reset0: reset-controller@10 {
30 compatible = "lantiq,xrx200-reset";
31 reg = <0x10 4>, <0x14 4>;
32
33 #reset-cells = <2>;
34 };
35
36 reset1: reset-controller@48 {
37 compatible = "lantiq,xrx200-reset";
38 reg = <0x48 4>, <0x24 4>;
39
40 #reset-cells = <2>;
41 };
42
43 usb_phy0: usb2-phy@18 {
44 compatible = "lantiq,xrx200-usb2-phy";
45 reg = <0x18 4>, <0x38 4>;
46
47 resets = <&reset1 4 4>, <&reset0 4 4>;
48 reset-names = "phy", "ctrl";
49 #phy-cells = <0>;
50 };
51
52 usb_phy1: usb2-phy@34 {
53 compatible = "lantiq,xrx200-usb2-phy";
54 reg = <0x34 4>, <0x3C 4>;
55
56 resets = <&reset1 5 4>, <&reset0 4 4>;
57 reset-names = "phy", "ctrl";
58 #phy-cells = <0>;
59 };
60
61 reboot@10 {
62 compatible = "syscon-reboot";
63 reg = <0x10 4>;
64
65 regmap = <&rcu0>;
66 offset = <0x10>;
67 mask = <0x40000000>;
68 };
69 };
70

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

Lantiq XWAY RCU multifunction device

1-13

이 바인딩은 RCU(reset controller unit) 다기능 장치를 설명하며 각 sub-device는 자체 register 집합을 가집니다.

RCU register 범위는 여러 목적으로 사용됩니다. 보통 한 장치가 register 하나 이상을 독점하지만 일부 register는 서로 다른 bit를 서로 다른 driver가 사용합니다. 모든 RCU register 접근은 `syscon`을 통과합니다.

Lantiq RCU register 공유
RCU register rangesyscon regmap
syscon regmapReset controllers
syscon regmapUSB2 PHY controls
syscon regmapReboot control

공통 syscon regmap 아래에서 reset, USB PHY, reboot 기능이 서로 다른 register 또는 bit를 사용합니다.

RCU 호환성과 system-control 범위

14-20

`compatible`의 첫 값과 둘째 값은 원문 표현에 따라 `lantiq,xrx200-rcu`, `simple-mfd`, `syscon`을 사용합니다. 실제 목록은 세 문자열이며 `reg`는 system control register의 주소와 길이입니다.

Lantiq RCU 호환 계층
문자열역할
lantiq,xrx200-rcuXRX200 RCU hardware
simple-mfd자식 장치 열거
syscon공통 register map

SoC별 기능, MFD 자식 열거, 공통 regmap 역할을 함께 선언합니다.

Reset·USB PHY·reboot 예제

21-69

XRX200 예제는 `0x203000`의 256-byte big-endian RCU 범위를 직접 매핑합니다. 두 reset controller는 각각 register pair `0x10/0x14`, `0x48/0x24`와 두 cell reset specifier를 제공합니다.

USB PHY0은 register `0x18/0x38`, PHY1은 `0x34/0x3c`를 사용하고 각각 `phy`, `ctrl` reset을 연결합니다. `syscon-reboot` 자식은 RCU regmap offset `0x10`의 mask `0x40000000`을 사용합니다.

rcu0: rcu@203000 {
        compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
        reg = <0x203000 0x100>;
        ranges = <0x0 0x203000 0x100>;
        big-endian;

        reset0: reset-controller@10 {
                compatible = "lantiq,xrx200-reset";
                reg = <0x10 4>, <0x14 4>;

                #reset-cells = <2>;
        };

        reset1: reset-controller@48 {
                compatible = "lantiq,xrx200-reset";
                reg = <0x48 4>, <0x24 4>;

                #reset-cells = <2>;
        };

        usb_phy0: usb2-phy@18 {
                compatible = "lantiq,xrx200-usb2-phy";
                reg = <0x18 4>, <0x38 4>;

                resets = <&reset1 4 4>, <&reset0 4 4>;
                reset-names = "phy", "ctrl";
                #phy-cells = <0>;
        };

        usb_phy1: usb2-phy@34 {
                compatible = "lantiq,xrx200-usb2-phy";
                reg = <0x34 4>, <0x3C 4>;

                resets = <&reset1 5 4>, <&reset0 4 4>;
                reset-names = "phy", "ctrl";
                #phy-cells = <0>;
        };

        reboot@10 {
                compatible = "syscon-reboot";
                reg = <0x10 4>;

                regmap = <&rcu0>;
                offset = <0x10>;
                mask = <0x40000000>;
        };
};