← Documents Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Cortina Systems Gemini Pin Controller

Gemini의 group 전용 mux와 Ethernet pin configuration binding입니다.

Source pathDocumentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

cortina,gemini-pinctrl.txt:1-68

System controller 계층과 DRAM·RTC·power·system·UART group 구성을 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Cortina Systems Gemini pin controller
2
3 This pin controller is found in the Cortina Systems Gemini SoC family,
4 see further arm/gemini.txt. It is a purely group-based multiplexing pin
5 controller.
6
7 The pin controller node must be a subnode of the system controller node.
8
9 Required properties:
10 - compatible: "cortina,gemini-pinctrl"
11
12 Subnodes of the pin controller contain pin control multiplexing set-up
13 and pin configuration of individual pins.
14
15 Please refer to pinctrl-bindings.txt for generic pin multiplexing nodes
16 and generic pin config nodes.
17
18 Supported configurations:
19 - skew-delay is supported on the Ethernet pins
20 - drive-strength with 4, 8, 12 or 16 mA as argument is supported for
21 entire groups on the groups "idegrp", "gmii_gmac0_grp", "gmii_gmac1_grp"
22 and "pcigrp".
23
24 Example:
25
26
27 syscon {
28 compatible = "cortina,gemini-syscon";
29 ...
30 pinctrl {
31 compatible = "cortina,gemini-pinctrl";
32 pinctrl-names = "default";
33 pinctrl-0 = <&dram_default_pins>, <&system_default_pins>,
34 <&vcontrol_default_pins>;
35
36 dram_default_pins: pinctrl-dram {
37 mux {
38 function = "dram";
39 groups = "dramgrp";
40 };
41 };
42 rtc_default_pins: pinctrl-rtc {
43 mux {
44 function = "rtc";
45 groups = "rtcgrp";
46 };
47 };
48 power_default_pins: pinctrl-power {
49 mux {
50 function = "power";
51 groups = "powergrp";
52 };
53 };
54 system_default_pins: pinctrl-system {
55 mux {
56 function = "system";
57 groups = "systemgrp";
58 };
59 };
60 (...)
61 uart_default_pins: pinctrl-uart {
62 mux {
63 function = "uart";
64 groups = "uartrxtxgrp";
65 };
66 };
67 };
68 };
69

3. 한국어 전문 번역

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

Cortina Gemini pin controller

1-16

이 pin controller는 Cortina Systems Gemini SoC 계열에 있으며 자세한 플랫폼 정보는 `arm/gemini.txt`를 참조합니다. 모든 mux가 group 단위로 이루어지는 controller입니다.

Pin controller 노드는 system controller 노드의 하위 노드여야 하고 필수 `compatible` 값은 `cortina,gemini-pinctrl`입니다.

하위 노드에는 pin control mux 설정과 개별 pin configuration이 들어갑니다. Generic pin multiplexing 및 pin config 노드 규칙은 `pinctrl-bindings.txt`를 따릅니다.

Gemini 지원 configuration

17-23

Ethernet pin에는 `skew-delay`를 지원합니다. `idegrp`, `gmii_gmac0_grp`, `gmii_gmac1_grp`, `pcigrp` group 전체에는 인수 4, 8, 12, 16mA의 `drive-strength`를 지원합니다.

Gemini system controller 예제

24-68

예제는 system controller 아래 pinctrl 노드를 두고 DRAM, RTC, power, system, UART function을 각각 대응 group에 mux합니다. 기본 상태는 필요한 configuration phandle들을 함께 참조합니다.

syscon {
        compatible = "cortina,gemini-syscon";
        ...
        pinctrl {
                compatible = "cortina,gemini-pinctrl";
                pinctrl-names = "default";
                pinctrl-0 = <&dram_default_pins>, <&system_default_pins>,
                    <&vcontrol_default_pins>;

                dram_default_pins: pinctrl-dram {
                        mux {
                                function = "dram";
                                groups = "dramgrp";
                        };
                };
                rtc_default_pins: pinctrl-rtc {
                        mux {
                                function = "rtc";
                                groups = "rtcgrp";
                        };
                };
                power_default_pins: pinctrl-power {
                        mux {
                                function = "power";
                                groups = "powergrp";
                        };
                };
                system_default_pins: pinctrl-system {
                        mux {
                                function = "system";
                                groups = "systemgrp";
                        };
                };
                (...)
                uart_default_pins: pinctrl-uart {
                        mux {
                                function = "uart";
                                groups = "uartrxtxgrp";
                        };
                };
        };
};