요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
TI SysCon Reset Controller
=======================
Almost all SoCs have hardware modules that require reset control in addition
to clock and power control for their functionality. The reset control is
typically provided by means of memory-mapped I/O registers. These registers are
sometimes a part of a larger register space region implementing various
functionalities. This register range is best represented as a syscon node to
allow multiple entities to access their relevant registers in the common
register space.
A SysCon Reset Controller node defines a device that uses a syscon node
and provides reset management functionality for various hardware modules
present on the SoC.
SysCon Reset Controller Node
============================
Each of the reset provider/controller nodes should be a child of a syscon
node and have the following properties.
Required properties:
--------------------
- compatible : Should be,
"ti,k2e-pscrst"
"ti,k2l-pscrst"
"ti,k2hk-pscrst"
"ti,syscon-reset"
- #reset-cells : Should be 1. Please see the reset consumer node below
for usage details
- ti,reset-bits : Contains the reset control register information
Should contain 7 cells for each reset exposed to
consumers, defined as:
Cell #1 : offset of the reset assert control
register from the syscon register base
Cell #2 : bit position of the reset in the reset
assert control register
Cell #3 : offset of the reset deassert control
register from the syscon register base
Cell #4 : bit position of the reset in the reset
deassert control register
Cell #5 : offset of the reset status register
from the syscon register base
Cell #6 : bit position of the reset in the
reset status register
Cell #7 : Flags used to control reset behavior,
available flags defined in the DT include
file <dt-bindings/reset/ti-syscon.h>
SysCon Reset Consumer Nodes
===========================
Each of the reset consumer nodes should have the following properties,
in addition to their own properties.
Required properties:
--------------------
- resets : A phandle to the reset controller node and an index number
to a reset specifier as defined above.
Please also refer to Documentation/devicetree/bindings/reset/reset.txt for
common reset controller usage by consumers.
Example:
--------
The following example demonstrates a syscon node, the reset controller node
using the syscon node, and a consumer (a DSP device) on the TI Keystone 2
66AK2E SoC.
/ {
soc {
psc: power-sleep-controller@2350000 {
compatible = "syscon", "simple-mfd";
reg = <0x02350000 0x1000>;
pscrst: reset-controller {
compatible = "ti,k2e-pscrst", "ti,syscon-reset";
#reset-cells = <1>;
ti,reset-bits = <
0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
0xa40 5 0xa44 3 0 0 (ASSERT_SET | DEASSERT_CLEAR | STATUS_NONE) /* 1: example */
>;
};
};
dsp0: dsp0 {
...
resets = <&pscrst 0>;
...
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
TI SysCon reset controller
1-14거의 모든 SoC에는 clock 및 전원 제어뿐 아니라 reset 제어도 필요한 하드웨어 모듈이 있습니다. reset 제어는 대개 memory-mapped I/O 레지스터로 제공되며, 이 레지스터가 여러 기능을 구현하는 더 큰 레지스터 공간의 일부인 경우가 있습니다.
공통 레지스터 공간에서 여러 주체가 각자 관련 레지스터에 접근할 수 있도록 이 범위를 syscon 노드로 표현하는 것이 적합합니다. SysCon reset controller 노드는 syscon 노드를 사용해 SoC의 여러 하드웨어 모듈에 reset 관리 기능을 제공합니다.
provider 노드 배치
15-19각 reset provider/controller 노드는 syscon 노드의 자식이어야 합니다.
provider 필수 속성
20-47`compatible`은 `ti,k2e-pscrst`, `ti,k2l-pscrst`, `ti,k2hk-pscrst`, `ti,syscon-reset` 가운데 해당 값을 사용합니다. `#reset-cells`는 1입니다.
`ti,reset-bits`는 소비자에게 노출하는 reset마다 7개 셀로 reset 제어 레지스터 정보를 기술합니다.
셀 1은 syscon 기준 reset assert 제어 레지스터의 오프셋이고, 셀 2는 그 레지스터 안의 reset 비트 위치입니다. 셀 3은 reset deassert 제어 레지스터 오프셋이고, 셀 4는 그 레지스터 안의 비트 위치입니다.
셀 5는 syscon 기준 reset 상태 레지스터 오프셋이고, 셀 6은 상태 레지스터 안의 reset 비트 위치입니다. 셀 7은 reset 동작을 제어하는 플래그이며 사용 가능한 값은 `<dt-bindings/reset/ti-syscon.h>`에 정의됩니다.
consumer 필수 속성
48-60각 reset consumer 노드는 자체 속성에 더해 `resets`를 가져야 합니다. 이 값은 reset controller 노드의 phandle과 위에서 정의한 reset specifier의 인덱스 번호로 구성됩니다.
consumer의 공통 reset controller 사용법은 `Documentation/devicetree/bindings/reset/reset.txt`도 참조합니다.
Keystone 2 66AK2E 예제
61-91예제는 TI Keystone 2 66AK2E SoC에서 syscon 노드, 이를 사용하는 reset controller, 소비자인 DSP 장치를 함께 구성합니다. 인덱스 0은 `ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR`, 인덱스 1은 `ASSERT_SET | DEASSERT_CLEAR | STATUS_NONE` 동작을 사용합니다.
/ {
soc {
psc: power-sleep-controller@2350000 {
compatible = "syscon", "simple-mfd";
reg = <0x02350000 0x1000>;
pscrst: reset-controller {
compatible = "ti,k2e-pscrst", "ti,syscon-reset";
#reset-cells = <1>;
ti,reset-bits = <
0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
0xa40 5 0xa44 3 0 0 (ASSERT_SET | DEASSERT_CLEAR | STATUS_NONE) /* 1: example */
>;
};
};
dsp0: dsp0 {
...
resets = <&pscrst 0>;
...
};
};
};
요약과 해설
ti-syscon-reset.txt:1-91reset provider와 consumer의 관계 및 지정자 형식을 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.