요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Pin-controller driver for the Marvell Berlin SoCs
Pin control registers are part of both chip controller and system
controller register sets. Pin controller nodes should be a sub-node of
either the chip controller or system controller node. The pins
controlled are organized in groups, so no actual pin information is
needed.
A pin-controller node should contain subnodes representing the pin group
configurations, one per function. Each subnode has the group name and
the muxing function used.
Be aware the Marvell Berlin datasheets use the keyword 'mode' for what
is called a 'function' in the pin-controller subsystem.
Required properties:
- compatible: should be one of:
"marvell,berlin2-soc-pinctrl",
"marvell,berlin2-system-pinctrl",
"marvell,berlin2cd-soc-pinctrl",
"marvell,berlin2cd-system-pinctrl",
"marvell,berlin2q-soc-pinctrl",
"marvell,berlin2q-system-pinctrl",
"marvell,berlin4ct-avio-pinctrl",
"marvell,berlin4ct-soc-pinctrl",
"marvell,berlin4ct-system-pinctrl",
"syna,as370-soc-pinctrl"
Required subnode-properties:
- groups: a list of strings describing the group names.
- function: a string describing the function used to mux the groups.
Example:
sys_pinctrl: pin-controller {
compatible = "marvell,berlin2q-system-pinctrl";
uart0_pmux: uart0-pmux {
groups = "GSM12";
function = "uart0";
};
};
&uart0 {
pinctrl-0 = <&uart0_pmux>;
pinctrl-names = "default";
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Marvell Berlin pin controller
1-15Berlin SoC의 pin control register는 chip controller와 system controller register set 양쪽에 들어 있습니다. 따라서 pin controller 노드는 둘 중 하나의 하위 노드여야 합니다.
제어되는 pin은 group으로 구성되므로 개별 pin 정보가 필요하지 않습니다. Pin-controller 노드는 function마다 pin group configuration 하위 노드 하나를 가지며 각 하위 노드는 group 이름과 사용할 mux function을 지정합니다.
Marvell Berlin datasheet에서 `mode`라고 부르는 항목은 pin-controller subsystem의 `function`과 같습니다.
Berlin 필수 속성
16-32`compatible`은 Berlin2·Berlin2CD·Berlin2Q의 SoC/system controller, Berlin4CT의 AVIO/SoC/system controller 또는 Synaptics AS370 SoC에 맞는 다음 문자열 가운데 하나여야 합니다.
"marvell,berlin2-soc-pinctrl",
"marvell,berlin2-system-pinctrl",
"marvell,berlin2cd-soc-pinctrl",
"marvell,berlin2cd-system-pinctrl",
"marvell,berlin2q-soc-pinctrl",
"marvell,berlin2q-system-pinctrl",
"marvell,berlin4ct-avio-pinctrl",
"marvell,berlin4ct-soc-pinctrl",
"marvell,berlin4ct-system-pinctrl",
"syna,as370-soc-pinctrl"
하위 노드의 `groups`는 group 이름 문자열 목록이고 `function`은 이 group들을 mux할 function 문자열입니다.
Berlin UART0 예제
33-47예제 system pin controller는 `GSM12` group을 `uart0` function으로 mux하고 UART0 consumer가 이를 default pinctrl 상태로 참조합니다.
sys_pinctrl: pin-controller {
compatible = "marvell,berlin2q-system-pinctrl";
uart0_pmux: uart0-pmux {
groups = "GSM12";
function = "uart0";
};
};
&uart0 {
pinctrl-0 = <&uart0_pmux>;
pinctrl-names = "default";
};
요약과 해설
berlin,pinctrl.txt:1-47Datasheet mode와 pinctrl function의 대응을 설명합니다.