요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Lantiq XWAY SoC RCU binding
===========================
This binding describes the RCU (reset controller unit) multifunction device,
where each sub-device has its own set of registers.
The RCU register range is used for multiple purposes. Mostly one device
uses one or multiple register exclusively, but for some registers some
bits are for one driver and some other bits are for a different driver.
With this patch all accesses to the RCU registers will go through
syscon.
-------------------------------------------------------------------------------
Required properties:
- compatible : The first and second values must be:
"lantiq,xrx200-rcu", "simple-mfd", "syscon"
- reg : The address and length of the system control registers
-------------------------------------------------------------------------------
Example of the RCU bindings on a xRX200 SoC:
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>;
};
};
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`을 통과합니다.
공통 syscon regmap 아래에서 reset, USB PHY, reboot 기능이 서로 다른 register 또는 bit를 사용합니다.
RCU 호환성과 system-control 범위
14-20`compatible`의 첫 값과 둘째 값은 원문 표현에 따라 `lantiq,xrx200-rcu`, `simple-mfd`, `syscon`을 사용합니다. 실제 목록은 세 문자열이며 `reg`는 system control register의 주소와 길이입니다.
SoC별 기능, MFD 자식 열거, 공통 regmap 역할을 함께 선언합니다.
Reset·USB PHY·reboot 예제
21-69XRX200 예제는 `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>;
};
};
요약과 해설
rcu.txt:1-69Shared register bit, 두 reset controller와 PHY reset 관계를 설명합니다.