Hello,
I have a sitara processor am4376 with a linux OS 4.4.1. I´m using the "MMC Block device driver" together with the "TI OMAP High Speed Multimedia Card Interface support " in the Kernel-config menu.
My device-tree entries are (am4372.dtsi):
mmc1: mmc@48060000 {
compatible = "ti,omap4-hsmmc";
reg = <0x48060000 0x1000>;
ti,hwmods = "mmc1";
ti,dual-volt;
ti,needs-special-reset;
dmas = <&edma 24
&edma 25>;
dma-names = "tx", "rx";
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
....
my_mmc_1_pins_default: my_mmc_1_pins_default {
pinctrl-single,pins = <
0x100 ( PIN_INPUT | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
0x104 ( PIN_OUTPUT | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
0xfc ( PIN_INPUT | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
0x190 ( PIN_INPUT | MUX_MODE4 ) /* (N24) mcasp0_aclkx.mmc0_sdcd */
0x1a0 ( PIN_OUTPUT | MUX_MODE4 ) /* (L23) mcasp0_aclkr.mmc0_sdwp */
0x160 ( PIN_OUTPUT_PULLDOWN | MUX_MODE3 ) /* (R25) spi0_cs1.mmc0_pow */
>;
};
vmmcsd_fixed: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
....
&mmc1 {
status = "okay";
vmmc-supply = <&vmmcsd_fixed>;
voltage-ranges = < 3300 3300 >;
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&my_mmc_1_pins_default>;
};
But during the kernel startup, the init-function "omap_hsmmc_driver_init" says:
omap_hsmmc 48060000.mmc: could not find pctldev for node /ocp/pinmux@4a003400/my_mmc_1_pins_default, deferring probe
With my hardware-debugger I can see, that the registers of the mmc-card are changing and showing me the correct status, if I plug and unplug the mmc-card.
What is the use of the node "pctldev"? And how can I correctly mount this device in linux and run the initialization of the mmc-driver?
Thanks a lot for every answer!