← Documents 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 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

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

요약과 해설

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. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 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>;
        };
};