← Documents Documentation/devicetree/bindings/pinctrl/cnxt,cx92755-pinctrl.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Conexant Digicolor CX92755 Pin Mapping

CX92755 GPIO controller와 client-select pinmux binding입니다.

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

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

1. 요약·해설

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

요약과 해설

cnxt,cx92755-pinctrl.txt:1-86

GPIO cell 형식, pin group 이름, 네 가지 mux function과 UART0 연결을 정리합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Conexant Digicolor CX92755 General Purpose Pin Mapping
2
3 This document describes the device tree binding of the pin mapping hardware
4 modules in the Conexant Digicolor CX92755 SoCs. The CX92755 in one of the
5 Digicolor series of SoCs.
6
7 === Pin Controller Node ===
8
9 Required Properties:
10
11 - compatible: Must be "cnxt,cx92755-pinctrl"
12 - reg: Base address of the General Purpose Pin Mapping register block and the
13 size of the block.
14 - gpio-controller: Marks the device node as a GPIO controller.
15 - #gpio-cells: Must be <2>. The first cell is the pin number and the
16 second cell is used to specify flags. See include/dt-bindings/gpio/gpio.h
17 for possible values.
18
19 For example, the following is the bare minimum node:
20
21 pinctrl: pinctrl@f0000e20 {
22 compatible = "cnxt,cx92755-pinctrl";
23 reg = <0xf0000e20 0x100>;
24 gpio-controller;
25 #gpio-cells = <2>;
26 };
27
28 As a pin controller device, in addition to the required properties, this node
29 should also contain the pin configuration nodes that client devices reference,
30 if any.
31
32 For a general description of GPIO bindings, please refer to ../gpio/gpio.txt.
33
34 === Pin Configuration Node ===
35
36 Each pin configuration node is a sub-node of the pin controller node and is a
37 container of an arbitrary number of subnodes, called pin group nodes in this
38 document.
39
40 Please refer to the pinctrl-bindings.txt in this directory for details of the
41 common pinctrl bindings used by client devices, including the definition of a
42 "pin configuration node".
43
44 === Pin Group Node ===
45
46 A pin group node specifies the desired pin mux for an arbitrary number of
47 pins. The name of the pin group node is optional and not used.
48
49 A pin group node only affects the properties specified in the node, and has no
50 effect on any properties that are omitted.
51
52 The pin group node accepts a subset of the generic pin config properties. For
53 details generic pin config properties, please refer to pinctrl-bindings.txt
54 and <include/linux/pinctrl/pinconfig-generic.h>.
55
56 Required Pin Group Node Properties:
57
58 - pins: Multiple strings. Specifies the name(s) of one or more pins to be
59 configured by this node. The format of a pin name string is "GP_xy", where x
60 is an uppercase character from 'A' to 'R', and y is a digit from 0 to 7.
61 - function: String. Specifies the pin mux selection. Values must be one of:
62 "gpio", "client_a", "client_b", "client_c"
63
64 Example:
65 pinctrl: pinctrl@f0000e20 {
66 compatible = "cnxt,cx92755-pinctrl";
67 reg = <0xf0000e20 0x100>;
68
69 uart0_default: uart0_active {
70 data_signals {
71 pins = "GP_O0", "GP_O1";
72 function = "client_b";
73 };
74 };
75 };
76
77 uart0: uart@f0000740 {
78 compatible = "cnxt,cx92755-usart";
79 ...
80 pinctrl-0 = <&uart0_default>;
81 pinctrl-names = "default";
82 };
83
84 In the example above, a single pin group configuration node defines the
85 "client select" for the Rx and Tx signals of uart0. The uart0 node references
86 that pin configuration node using the &uart0_default phandle.
87

3. 한국어 전문 번역

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

CX92755 pin controller 노드

1-17

이 문서는 Conexant Digicolor CX92755 SoC의 범용 pin mapping hardware module에 대한 device tree binding을 설명합니다. CX92755는 Digicolor SoC 계열의 한 제품입니다.

필수 `compatible` 값은 `cnxt,cx92755-pinctrl`입니다. `reg`에는 General Purpose Pin Mapping register block의 base address와 크기를 지정합니다.

`gpio-controller`는 노드를 GPIO controller로 표시합니다. `#gpio-cells`는 2여야 하며 첫 cell은 pin 번호, 둘째 cell은 flag입니다. 가능한 flag 값은 `include/dt-bindings/gpio/gpio.h`를 따릅니다.

최소 controller 예제와 client 구성

18-33

다음은 controller를 선언하는 최소 노드입니다. Pin controller로 사용할 때는 이 필수 속성 외에도 client device가 참조할 pin configuration node가 있다면 함께 포함해야 합니다.

pinctrl: pinctrl@f0000e20 {
        compatible = "cnxt,cx92755-pinctrl";
        reg = <0xf0000e20 0x100>;
        gpio-controller;
        #gpio-cells = <2>;
};

일반 GPIO binding은 `../gpio/gpio.txt`를 참조합니다.

Pin configuration과 group 노드

34-54

각 pin configuration node는 pin controller의 하위 노드이며, 이 문서에서 pin group node라고 부르는 임의 개수의 하위 노드를 담는 container입니다.

Client device가 사용하는 공통 pinctrl binding과 `pin configuration node`의 정의는 같은 directory의 `pinctrl-bindings.txt`를 참조합니다.

Pin group node는 임의 개수 pin의 원하는 mux를 지정합니다. 노드 이름은 선택 사항이며 처리에 사용되지 않습니다. 노드에 명시한 속성만 바꾸므로 생략한 속성에는 영향을 주지 않습니다.

이 노드는 generic pin config 속성의 일부를 받습니다. 자세한 내용은 `pinctrl-bindings.txt`와 `include/linux/pinctrl/pinconfig-generic.h`를 참조합니다.

CX92755 pin group 필수 속성

55-63

필수 `pins`는 구성할 하나 이상의 pin 이름을 여러 문자열로 지정합니다. 이름 형식은 `GP_xy`이며 `x`는 대문자 `A`부터 `R`, `y`는 숫자 0부터 7입니다.

필수 `function`은 pin mux 선택 문자열이며 값은 `gpio`, `client_a`, `client_b`, `client_c` 중 하나여야 합니다.

CX92755 UART0 예제

64-86

예제의 단일 pin group configuration node는 UART0 Rx와 Tx 신호의 client select를 `client_b`로 지정합니다. UART0 노드는 `&uart0_default` phandle로 이 구성을 참조합니다.

pinctrl: pinctrl@f0000e20 {
        compatible = "cnxt,cx92755-pinctrl";
        reg = <0xf0000e20 0x100>;

        uart0_default: uart0_active {
                data_signals {
                        pins = "GP_O0", "GP_O1";
                        function = "client_b";
                };
        };
};

uart0: uart@f0000740 {
        compatible = "cnxt,cx92755-usart";
        ...
        pinctrl-0 = <&uart0_default>;
        pinctrl-names = "default";
};