#include <asm/clkdev.h>
#include <mach/rk29_iomap.h>
#include <mach/cru.h>
+#include <mach/pmu.h>
#define PWM_VCORE_120 40
#define PWM_DIV PWM_DIV2
static struct clk pclk_periph;
+static struct clk clk_pwm;
void PWMInit(u32 nHz, u32 rate)
{
u32 divh;
+ clk_enable_nolock(&clk_pwm);
// iomux to pwm2
#define REG_FILE_BASE_ADDR RK29_GRF_BASE
volatile unsigned int * pGRF_GPIO2L_IOMUX = (volatile unsigned int *)(REG_FILE_BASE_ADDR + 0x58);
static void clk_enable_init_clocks(void)
{
clk_enable_nolock(&clk_cpu_display_ahb);
- clk_enable_nolock(&clk_cpu_vcodec_ahb);
clk_enable_nolock(&clk_ddr_gpu_axi);
- clk_enable_nolock(&clk_ddr_vdpu_axi);
- clk_enable_nolock(&clk_ddr_vepu_axi);
clk_enable_nolock(&clk_display_matrix_ahb);
clk_enable_nolock(&clk_display_matrix_axi);
clk_enable_nolock(&clk_ddr_lcdc_axi);
- clk_enable_nolock(&clk_uhost_ahb);
- clk_enable_nolock(&clk_usbotg1);
- clk_enable_nolock(&clk_usbotg0);
clk_enable_nolock(&clk_nandc);
clk_enable_nolock(&clk_periph_cpu);
clk_enable_nolock(&clk_ddr_periph);
- clk_enable_nolock(&clk_usb);
clk_enable_nolock(&clk_grf);
clk_enable_nolock(&clk_pmu);
clk_enable_nolock(&clk_ddr_cpu);
clk_enable_nolock(&clk_dma2);
clk_enable_nolock(&clk_dma1);
clk_enable_nolock(&clk_dma0);
+#ifdef CONFIG_DEBUG_LL
+ clk_enable_nolock(&clk_uart1);
+#endif
/* vpu */
clk_enable_nolock(&aclk_vdpu);
clk_enable_nolock(&hclk_vdpu);
}
mutex_unlock(&clocks_mutex);
+// pmu_set_power_domain(PD_VCODEC, false);
+// pmu_set_power_domain(PD_DISPLAY, false);
+// pmu_set_power_domain(PD_GPU, false);
+
return 0;
}
clk_recalculate_root_clocks_nolock();
- rk29_clock_common_init();
-
- printk(KERN_INFO "Clocking rate (apll/dpll/cpll/ppll/core/aclk_cpu/hclk_cpu/pclk_cpu/aclk_periph/hclk_periph/pclk_periph): %ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld MHz\n",
- arm_pll_clk.rate / MHZ, ddr_pll_clk.rate / MHZ, codec_pll_clk.rate / MHZ, periph_pll_clk.rate / MHZ, clk_core.rate / MHZ,
- aclk_cpu.rate / MHZ, hclk_cpu.rate / MHZ, pclk_cpu.rate / MHZ, aclk_periph.rate / MHZ, hclk_periph.rate / MHZ, pclk_periph.rate / MHZ);
-
/*
* Only enable those clocks we will need, let the drivers
* enable other clocks as necessary
* Disable any unused clocks left on by the bootloader
*/
clk_disable_unused();
+
+ rk29_clock_common_init();
+
+ printk(KERN_INFO "Clocking rate (apll/dpll/cpll/ppll/core/aclk_cpu/hclk_cpu/pclk_cpu/aclk_periph/hclk_periph/pclk_periph): %ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld MHz\n",
+ arm_pll_clk.rate / MHZ, ddr_pll_clk.rate / MHZ, codec_pll_clk.rate / MHZ, periph_pll_clk.rate / MHZ, clk_core.rate / MHZ,
+ aclk_cpu.rate / MHZ, hclk_cpu.rate / MHZ, pclk_cpu.rate / MHZ, aclk_periph.rate / MHZ, hclk_periph.rate / MHZ, pclk_periph.rate / MHZ);
+
}
#ifdef CONFIG_PROC_FS