NXP i.MX SoC Family/i.MX BSP Porting Guide

i.MX BSP Porting Guide - Adding SDHC

까마귀75 2022. 7. 6. 11:10
728x90
반응형
정보
IMXBSPPG

Rev. LF5.15.5_1.0.0, 31 March 2022를 기준으로 작성

 

Chapter 10 Adding SDHC

10.1 Introduction

uSDHC에는 14개의 해당 I/O 신호가 있다. 아래 목록은 해당 I/O 신호를 설명한다.

 

Signal overview (신호 개요)

  • SD_CLKMMC, SD, SDIO 카드를 구동하는 데 사용되는 내부에서 생성되는 clock이다.
  • CMD I/O는 카드로 명령을 보내고 카드에서 응답을 받는 데 사용된다. 8개의 데이터 라인(DATA7 - DATA0)은 SDHC와 카드 사이에 데이터 전송을 수행하는 데 사용된다.
  • SD_CD#SD_WP는 소켓에서 직접 라우트되는 카드 감지(card detection)와 쓰기 보호(write protection) 신호이다. 이 두 신호는 액티브 로우(0)이다. SD_CD# 신호가 low이면 카드가 삽입되어 있는 것이고, SD_WPhigh이면 쓰기 방지 스위치가 활성화되어 있음을 의미한다.
  • SD_LCTLSD 인터페이스가 사용 중임을 나타내기 위해 외부 LED를 구동하는 데 사용되는 출력 신호이다.
  • SD_RST_NMMC 카드를 재설정하는 데 사용되는 출력 신호이다. 이것은 카드에서 지원되어야 한다.
  • SD_VSELECT는 외부 전원 공급 장치의 전압을 변경하는 데 사용되는 출력 신호이다. SD_CD#, SD_WP, SD_LCTL, SD_RST_N, SD_VSELECT는 모두 시스템 구현을 위한 션택 사항이다. 4비트 데이터 전송을 지원하기 위해 uSDHC가 필요한 경우, DAT7 - DAT4도 선택 사항이고 높은 전압에 연결될 수 있다.

 

Adding uSDHC support in the device tree

 

아래는 디바이스 트리에 uSDHC 지원을 추가하는 예이다 :

usdhc@02194000 { /* uSDHC2 */ 
			compatible = "fsl,imx6q-usdhc";
            reg = <0x02194000 0x4000>;
            interrupts = <0 23 0x04>;
            clocks = <&clks 164>, <&clks 164>, <&clks 164>;
            clock-names = "ipg", "ahb", "per";
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_usdhc2_1>;
            cd-gpios = <&gpio2 2 0>;
            wp-gpios = <&gpio2 3 0>;
            bus-width = <8>;
            no-1-8-v;
            keep-power-in-suspend;
            enable-sdio-wakeup;
            status = "okay";
};
usdhc1: usdhc@02190000 {
			compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
            reg = <0x02190000 0x4000>; 
            interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 
            clocks = <&clks IMX6UL_CLK_USDHC1>, <&clks IMX6UL_CLK_USDHC1>, <&clks IMX6UL_CLK_USDHC1>;
            clock-names = "ipg", "ahb", "per";
            bus-width = <4>; status = "disabled";
      };

자세한 내용은 아래를 참조한다 :

  • linux/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt의 바인딩 문서
  • arch/arm/boot/dts/imx6ul.dtsi
  • arch/arm/boot/dts/imx6ul-14x14-evk.dts
  • arch/arm/boot/dts/imx6qdl.dtsi
  • arch/arm/boot/dts/imx6qdl-sabresd.dtsi

 

Support of SD3.0

 

SD3.0은 신호 전압에 3.3 V1.8 V가 필요하다. 전압 선택은 플랫폼에서 구현해야 한다.

 

Support of SDIO

 

대부분의 상황에서 SDIOSD/MMC 메모리 카드보다 더 많은 전력을 필요로 한다. SDIO를 사용하는 동안 전원 공급 장치가 SD 슬롯에 있는지 확인하거나, 대신 SDIO에 외부 전원을 공급한다.

 

728x90
반응형