요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Broadcom NSP (Northstar plus) IOMUX Controller
The NSP IOMUX controller supports group based mux configuration. In
addition, certain pins can be muxed to GPIO function individually.
Required properties:
- compatible:
Must be "brcm,nsp-pinmux"
- reg:
Should contain the register physical address and length for each of
GPIO_CONTROL0, GP_AUX_SEL and IPROC_CONFIG IOMUX registers
Properties in subnodes:
- function:
The mux function to select
- groups:
The list of groups to select with a given function
For more details, refer to
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
For example:
pinmux: pinmux@1803f1c0 {
compatible = "brcm,nsp-pinmux";
reg = <0x1803f1c0 0x04>,
<0x18030028 0x04>,
<0x1803f408 0x04>;
pinctrl-names = "default";
pinctrl-0 = <&pwm>, <&gpio_b>, <&nand_sel>;
pwm: pwm {
function = "pwm";
groups = "pwm0_grp", "pwm1_grp";
};
gpio_b: gpio_b {
function = "gpio_b";
groups = "gpio_b_0_grp", "gpio_b_1_grp";
};
nand_sel: nand_sel {
function = "nand";
groups = "nand_grp";
};
};
List of supported functions and groups in Northstar Plus:
"spi": "spi_grp"
"i2c": "i2c_grp"
"mdio": "mdio_grp"
"pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"
"gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp"
"uart1": "uart1_grp"
"uart2": "uart2_grp"
"synce": "synce_grp"
"sata_led_grps": "sata0_led_grp", "sata1_led_grp"
"xtal_out": "xtal_out_grp"
"sdio": "sdio_pwr_grp", "sdio_1p8v_grp"
"switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp"
"nand": "nand_grp"
"emmc": "emmc_grp"
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Broadcom NSP IOMUX 속성
1-22Broadcom NSP(Northstar Plus) IOMUX controller는 group 기반 mux 구성을 지원합니다. 일부 pin은 개별적으로 GPIO function에 mux할 수도 있습니다.
필수 `compatible` 값은 `brcm,nsp-pinmux`입니다. `reg`에는 `GPIO_CONTROL0`, `GP_AUX_SEL`, `IPROC_CONFIG` IOMUX register 각각의 물리 주소와 길이가 들어가야 합니다.
하위 노드의 `function`은 선택할 mux function을 지정하고 `groups`는 그 function으로 선택할 group 목록을 지정합니다. 자세한 공통 규칙은 `Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt`를 따릅니다.
NSP PWM·GPIO·NAND 예제
23-49예제는 세 register 영역을 가진 IOMUX controller에서 PWM group 두 개, GPIO B group 두 개, NAND group을 기본 pinctrl 상태로 선택합니다.
pinmux: pinmux@1803f1c0 {
compatible = "brcm,nsp-pinmux";
reg = <0x1803f1c0 0x04>,
<0x18030028 0x04>,
<0x1803f408 0x04>;
pinctrl-names = "default";
pinctrl-0 = <&pwm>, <&gpio_b>, <&nand_sel>;
pwm: pwm {
function = "pwm";
groups = "pwm0_grp", "pwm1_grp";
};
gpio_b: gpio_b {
function = "gpio_b";
groups = "gpio_b_0_grp", "gpio_b_1_grp";
};
nand_sel: nand_sel {
function = "nand";
groups = "nand_grp";
};
};
Northstar Plus 지원 function과 group
50-79Northstar Plus가 지원하는 SPI, I2C, MDIO, PWM, GPIO B, UART, SyncE, SATA LED, crystal output, SDIO, switch LED, NAND, eMMC function과 대응 group의 전체 목록입니다.
"spi": "spi_grp"
"i2c": "i2c_grp"
"mdio": "mdio_grp"
"pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"
"gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp"
"uart1": "uart1_grp"
"uart2": "uart2_grp"
"synce": "synce_grp"
"sata_led_grps": "sata0_led_grp", "sata1_led_grp"
"xtal_out": "xtal_out_grp"
"sdio": "sdio_pwr_grp", "sdio_1p8v_grp"
"switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp"
"nand": "nand_grp"
"emmc": "emmc_grp"
요약과 해설
brcm,nsp-pinmux.txt:1-79세 IOMUX register 영역, function/group 구성법, 지원 peripheral 목록을 함께 설명합니다.