aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/da850.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-davinci/da850.c')
-rw-r--r--arch/arm/mach-davinci/da850.c50
1 files changed, 48 insertions, 2 deletions
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index 0c4a26ddebba..4d6933848abf 100644
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -383,6 +383,49 @@ static struct clk dsp_clk = {
383 .flags = PSC_LRST | PSC_FORCE, 383 .flags = PSC_LRST | PSC_FORCE,
384}; 384};
385 385
386static struct clk ehrpwm_clk = {
387 .name = "ehrpwm",
388 .parent = &pll0_sysclk2,
389 .lpsc = DA8XX_LPSC1_PWM,
390 .gpsc = 1,
391 .flags = DA850_CLK_ASYNC3,
392};
393
394#define DA8XX_EHRPWM_TBCLKSYNC BIT(12)
395
396static void ehrpwm_tblck_enable(struct clk *clk)
397{
398 u32 val;
399
400 val = readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP1_REG));
401 val |= DA8XX_EHRPWM_TBCLKSYNC;
402 writel(val, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP1_REG));
403}
404
405static void ehrpwm_tblck_disable(struct clk *clk)
406{
407 u32 val;
408
409 val = readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP1_REG));
410 val &= ~DA8XX_EHRPWM_TBCLKSYNC;
411 writel(val, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP1_REG));
412}
413
414static struct clk ehrpwm_tbclk = {
415 .name = "ehrpwm_tbclk",
416 .parent = &ehrpwm_clk,
417 .clk_enable = ehrpwm_tblck_enable,
418 .clk_disable = ehrpwm_tblck_disable,
419};
420
421static struct clk ecap_clk = {
422 .name = "ecap",
423 .parent = &pll0_sysclk2,
424 .lpsc = DA8XX_LPSC1_ECAP,
425 .gpsc = 1,
426 .flags = DA850_CLK_ASYNC3,
427};
428
386static struct clk_lookup da850_clks[] = { 429static struct clk_lookup da850_clks[] = {
387 CLK(NULL, "ref", &ref_clk), 430 CLK(NULL, "ref", &ref_clk),
388 CLK(NULL, "pll0", &pll0_clk), 431 CLK(NULL, "pll0", &pll0_clk),
@@ -420,8 +463,8 @@ static struct clk_lookup da850_clks[] = {
420 CLK("davinci_emac.1", NULL, &emac_clk), 463 CLK("davinci_emac.1", NULL, &emac_clk),
421 CLK("davinci-mcasp.0", NULL, &mcasp_clk), 464 CLK("davinci-mcasp.0", NULL, &mcasp_clk),
422 CLK("da8xx_lcdc.0", "fck", &lcdc_clk), 465 CLK("da8xx_lcdc.0", "fck", &lcdc_clk),
423 CLK("davinci_mmc.0", NULL, &mmcsd0_clk), 466 CLK("da830-mmc.0", NULL, &mmcsd0_clk),
424 CLK("davinci_mmc.1", NULL, &mmcsd1_clk), 467 CLK("da830-mmc.1", NULL, &mmcsd1_clk),
425 CLK(NULL, "aemif", &aemif_clk), 468 CLK(NULL, "aemif", &aemif_clk),
426 CLK(NULL, "usb11", &usb11_clk), 469 CLK(NULL, "usb11", &usb11_clk),
427 CLK(NULL, "usb20", &usb20_clk), 470 CLK(NULL, "usb20", &usb20_clk),
@@ -430,6 +473,9 @@ static struct clk_lookup da850_clks[] = {
430 CLK("vpif", NULL, &vpif_clk), 473 CLK("vpif", NULL, &vpif_clk),
431 CLK("ahci", NULL, &sata_clk), 474 CLK("ahci", NULL, &sata_clk),
432 CLK("davinci-rproc.0", NULL, &dsp_clk), 475 CLK("davinci-rproc.0", NULL, &dsp_clk),
476 CLK("ehrpwm", "fck", &ehrpwm_clk),
477 CLK("ehrpwm", "tbclk", &ehrpwm_tbclk),
478 CLK("ecap", "fck", &ecap_clk),
433 CLK(NULL, NULL, NULL), 479 CLK(NULL, NULL, NULL),
434}; 480};
435 481