hi there,
I am trying to modify the i.mx28 dts file to use ssp2 for connecting to a broadcom wifi chip soldering on the same board as it. From peeping at other config files posted I
I currently have:
ssp2: ssp@80014000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc2_4bit_pins_a &mmc2_cd_cfg &mmc2_sck_cfg>;
bus-width = <4>;
non-removable;
vmmc-supply = <®_vddio_sd2>;
status = "okay";
};
with the mmc2 definitions as:
mmc2_4bit_pins_a: mmc2-4bit@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_SSP0_DATA4__SSP2_D0
MX28_PAD_SSP1_SCK__SSP2_D1
MX28_PAD_SSP1_CMD__SSP2_D2
MX28_PAD_SSP0_DATA5__SSP2_D3
MX28_PAD_SSP0_DATA6__SSP2_CMD
MX28_PAD_SSP0_DATA7__SSP2_SCK
>;
fsl,drive-strength = <MXS_DRIVE_8mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_ENABLE>;
};
mmc2_cd_cfg: mmc2-cd-cfg {
fsl,pinmux-ids = <
MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
mmc2_sck_cfg: mmc2-sck-cfg {
fsl,pinmux-ids = <
MX28_PAD_SSP0_DATA7__SSP2_SCK
>;
fsl,drive-strength = <MXS_DRIVE_12mA>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
under regulators, I have:
reg_vddio_sd2: vddio-sd2 {
compatible = "regulator-fixed";
regulator-name = "vddio-sd2";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio2 14 0>;
startup-delay-us = <70000>;
enable-active-high;
};
which controls the wifi chip enable.
which I believe matches up to what I have on the board.
On ssp0, I have an sd card to boot the kernel image. With SSP2 configured as such, the system gets a kernel panic, it seems to be confused about mmc0 versus mmc2:
.073406] VFS: Cannot open root device "mmcblk0p3" or unknown-block(179,3): error -30
[ 2.081616] Please append a correct "root=" boot option; here are the available partitions:
[ 2.090040] b300 7782400 mmcblk0 driver: mmcblk
[ 2.095570] b301 1024 mmcblk0p1 00000000-01
[ 2.100936] b302 2048 mmcblk0p2 00000000-02
[ 2.106441] b303 7778304 mmcblk0p3 00000000-03
Without SSP2 configured, the system boots from SSP0 fine. Perhaps I need to change my uboot options.
Any thoughts on how to proceed?
thanks!
-Tyler
Hi Tyler,
I found this answer from the experts.
When you boot with ssp2 and ssp0 enabled, please check the kernel logs and see what is the mmc device node that it uses.
Most likely you need to adapt the kernel command line to mmcroot=/dev/mmcblk1p3 for example
Regards,
Alejandro