요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Lantiq FALCON pinmux controller
Required properties:
- compatible: "lantiq,pinctrl-falcon"
- reg: Should contain the physical address and length of the gpio/pinmux
register range
Please refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning of the
phrase "pin configuration node".
Lantiq's pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for a
pin, a group, or a list of pins or groups. This configuration can include the
mux function to select on those group(s), and two pin configuration parameters:
pull-up and open-drain
The name of each subnode is not important as long as it is unique; all subnodes
should be enumerated and processed purely based on their content.
Each subnode only affects those parameters that are explicitly listed. In
other words, a subnode that lists a mux function but no pin configuration
parameters implies no information about any pin configuration parameters.
Similarly, a pin subnode that describes a pullup parameter implies no
information about e.g. the mux function.
We support 2 types of nodes.
Definition of mux function groups:
Required subnode-properties:
- lantiq,groups : An array of strings. Each string contains the name of a group.
Valid values for these names are listed below.
- lantiq,function: A string containing the name of the function to mux to the
group. Valid values for function names are listed below.
Valid values for group and function names:
mux groups:
por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c,
jtag, slic, pcm, asc1
functions:
rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm
Definition of pin configurations:
Required subnode-properties:
- lantiq,pins : An array of strings. Each string contains the name of a pin.
Valid values for these names are listed below.
Optional subnode-properties:
- lantiq,pull: Integer, representing the pull-down/up to apply to the pin.
0: none, 1: down
- lantiq,drive-current: Boolean, enables drive-current
- lantiq,slew-rate: Boolean, enables slew-rate
Example:
pinmux0 {
compatible = "lantiq,pinctrl-falcon";
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
state_default: pinmux {
asc0 {
lantiq,groups = "asc0";
lantiq,function = "asc";
};
ntr {
lantiq,groups = "ntr8k";
lantiq,function = "ntr";
};
i2c {
lantiq,groups = "i2c";
lantiq,function = "i2c";
};
hrst {
lantiq,groups = "hrst";
lantiq,function = "rst";
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Lantiq FALCON controller 속성
1-10Lantiq FALCON pinmux controller의 필수 `compatible` 값은 `lantiq,pinctrl-falcon`입니다. `reg`에는 GPIO/pinmux register 범위의 물리 주소와 길이를 지정합니다.
Client device가 사용하는 공통 pinctrl binding과 `pin configuration node`의 의미는 같은 directory의 `pinctrl-bindings.txt`를 참조합니다.
FALCON configuration container
11-25Lantiq pin configuration node는 임의 개수의 하위 노드를 담는 container입니다. 각 하위 노드는 pin, group, pin 목록 또는 group 목록에 원하는 configuration을 나타냅니다. 구성에는 group의 mux function과 pull-up, open-drain pin parameter가 포함될 수 있습니다.
하위 노드 이름은 고유하기만 하면 중요하지 않으며 내용만으로 열거하고 처리해야 합니다. 각 하위 노드는 명시한 parameter에만 영향을 줍니다. Mux function만 나열하면 pin configuration parameter는 지정하지 않은 것이고, pull-up만 설명하면 mux function에는 아무 정보도 주지 않은 것입니다.
FALCON mux group과 function
26-45첫 노드 유형은 mux function group을 정의합니다. 필수 `lantiq,groups`는 group 이름 문자열 배열이고, 필수 `lantiq,function`은 해당 group으로 mux할 function 이름 문자열입니다.
유효한 FALCON mux group과 function의 전체 목록입니다.
mux groups:
por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c,
jtag, slic, pcm, asc1
functions:
rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm
FALCON pin configuration
46-58둘째 노드 유형은 pin configuration을 정의합니다. 필수 `lantiq,pins`는 pin 이름 문자열 배열입니다.
선택 `lantiq,pull`은 pin의 pull-down/up을 나타내는 정수로 0은 none, 1은 down입니다. Boolean `lantiq,drive-current`와 `lantiq,slew-rate`는 각각 drive current와 slew rate를 활성화합니다.
FALCON 기본 pinmux 예제
59-83예제의 기본 상태는 ASC0, NTR 8kHz, I2C, hardware reset group을 각각 `asc`, `ntr`, `i2c`, `rst` function으로 mux합니다.
pinmux0 {
compatible = "lantiq,pinctrl-falcon";
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
state_default: pinmux {
asc0 {
lantiq,groups = "asc0";
lantiq,function = "asc";
};
ntr {
lantiq,groups = "ntr8k";
lantiq,function = "ntr";
};
i2c {
lantiq,groups = "i2c";
lantiq,function = "i2c";
};
hrst {
lantiq,groups = "hrst";
lantiq,function = "rst";
};
};
};
요약과 해설
lantiq,pinctrl-falcon.txt:1-83Content 기반 하위 노드 처리와 ASC·NTR·I2C·reset 기본 상태를 정리합니다.