8.1 Intro
i.MX 핀(또는 패드)을 사용하기 전에 원하는 기능을 선택하고 전압 레벨, drive strength, 히스테리시스 등 특성에 대한 올바른 값을 선택하십시오. IOMUX 컨트롤러에서 레지스터 세트를 구성할 수 있습니다.
각 핀에 대한 자세한 내용은 " External Signals and Pin Multiplexing" 장을 참조하고, IOMUX 컨트롤러 블록에 대한 내용은 SoC Application References Manual의 " IOMUX Controller (IOMUXC)"를 참조하세요.
8.1.1 Information for setting IOMUX controller registers
IOMUX 컨트롤러에는 i.MX 6Dual/6Quad/6DualLite/6Solo/6SoloX/6 SoloLite/6UltraLite/7Dual 레지스터에 영향을 미치는 4개의 레지스터 세트가 포함되어 있습니다.
• 범용 레지스터(IOMUUXC_GPRx): PLL 주파수, 전압 및 기타 범용 세트를 제어하는 레지스터로 구성됩니다.
• "Daisy Chain" control 레지스터(IOMUXC_<Instance_port>_SELECT_INPUT): 둘 이상의 패드가 모듈의 입력을 구동할 수 있는 경우, 모듈에 대한 입력 경로를 제어합니다.
• MUX 제어 레지스터(패드 모드 변경):
* 패드의 8가지 기능(ALT 모드라고도 함) 중 어떤 기능을 사용할지 선택하십시오.
* 다음 레지스터 중 하나를 사용하여 패드 기능을 개별적으로 또는 그룹별로 설정합니다.
– IOMUXC_SW_MUX_CTL_PAD_<PAD NAME>
– IOMUXC_SW_MUX_CTL_GRP_<GROUP NAME>
• 패드 제어 레지스터(패드 특성 변경):
* 다음 레지스터 중 하나를 사용하여 개별적으로 또는 그룹별로 패드 특성을 설정하십시오.
– IOMUXC_SW_PAD_CTL_PAD_<PAD_NAME>
– IOMUXC_SW_PAD_CTL_GRP_<GROUP NAME>
* 패드 특성은 다음과 같습니다.
– SRE(1비트 슬루율 제어): 슬루율 제어 비트; FAST/SLOW 슬루율 출력 중에서 선택합니다. 고주파수 설계에는 빠른 슬루율이 사용됩니다.
– DSE(2비트 drive strength 제어): 드라이브 강도 제어 비트; 드라이브 강도(낮음, 중간, 높음 또는 최대)를 선택합니다.
– ODE(1비트 오픈 드레인 제어): 오픈 드레인 활성화 비트; 오픈 드레인 또는 CMOS 출력을 선택합니다.
– HYS(1비트 히스테리시스 제어): 패드가 입력일 때 CMOS 또는 슈미트 트리거 중에서 선택합니다.
– PUS(2비트 풀업/다운 구성 값): 풀업 또는 다운과 해당 값을 선택합니다.
– PUE(1비트 pull/keep 선택): 풀업 또는 키퍼 중에서 선택합니다. 키퍼 회로는 핀이 더 이상 구동되지 않을 때 핀이 마지막 로직 상태를 유지하도록 도와줍니다.
– PKE(1비트 풀업, 풀다운 또는 키퍼 기능 활성화/비활성화): 풀업, 풀다운 또는 키퍼를 활성화 또는 비활성화합니다.
– DDR_MODE_SEL(1비트 ddr_mode 제어): DDR 메모리를 인터페이스할 때 필요합니다.
– DDR_INPUT(1비트 ddr_input 제어): DDR 메모리를 인터페이스할 때 필요합니다.
8.1. 2 Using IOMUX in the Device Tree - example
다음 예에서는 장치 트리에서 IOMUX를 사용하는 방법을 보여줍니다.
usdhc@0219c000 { /* uSDHC4 */
fsl,card-wired;
vmmc-supply = <®_3p3v>;
status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc4_1>;
};
iomuxc@020e0000 {
compatible = "fsl,imx6q-iomuxc"; reg = <0x020e0000 0x4000>;
/* shared pinctrl settings */
usdhc4 {
pinctrl_usdhc4_1: usdhc4grp-1 {
fsl,pins = <
MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
>;
};
}; ....
};
추가 세부사항을 아래에서 확인하세요:
• Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
• Documentation/devicetree/bindings/pinctrl/fsl,imx6*-pinctrl.txt
• Documentation/devicetree/bindings/pinctrl/fsl,imx7*-pinctrl.txt
• Documentation/devicetree/bindings/pinctrl/fsl,imx8qm-pinctrl.txt
• Documentation/devicetree/bindings/pinctrl/fsl,imx8qxp-pinctrl.txt
'SoC : : Architecture > : : i.MX' 카테고리의 다른 글
i.MX 9 BSP Porting Guide - Adding SDHC (0) | 2024.04.30 |
---|---|
i.MX 9 BSP Porting Guide - UART (0) | 2024.04.30 |
i.MX 9 BSP Porting Guide - Memory Assignment (0) | 2024.04.30 |
i.MX 9 BSP Porting Guide - Configuring Arm Trusted Firmware (0) | 2024.04.30 |
i.MX 9 BSP Porting Guide - Configuring OP-TEE (0) | 2024.04.30 |