← Documents Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SRAM

Allwinner A10 System Control

Allwinner system-control의 SRAM·regulator child와 SoC별 fallback 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

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

요약과 해설

allwinner,sun4i-a10-system-control.yaml:1-163

Allwinner system-control의 SRAM·regulator child와 SoC별 fallback 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·symbol·source path·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0+
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sram/allwinner,sun4i-a10-system-control.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner A10 System Control
8
9 maintainers:
10 - Chen-Yu Tsai <wens@csie.org>
11 - Maxime Ripard <mripard@kernel.org>
12
13 description:
14 The SRAM controller found on most Allwinner devices is represented
15 by a regular node for the SRAM controller itself, with sub-nodes
16 representing the SRAM handled by the SRAM controller.
17
18 properties:
19 "#address-cells":
20 const: 1
21
22 "#size-cells":
23 const: 1
24
25 compatible:
26 oneOf:
27 - enum:
28 - allwinner,sun4i-a10-sram-controller
29 - allwinner,sun50i-a64-sram-controller
30 deprecated: true
31 - enum:
32 - allwinner,sun4i-a10-system-control
33 - allwinner,sun5i-a13-system-control
34 - allwinner,sun8i-a23-system-control
35 - allwinner,sun8i-h3-system-control
36 - allwinner,sun20i-d1-system-control
37 - allwinner,sun50i-a64-system-control
38 - allwinner,sun50i-h5-system-control
39 - allwinner,sun50i-h616-system-control
40 - items:
41 - enum:
42 - allwinner,suniv-f1c100s-system-control
43 - allwinner,sun7i-a20-system-control
44 - allwinner,sun8i-r40-system-control
45 - const: allwinner,sun4i-a10-system-control
46 - items:
47 - const: allwinner,sun8i-v3s-system-control
48 - const: allwinner,sun8i-h3-system-control
49 - items:
50 - enum:
51 - allwinner,sun50i-a100-system-control
52 - allwinner,sun50i-h6-system-control
53 - allwinner,sun55i-a523-system-control
54 - const: allwinner,sun50i-a64-system-control
55
56 reg:
57 maxItems: 1
58
59 ranges: true
60
61 patternProperties:
62 "^regulators@[0-9a-f]+$":
63 $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
64
65 "^sram@[a-f0-9]+":
66 $ref: /schemas/sram/sram.yaml#
67 unevaluatedProperties: false
68
69 patternProperties:
70 "^sram-section?@[a-f0-9]+$":
71 type: object
72 additionalProperties: false
73
74 properties:
75 reg: true
76
77 compatible:
78 oneOf:
79 - const: allwinner,sun4i-a10-sram-a3-a4
80 - const: allwinner,sun4i-a10-sram-c1
81 - const: allwinner,sun4i-a10-sram-d
82 - const: allwinner,sun50i-a64-sram-c
83 - items:
84 - enum:
85 - allwinner,sun5i-a13-sram-a3-a4
86 - allwinner,sun7i-a20-sram-a3-a4
87 - const: allwinner,sun4i-a10-sram-a3-a4
88 - items:
89 - enum:
90 - allwinner,sun5i-a13-sram-c1
91 - allwinner,sun7i-a20-sram-c1
92 - allwinner,sun8i-a23-sram-c1
93 - allwinner,sun8i-h3-sram-c1
94 - allwinner,sun8i-r40-sram-c1
95 - allwinner,sun50i-a64-sram-c1
96 - allwinner,sun50i-h5-sram-c1
97 - allwinner,sun50i-h6-sram-c1
98 - const: allwinner,sun4i-a10-sram-c1
99 - items:
100 - enum:
101 - allwinner,suniv-f1c100s-sram-d
102 - allwinner,sun5i-a13-sram-d
103 - allwinner,sun7i-a20-sram-d
104 - const: allwinner,sun4i-a10-sram-d
105 - items:
106 - const: allwinner,sun50i-h6-sram-c
107 - const: allwinner,sun50i-a64-sram-c
108
109 required:
110 - "#address-cells"
111 - "#size-cells"
112 - compatible
113 - reg
114
115 additionalProperties: false
116
117 examples:
118 - |
119 system-control@1c00000 {
120 compatible = "allwinner,sun4i-a10-system-control";
121 reg = <0x01c00000 0x30>;
122 #address-cells = <1>;
123 #size-cells = <1>;
124 ranges;
125
126 sram_a: sram@0 {
127 compatible = "mmio-sram";
128 reg = <0x00000000 0xc000>;
129 #address-cells = <1>;
130 #size-cells = <1>;
131 ranges = <0 0x00000000 0xc000>;
132
133 emac_sram: sram-section@8000 {
134 compatible = "allwinner,sun4i-a10-sram-a3-a4";
135 reg = <0x8000 0x4000>;
136 };
137 };
138 };
139
140 - |
141 syscon@3000000 {
142 compatible = "allwinner,sun20i-d1-system-control";
143 reg = <0x3000000 0x1000>;
144 ranges;
145 #address-cells = <1>;
146 #size-cells = <1>;
147
148 regulators@3000150 {
149 compatible = "allwinner,sun20i-d1-system-ldos";
150 reg = <0x3000150 0x4>;
151
152 reg_ldoa: ldoa {
153 regulator-min-microvolt = <1800000>;
154 regulator-max-microvolt = <1800000>;
155 };
156
157 reg_ldob: ldob {
158 regulator-name = "vcc-dram";
159 regulator-min-microvolt = <1500000>;
160 regulator-max-microvolt = <1500000>;
161 };
162 };
163 };
164

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Allwinner A10 System Control

