02-25-2016 07:11 AM
02-25-2016 09:45 PM
Sorry that my first post was almost unreadable.
Here again, devicetree, linux boot message and uboot mmc info
sdhci@e0100000 { compatible = "arasan,sdhci-8.9a"; status = "okay"; clock-names = "clk_xin", "clk_ahb"; clocks = <0x1 0x15 0x1 0x20>; interrupt-parent = <0x3>; interrupts = <0x0 0x18 0x4>; reg = <0xe0100000 0x1000>; };
[ 1.081311] Driver 'mmcblk' needs updating - please use bus_type methods
[ 1.087964] sdhci: Secure Digital Host Controller Interface driver
[ 1.094102] sdhci: Copyright(c) Pierre Ossman
[ 1.098430] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.104317] sdhci-arasan e0100000.sdhci: No vmmc regulator found
[ 1.110261] sdhci-arasan e0100000.sdhci: No vqmmc regulator found
[ 1.149241] mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
zynq-uboot> mmc info
Device: zynq_sdhci
Manufacturer ID: 13
OEM: 14e
Name: Q1J54
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 4-bit
03-14-2016 11:43 PM
I don't have a solution for the "Driver 'mmcblk' needs updating" issue.
But the reason why the emmc was not detected is the missing card detector signal. Even if marked as non-removable in devicetree - it seems that this signal is important. So it has to be set fixed to zero.
03-15-2016 08:08 AM
This device-tree node works for me:
sdhci0: sdhci@e0100000 { compatible = "arasan,sdhci-8.9a"; status = "okay"; clock-names = "clk_xin", "clk_ahb"; clocks = <&clkc 21>, <&clkc 32>; interrupt-parent = <&intc>; interrupts = <0 24 4>; reg = <0xe0100000 0x1000>; xlnx,has-cd = <0x1>; xlnx,has-power = <0x0>; xlnx,has-wp = <0x1>; };
10-14-2017 03:08 AM