mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Merge branch 'imx/dt/for-3.5' of git://git.linaro.org/people/shawnguo/linux-2.6.git into next/dt2
Shawn Guo <[email protected]> writes: I chose to base it on Sascha's imx-common-clk series than -rc, because otherwise it will keep patching clock file that has been removed by imx-common-clk series. It also depends on imx-pinctrl pull-request I just sent to be functional. Note: when imx-common-clk and imx-pinctrl get merged together, the following files will have conflicts. But the conflicts should not be so hard to resolve. [arnd: resolved those merge conflicts by pulling pinctrl branch] * imx/dt: (24 commits) ARM: dts: imx53-qsb: enable audio support ARM: dts: imx51-babbage: enable audio support ARM: imx: add audio codec clk lookup for imx53-qsb ARM: imx: add audmux pad setting for imx51-babbage ARM: imx: add more imx5 ssi clocks ARM: dts: imx53-qsb: Add Dialog DA9053 PMIC support ARM: dts: imx6q-sabrelite: add serial2 pinctrl support ARM: dts: imx6q-sabrelite: add sound device imx6q-sabrelite-sgtl5000 ARM: imx6q_sabrelite: clk_register_clkdev cko1 for sgtl5000 ARM: imx6q: add ssi1_ipg clk_lookup ARM: dts: imx6q-sabrelite: add audmux pinctrl support ARM: dts: imx6q-sabrelite: add i2c1 pinctrl support ARM: dts: imx6q-sabrelite: add audmux device ARM: dts: imx6q-sabrelite: add ssi device ARM: dts: imx6q-arm2: add pinctrl state for usdhc ARM: imx6: Add UART2 for low-level debug ARM: imx6q: register phy fixup only when CONFIG_PHYLIB is enabled ARM: imx6q: move imx6q_sabrelite specific code to a dedicated function ARM: dts: imx6q-sabrelite: Add SPI NOR support ARM: dts: Add basic support for imx6q-sabresd ... Pulls in imx/pinctrl and imx/clock as dependencies. Signed-off-by: Arnd Bergmann <[email protected]>
This commit is contained in:
commit
304ea74770
70 changed files with 4445 additions and 8234 deletions
|
|
@ -322,7 +322,8 @@ struct sdma_engine {
|
|||
struct sdma_context_data *context;
|
||||
dma_addr_t context_phys;
|
||||
struct dma_device dma_device;
|
||||
struct clk *clk;
|
||||
struct clk *clk_ipg;
|
||||
struct clk *clk_ahb;
|
||||
struct mutex channel_0_lock;
|
||||
struct sdma_script_start_addrs *script_addrs;
|
||||
};
|
||||
|
|
@ -859,7 +860,8 @@ static int sdma_alloc_chan_resources(struct dma_chan *chan)
|
|||
sdmac->peripheral_type = data->peripheral_type;
|
||||
sdmac->event_id0 = data->dma_request;
|
||||
|
||||
clk_enable(sdmac->sdma->clk);
|
||||
clk_enable(sdmac->sdma->clk_ipg);
|
||||
clk_enable(sdmac->sdma->clk_ahb);
|
||||
|
||||
ret = sdma_request_channel(sdmac);
|
||||
if (ret)
|
||||
|
|
@ -896,7 +898,8 @@ static void sdma_free_chan_resources(struct dma_chan *chan)
|
|||
|
||||
dma_free_coherent(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);
|
||||
|
||||
clk_disable(sdma->clk);
|
||||
clk_disable(sdma->clk_ipg);
|
||||
clk_disable(sdma->clk_ahb);
|
||||
}
|
||||
|
||||
static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
|
||||
|
|
@ -1169,12 +1172,14 @@ static void sdma_load_firmware(const struct firmware *fw, void *context)
|
|||
addr = (void *)header + header->script_addrs_start;
|
||||
ram_code = (void *)header + header->ram_code_start;
|
||||
|
||||
clk_enable(sdma->clk);
|
||||
clk_enable(sdma->clk_ipg);
|
||||
clk_enable(sdma->clk_ahb);
|
||||
/* download the RAM image for SDMA */
|
||||
sdma_load_script(sdma, ram_code,
|
||||
header->ram_code_size,
|
||||
addr->ram_code_start_addr);
|
||||
clk_disable(sdma->clk);
|
||||
clk_disable(sdma->clk_ipg);
|
||||
clk_disable(sdma->clk_ahb);
|
||||
|
||||
sdma_add_scripts(sdma, addr);
|
||||
|
||||
|
|
@ -1216,7 +1221,8 @@ static int __init sdma_init(struct sdma_engine *sdma)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
clk_enable(sdma->clk);
|
||||
clk_enable(sdma->clk_ipg);
|
||||
clk_enable(sdma->clk_ahb);
|
||||
|
||||
/* Be sure SDMA has not started yet */
|
||||
writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
|
||||
|
|
@ -1269,12 +1275,14 @@ static int __init sdma_init(struct sdma_engine *sdma)
|
|||
/* Initializes channel's priorities */
|
||||
sdma_set_channel_priority(&sdma->channel[0], 7);
|
||||
|
||||
clk_disable(sdma->clk);
|
||||
clk_disable(sdma->clk_ipg);
|
||||
clk_disable(sdma->clk_ahb);
|
||||
|
||||
return 0;
|
||||
|
||||
err_dma_alloc:
|
||||
clk_disable(sdma->clk);
|
||||
clk_disable(sdma->clk_ipg);
|
||||
clk_disable(sdma->clk_ahb);
|
||||
dev_err(sdma->dev, "initialisation failed with %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -1313,12 +1321,21 @@ static int __init sdma_probe(struct platform_device *pdev)
|
|||
goto err_request_region;
|
||||
}
|
||||
|
||||
sdma->clk = clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(sdma->clk)) {
|
||||
ret = PTR_ERR(sdma->clk);
|
||||
sdma->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
|
||||
if (IS_ERR(sdma->clk_ipg)) {
|
||||
ret = PTR_ERR(sdma->clk_ipg);
|
||||
goto err_clk;
|
||||
}
|
||||
|
||||
sdma->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
|
||||
if (IS_ERR(sdma->clk_ahb)) {
|
||||
ret = PTR_ERR(sdma->clk_ahb);
|
||||
goto err_clk;
|
||||
}
|
||||
|
||||
clk_prepare(sdma->clk_ipg);
|
||||
clk_prepare(sdma->clk_ahb);
|
||||
|
||||
sdma->regs = ioremap(iores->start, resource_size(iores));
|
||||
if (!sdma->regs) {
|
||||
ret = -ENOMEM;
|
||||
|
|
@ -1426,7 +1443,6 @@ err_alloc:
|
|||
err_request_irq:
|
||||
iounmap(sdma->regs);
|
||||
err_ioremap:
|
||||
clk_put(sdma->clk);
|
||||
err_clk:
|
||||
release_mem_region(iores->start, resource_size(iores));
|
||||
err_request_region:
|
||||
|
|
|
|||
|
|
@ -1715,7 +1715,7 @@ static int __init ipu_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
/* Make sure IPU HSP clock is running */
|
||||
clk_enable(ipu_data.ipu_clk);
|
||||
clk_prepare_enable(ipu_data.ipu_clk);
|
||||
|
||||
/* Disable all interrupts */
|
||||
idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_1);
|
||||
|
|
@ -1747,7 +1747,7 @@ static int __init ipu_probe(struct platform_device *pdev)
|
|||
err_idmac_init:
|
||||
err_attach_irq:
|
||||
ipu_irq_detach_irq(&ipu_data, pdev);
|
||||
clk_disable(ipu_data.ipu_clk);
|
||||
clk_disable_unprepare(ipu_data.ipu_clk);
|
||||
clk_put(ipu_data.ipu_clk);
|
||||
err_clk_get:
|
||||
iounmap(ipu_data.reg_ic);
|
||||
|
|
@ -1765,7 +1765,7 @@ static int __exit ipu_remove(struct platform_device *pdev)
|
|||
|
||||
ipu_idmac_exit(ipu);
|
||||
ipu_irq_detach_irq(ipu, pdev);
|
||||
clk_disable(ipu->ipu_clk);
|
||||
clk_disable_unprepare(ipu->ipu_clk);
|
||||
clk_put(ipu->ipu_clk);
|
||||
iounmap(ipu->reg_ic);
|
||||
iounmap(ipu->reg_ipu);
|
||||
|
|
|
|||
Loading…
Reference in a new issue