Part Number: AM4379
Hello,
I'm not so experienced with Linux and AM4379 processor but I would like to add support for DMA on MMC...
I did some research and we are using kernel 4.14.71 with omap_hsmmc driver, and eMMC and SD card access works fine...
Device tree configuration is following:
/******************************************************************************
* MMC
*****************************************************************************/
mmc1_pins_default: mmc1_pins_default {
pinctrl-single,pins = <
0x100 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
0x104 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
0x0f0 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
0x0f4 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
0x0f8 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
0x0fc ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
>;
};
mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
pinctrl-single,pins = <
0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x104 (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
0x0f0 (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
0x0f4 (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
0x0f8 (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
0x0fc (PIN_INPUT | PULL_DISABLE | MUX_MODE7)
>;
};
mmc2_pins_default: mmc2_pins_default {
pinctrl-single,pins = <
0x80 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (B9) gpmc_csn1.mmc1_clk */
0x84 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (F10) gpmc_csn2.mmc1_cmd */
0x20 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (B10) gpmc_ad8.mmc1_dat0 */
0x24 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (A10) gpmc_ad9.mmc1_dat1 */
0x28 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (F11) gpmc_ad10.mmc1_dat2 */
0x2c ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (D11) gpmc_ad11.mmc1_dat3 */
>;
};
mmc2_pins_sleep: mmc2_pins_sleep {
pinctrl-single,pins = <
0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B10) gpmc_ad8.mmc1_dat0 */
0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A10) gpmc_ad9.mmc1_dat1 */
0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (F11) gpmc_ad10.mmc1_dat2 */
0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (D11) gpmc_ad11.mmc1_dat3 */
0x80 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B9) gpmc_csn1.mmc1_clk */
0x84 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (F10) gpmc_csn2.mmc1_cmd */
>;
};
&mmc1 {
status = "okay";
vmmc-supply = <&evm_v3_3d>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc1_pins_default>;
pinctrl-1 = <&mmc1_pins_sleep>;
cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};
/* eMMC sits on mmc2 */
&mmc2 {
status = "okay"; /* Disable GPMC/NAND when enabling mmc2 */
vmmc-supply = <&evm_v3_3d>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc2_pins_default>;
pinctrl-1 = <&mmc2_pins_sleep>;
ti,non-removable;
};
EDMA configuration
&edma {
ti,edma-xbar-event-map = /bits/ 16 <1 22
2 23>;
};
What would be required to add DMA support for eMMC and SD card?
Is it sufficient to add this two lines in e.g. mmc2 to add support on eMMC or is there something additionally needed?
dmas = <&edma 22
&edma 23>;
dma-names = "tx", "rx";
Thanks
BR
Ivan