05-05-2021, 04:50 PM
Attempting to enable the third mmc port in 4 bit mode with little progress. I enabled it via dts & disabled the spi0 port which shares the same pins. The system comes up, sees the peripheral.. but thats about as far as I can get.
I pulled off the RTK8189ES module and soldered my peripheral in its place and it works fine.
Some details...
dmesg log w/errors
[ 1.377523] sunxi-mmc 1c11000.mmc: initialized, max. request size: 16384 KB
[ 1.404182] mmc2: new high speed SDIO card at address 0001
[ 17.998911] sunxi-mmc 1c11000.mmc: data error, sending stop command
[ 18.005356] my_driver mmc2:0001:2: sdio readl failed -110
changes to sun8i-v3s.dtsi
mmc2: mmc@1c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>,
<&ccu CLK_MMC2>,
<&ccu CLK_MMC2_OUTPUT>,
<&ccu CLK_MMC2_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC2>;
reset-names = "ahb";
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc2_pins: mmc2-pins {
pins = "PC0", "PC1", "PC3", "PC4",
"PC5", "PC6";
function = "mmc2";
drive-strength = <30>;
bias-pull-up;
};
changes to sun8i-s3-pinecube.dts
&mmc2 {
vmmc-supply = <®_dcdc3>;
bus-width = <4>;
non-removable;
status = "okay";
};
/*
&spi0 {
status = "okay";
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,w25q128", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
};
};
*/
I pulled off the RTK8189ES module and soldered my peripheral in its place and it works fine.
Some details...
dmesg log w/errors
[ 1.377523] sunxi-mmc 1c11000.mmc: initialized, max. request size: 16384 KB
[ 1.404182] mmc2: new high speed SDIO card at address 0001
[ 17.998911] sunxi-mmc 1c11000.mmc: data error, sending stop command
[ 18.005356] my_driver mmc2:0001:2: sdio readl failed -110
changes to sun8i-v3s.dtsi
mmc2: mmc@1c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>,
<&ccu CLK_MMC2>,
<&ccu CLK_MMC2_OUTPUT>,
<&ccu CLK_MMC2_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC2>;
reset-names = "ahb";
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc2_pins: mmc2-pins {
pins = "PC0", "PC1", "PC3", "PC4",
"PC5", "PC6";
function = "mmc2";
drive-strength = <30>;
bias-pull-up;
};
changes to sun8i-s3-pinecube.dts
&mmc2 {
vmmc-supply = <®_dcdc3>;
bus-width = <4>;
non-removable;
status = "okay";
};
/*
&spi0 {
status = "okay";
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,w25q128", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
};
};
*/