요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Amlogic Meson Power Controller (deprecated)
===========================================
The Amlogic Meson SoCs embeds an internal Power domain controller.
VPU Power Domain
----------------
The Video Processing Unit power domain is controlled by this power controller,
but the domain requires some external resources to meet the correct power
sequences.
The bindings must respect the power domain bindings as described in the file
power-domain.yaml
Device Tree Bindings:
---------------------
Required properties:
- compatible: should be one of the following :
- "amlogic,meson-gx-pwrc-vpu" for the Meson GX SoCs
- "amlogic,meson-g12a-pwrc-vpu" for the Meson G12A SoCs
- #power-domain-cells: should be 0
- amlogic,hhi-sysctrl: phandle to the HHI sysctrl node
- resets: phandles to the reset lines needed for this power demain sequence
as described in ../reset/reset.txt
- clocks: from common clock binding: handle to VPU and VAPB clocks
- clock-names: from common clock binding: must contain "vpu", "vapb"
corresponding to entry in the clocks property.
Parent node should have the following properties :
- compatible: "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"
- reg: base address and size of the AO system control register space.
Example:
-------
ao_sysctrl: sys-ctrl@0 {
compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
reg = <0x0 0x0 0x0 0x100>;
pwrc_vpu: power-controller-vpu {
compatible = "amlogic,meson-gx-pwrc-vpu";
#power-domain-cells = <0>;
amlogic,hhi-sysctrl = <&sysctrl>;
resets = <&reset RESET_VIU>,
<&reset RESET_VENC>,
<&reset RESET_VCBUS>,
<&reset RESET_BT656>,
<&reset RESET_DVIN_RESET>,
<&reset RESET_RDMA>,
<&reset RESET_VENCI>,
<&reset RESET_VENCP>,
<&reset RESET_VDAC>,
<&reset RESET_VDI6>,
<&reset RESET_VENCL>,
<&reset RESET_VID_LOCK>;
clocks = <&clkc CLKID_VPU>,
<&clkc CLKID_VAPB>;
clock-names = "vpu", "vapb";
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Deprecated Meson VPU power controller
1-14이 binding은 deprecated된 Amlogic Meson power controller를 설명합니다. Amlogic Meson SoC는 내부 power-domain controller를 포함합니다.
Video Processing Unit(VPU) power domain은 이 controller가 제어하지만 올바른 power sequence를 만족하려면 일부 external resource가 필요합니다. Binding은 `power-domain.yaml`에 설명된 power-domain binding을 따라야 합니다.
VPU domain과 parent 필수 속성
15-33VPU power-domain node의 지원 `compatible`은 다음과 같습니다.
| Compatible | Target |
|---|---|
| amlogic,meson-gx-pwrc-vpu | Meson GX SoCs |
| amlogic,meson-g12a-pwrc-vpu | Meson G12A SoCs |
`#power-domain-cells`는 0이어야 합니다. `amlogic,hhi-sysctrl`은 HHI sysctrl node의 phandle이고, `resets`는 `../reset/reset.txt`에 설명된 power-domain sequence용 reset line phandle들입니다.
`clocks`는 공통 clock binding에 따른 VPU·VAPB clock handle입니다. `clock-names`에는 `clocks` entry에 대응하는 `vpu`, `vapb`가 들어가야 합니다.
Parent node에는 `compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"`와 AO system-control register space의 base address·size를 담은 `reg`가 필요합니다.
AO sysctrl과 VPU domain 예제
34-63AO sysctrl 아래에 VPU power controller를 두고 HHI sysctrl, 필요한 reset line 열두 개, VPU·VAPB clock을 연결하는 예제입니다.
ao_sysctrl: sys-ctrl@0 {
compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
reg = <0x0 0x0 0x0 0x100>;
pwrc_vpu: power-controller-vpu {
compatible = "amlogic,meson-gx-pwrc-vpu";
#power-domain-cells = <0>;
amlogic,hhi-sysctrl = <&sysctrl>;
resets = <&reset RESET_VIU>,
<&reset RESET_VENC>,
<&reset RESET_VCBUS>,
<&reset RESET_BT656>,
<&reset RESET_DVIN_RESET>,
<&reset RESET_RDMA>,
<&reset RESET_VENCI>,
<&reset RESET_VENCP>,
<&reset RESET_VDAC>,
<&reset RESET_VDI6>,
<&reset RESET_VENCL>,
<&reset RESET_VID_LOCK>;
clocks = <&clkc CLKID_VPU>,
<&clkc CLKID_VAPB>;
clock-names = "vpu", "vapb";
};
};
요약과 해설
amlogic,meson-gx-pwrc.txt:1-63AO sysctrl parent와 VPU reset·clock resource를 연결하는 power sequence 계약입니다.