emmc
emmc驱动在drivers/mmc/host/dw_mmc-exynos.c
static const struct of_device_id dw_mci_exynos_match[] = { { .compatible
= "samsung,exynos4412-dw-mshc", .data = &exynos_drv_data,
}, { .compatible = "samsung,exynos5250-dw-mshc",
.data = &exynos_drv_data, }, { .compatible =
"samsung,exynos5420-dw-mshc", .data = &exynos_drv_data,
}, { .compatible = "samsung,exynos5420-dw-mshc-smu",
.data = &exynos_drv_data, }, { .compatible = "samsung,exynos7-dw-mshc",
.data = &exynos_drv_data, }, { .compatible =
"samsung,exynos7-dw-mshc-smu", .data = &exynos_drv_data,
}, {}, };
在vim arch/arm/boot/dts/exynos4412.dtsi
mshc_0: mmc@12550000 { compatible =
"samsung,exynos4412-dw-mshc"; reg = <0x12550000 0x1000>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>; #size-cells = <0>;
fifo-depth = <0x80>; clocks =
<&clock CLK_SDMMC4>, <&clock CLK_SCLK_MMC4>; clock-names
= "biu", "ciu"; status = "disabled"; };
而参考exynos4412-origen.dts
&mshc_0 { pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
pinctrl-names = "default"; status = "okay"; broken-cd;
card-detect-delay = <200>; samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <2 3>; samsung,dw-mshc-ddr-timing = <1 2>;
bus-width = <8>; cap-mmc-highspeed; };
因此我们在exynos4412-tiny4412.dts也添加如上内容
此外,make menuconfig配置添加
Device Drivers ---> <*> MMC/SD/SDIO card support ---> <*> MMC
block device driver (NEW) <*> Synopsys DesignWare Memory Card
Interface <*> Exynos specific extensions for Synopsys DW Memory
Card Interface
启动后
/ # fdisk -l Disk /dev/mmcblk0: 15.7 GB, 15707668480 bytes 255 heads, 63
sectors/track, 1909 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/mmcblk0p1 20 1910 15184896 c Win95
FAT32 (LBA) Disk /dev/mmcblk1: 7818 MB, [ 181.275363] dma-pl330 12680000.pdma:
Reset Channel-1 CS-20000f FTC-20000 83 Linux Partition table entries are not in
disk order / # ls /dev/mmcblk0 /dev/mmcblk0
今日推荐