diff --git a/arch/arm/boot/dts/imx6ul-wirenboard61.dts b/arch/arm/boot/dts/imx6ul-wirenboard61.dts index 7f177ebfe5026..280e293047762 100644 --- a/arch/arm/boot/dts/imx6ul-wirenboard61.dts +++ b/arch/arm/boot/dts/imx6ul-wirenboard61.dts @@ -408,6 +408,9 @@ cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; + dmas = <&sdma 3 7 1>, <&sdma 4 7 2>; + dma-names = "rx", "tx"; + status = "disabled"; }; diff --git a/arch/arm/configs/imx6_wirenboard_defconfig b/arch/arm/configs/imx6_wirenboard_defconfig index f0007b12931d4..9081eb7fb5cae 100644 --- a/arch/arm/configs/imx6_wirenboard_defconfig +++ b/arch/arm/configs/imx6_wirenboard_defconfig @@ -41,7 +41,6 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_ARM_PSCI=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y -CONFIG_HIGHMEM=y CONFIG_CMA=y CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" CONFIG_KEXEC=y @@ -431,6 +430,7 @@ CONFIG_MMC=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SPI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index deb782f6556c1..a6e34f05d44d4 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -1307,12 +1307,23 @@ static int spi_imx_remove(struct platform_device *pdev) { struct spi_master *master = platform_get_drvdata(pdev); struct spi_imx_data *spi_imx = spi_master_get_devdata(master); + int ret; spi_bitbang_stop(&spi_imx->bitbang); + ret = clk_enable(spi_imx->clk_per); + if (ret) + return ret; + + ret = clk_enable(spi_imx->clk_ipg); + if (ret) { + clk_disable(spi_imx->clk_per); + return ret; + } + writel(0, spi_imx->base + MXC_CSPICTRL); - clk_unprepare(spi_imx->clk_ipg); - clk_unprepare(spi_imx->clk_per); + clk_disable_unprepare(spi_imx->clk_ipg); + clk_disable_unprepare(spi_imx->clk_per); spi_imx_sdma_exit(spi_imx); spi_master_put(master);