요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Marvell SoC pinctrl core driver for mpp
The pinctrl driver enables Marvell SoCs to configure the multi-purpose pins
(mpp) to a specific function. For each SoC family there is a SoC specific
driver using this core driver.
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".
A Marvell SoC pin configuration node is a node of a group of pins which can
be used for a specific device or function. Each node requires one or more
mpp pins or group of pins and a mpp function common to all pins.
Required properties for pinctrl driver:
- compatible: "marvell,<soc>-pinctrl"
Please refer to each marvell,<soc>-pinctrl.txt binding doc for supported SoCs.
Required properties for pin configuration node:
- marvell,pins: string array of mpp pins or group of pins to be muxed.
- marvell,function: string representing a function to mux to for all
marvell,pins given in this pin configuration node. The function has to be
common for all marvell,pins. Please refer to marvell,<soc>-pinctrl.txt for
valid pin/pin group names and available function names for each SoC.
Examples:
uart1: serial@12100 {
compatible = "ns16550a";
reg = <0x12100 0x100>;
reg-shift = <2>;
interrupts = <7>;
pinctrl-0 = <&pmx_uart1_sw>;
pinctrl-names = "default";
};
pinctrl: pinctrl@d0200 {
compatible = "marvell,dove-pinctrl";
reg = <0xd0200 0x14>, <0xd0440 0x04>, <0xd802c 0x08>;
pmx_uart1_sw: pmx-uart1-sw {
marvell,pins = "mpp_uart1";
marvell,function = "uart1";
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Marvell MPP pinctrl core
1-14Pinctrl driver는 Marvell SoC의 multi-purpose pin(MPP)을 특정 function으로 구성합니다. 각 SoC family에는 이 core driver를 사용하는 SoC별 driver가 있습니다.
Client device가 사용하는 공통 pinctrl binding과 "pin configuration node"의 의미는 같은 directory의 `pinctrl-bindings.txt`를 참조합니다.
Marvell SoC pin configuration node는 특정 device 또는 function에 사용할 pin group을 나타냅니다. 각 node에는 하나 이상의 MPP pin 또는 pin group과 모든 pin에 공통인 MPP function이 필요합니다.
Controller와 pin configuration node 속성
15-25Pinctrl driver의 필수 `compatible` 형식은 `marvell,<soc>-pinctrl`입니다. 지원 SoC는 각 `marvell,<soc>-pinctrl.txt` binding 문서에서 확인합니다.
Pin configuration node의 필수 `marvell,pins`는 mux할 MPP pin 또는 pin group 이름의 문자열 배열입니다. `marvell,function`은 이 node의 모든 `marvell,pins`에 공통으로 mux할 function 이름이며, 유효한 pin·group·function 이름은 SoC별 문서를 따릅니다.
UART1과 Dove pinctrl 예제
26-46UART1 client가 default pinctrl state로 `pmx_uart1_sw`를 참조하고, Dove pinctrl node가 `mpp_uart1` group을 `uart1` function으로 mux하는 전체 예제입니다.
uart1: serial@12100 {
compatible = "ns16550a";
reg = <0x12100 0x100>;
reg-shift = <2>;
interrupts = <7>;
pinctrl-0 = <&pmx_uart1_sw>;
pinctrl-names = "default";
};
pinctrl: pinctrl@d0200 {
compatible = "marvell,dove-pinctrl";
reg = <0xd0200 0x14>, <0xd0440 0x04>, <0xd802c 0x08>;
pmx_uart1_sw: pmx-uart1-sw {
marvell,pins = "mpp_uart1";
marvell,function = "uart1";
};
};
요약과 해설
marvell,mvebu-pinctrl.txt:1-46SoC별 MPP driver가 공유하는 controller 형식과 `marvell,pins`·`marvell,function` 계약을 설명합니다.