1-17

이 GPL-2.0+ YAML schema는 Allwinner A10 System Control을 정의합니다. Maintainer는 Chen-Yu Tsai와 Maxime Ripard입니다.

대부분의 Allwinner device에 있는 SRAM controller는 controller 자체를 나타내는 일반 node와, 그 controller가 관리하는 SRAM을 나타내는 sub-node로 표현합니다.

Controller compatible과 주소 공간

18-60

`#address-cells`와 `#size-cells`는 모두 1이고 `reg`는 최대 한 항목이며 `ranges`를 사용합니다.

Deprecated compatible은 `allwinner,sun4i-a10-sram-controller`, `allwinner,sun50i-a64-sram-controller`입니다. 독립 system-control compatible은 `allwinner,sun4i-a10-system-control`, `allwinner,sun5i-a13-system-control`, `allwinner,sun8i-a23-system-control`, `allwinner,sun8i-h3-system-control`, `allwinner,sun20i-d1-system-control`, `allwinner,sun50i-a64-system-control`, `allwinner,sun50i-h5-system-control`, `allwinner,sun50i-h616-system-control`입니다.

`allwinner,suniv-f1c100s-system-control`, `allwinner,sun7i-a20-system-control`, `allwinner,sun8i-r40-system-control`은 `allwinner,sun4i-a10-system-control`을 fallback으로 사용합니다. `allwinner,sun8i-v3s-system-control`은 `allwinner,sun8i-h3-system-control`을, `allwinner,sun50i-a100-system-control`, `allwinner,sun50i-h6-system-control`, `allwinner,sun55i-a523-system-control`은 `allwinner,sun50i-a64-system-control`을 fallback으로 사용합니다.

Regulator와 SRAM section child

61-108

`^regulators@[0-9a-f]+$` child는 `/schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#`을 따릅니다. `^sram@[a-f0-9]+` child는 공통 `/schemas/sram/sram.yaml#`을 따르며 평가되지 않은 추가 속성을 허용하지 않습니다.

그 안의 `^sram-section?@[a-f0-9]+$` object는 추가 속성을 금지하고 `reg`를 사용할 수 있습니다. 독립 compatible은 `allwinner,sun4i-a10-sram-a3-a4`, `allwinner,sun4i-a10-sram-c1`, `allwinner,sun4i-a10-sram-d`, `allwinner,sun50i-a64-sram-c`입니다.

`allwinner,sun5i-a13-sram-a3-a4`, `allwinner,sun7i-a20-sram-a3-a4`는 A10 A3/A4를 fallback으로 사용합니다. `allwinner,sun5i-a13-sram-c1`, `allwinner,sun7i-a20-sram-c1`, `allwinner,sun8i-a23-sram-c1`, `allwinner,sun8i-h3-sram-c1`, `allwinner,sun8i-r40-sram-c1`, `allwinner,sun50i-a64-sram-c1`, `allwinner,sun50i-h5-sram-c1`, `allwinner,sun50i-h6-sram-c1`은 A10 C1을 fallback으로 사용합니다.

`allwinner,suniv-f1c100s-sram-d`, `allwinner,sun5i-a13-sram-d`, `allwinner,sun7i-a20-sram-d`는 A10 D를 fallback으로 사용하고, `allwinner,sun50i-h6-sram-c`는 A64 C를 fallback으로 사용합니다.

필수 속성과 추가 속성 제한

109-116

필수 속성은 `#address-cells`, `#size-cells`, `compatible`, `reg`입니다. `additionalProperties: false`로 정의하지 않은 추가 속성을 금지합니다.

A10 SRAM과 D1 system LDO 예제

117-163

첫 예제는 A10 system-control 아래 48 KiB `mmio-sram`과 0x8000부터 0x4000 크기의 EMAC SRAM section을 구성합니다. 두 번째 예제는 D1 system-control 아래 `allwinner,sun20i-d1-system-ldos` regulator block을 두고 LDOA를 1.8 V, LDOB `vcc-dram`을 1.5 V로 설정합니다.

  system-control@1c00000 {
    compatible = "allwinner,sun4i-a10-system-control";
    reg = <0x01c00000 0x30>;
    #address-cells = <1>;
    #size-cells = <1>;
    ranges;

    sram_a: sram@0 {
      compatible = "mmio-sram";
      reg = <0x00000000 0xc000>;
      #address-cells = <1>;
      #size-cells = <1>;
      ranges = <0 0x00000000 0xc000>;

      emac_sram: sram-section@8000 {
        compatible = "allwinner,sun4i-a10-sram-a3-a4";
        reg = <0x8000 0x4000>;
      };
    };
  };

- |
  syscon@3000000 {
    compatible = "allwinner,sun20i-d1-system-control";
    reg = <0x3000000 0x1000>;
    ranges;
    #address-cells = <1>;
    #size-cells = <1>;

    regulators@3000150 {
      compatible = "allwinner,sun20i-d1-system-ldos";
      reg = <0x3000150 0x4>;

      reg_ldoa: ldoa {
        regulator-min-microvolt = <1800000>;
        regulator-max-microvolt = <1800000>;
      };

      reg_ldob: ldob {
        regulator-name = "vcc-dram";
        regulator-min-microvolt = <1500000>;
        regulator-max-microvolt = <1500000>;
      };
    };
  };