|
@@ -264,3 +264,98 @@ static struct clk *clkset_moutdmc0src_list[] = {
|
|
|
[3] = NULL,
|
|
|
};
|
|
|
|
|
|
+static struct clksrc_sources clkset_moutdmc0src = {
|
|
|
+ .sources = clkset_moutdmc0src_list,
|
|
|
+ .nr_sources = ARRAY_SIZE(clkset_moutdmc0src_list),
|
|
|
+};
|
|
|
+
|
|
|
+static struct clksrc_clk clk_mout_dmc0 = {
|
|
|
+ .clk = {
|
|
|
+ .name = "mout_dmc0",
|
|
|
+ },
|
|
|
+ .sources = &clkset_moutdmc0src,
|
|
|
+ .reg_src = { .reg = S5P_CLK_SRC6, .shift = 24, .size = 2 },
|
|
|
+};
|
|
|
+
|
|
|
+static struct clksrc_clk clk_sclk_dmc0 = {
|
|
|
+ .clk = {
|
|
|
+ .name = "sclk_dmc0",
|
|
|
+ .parent = &clk_mout_dmc0.clk,
|
|
|
+ },
|
|
|
+ .reg_div = { .reg = S5P_CLK_DIV6, .shift = 28, .size = 4 },
|
|
|
+};
|
|
|
+
|
|
|
+static unsigned long s5pv210_clk_imem_get_rate(struct clk *clk)
|
|
|
+{
|
|
|
+ return clk_get_rate(clk->parent) / 2;
|
|
|
+}
|
|
|
+
|
|
|
+static struct clk_ops clk_hclk_imem_ops = {
|
|
|
+ .get_rate = s5pv210_clk_imem_get_rate,
|
|
|
+};
|
|
|
+
|
|
|
+static unsigned long s5pv210_clk_fout_apll_get_rate(struct clk *clk)
|
|
|
+{
|
|
|
+ return s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON), pll_4508);
|
|
|
+}
|
|
|
+
|
|
|
+static struct clk_ops clk_fout_apll_ops = {
|
|
|
+ .get_rate = s5pv210_clk_fout_apll_get_rate,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk init_clocks_off[] = {
|
|
|
+ {
|
|
|
+ .name = "dma",
|
|
|
+ .devname = "dma-pl330.0",
|
|
|
+ .parent = &clk_hclk_psys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 3),
|
|
|
+ }, {
|
|
|
+ .name = "dma",
|
|
|
+ .devname = "dma-pl330.1",
|
|
|
+ .parent = &clk_hclk_psys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 4),
|
|
|
+ }, {
|
|
|
+ .name = "rot",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1<<29),
|
|
|
+ }, {
|
|
|
+ .name = "fimc",
|
|
|
+ .devname = "s5pv210-fimc.0",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 24),
|
|
|
+ }, {
|
|
|
+ .name = "fimc",
|
|
|
+ .devname = "s5pv210-fimc.1",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 25),
|
|
|
+ }, {
|
|
|
+ .name = "fimc",
|
|
|
+ .devname = "s5pv210-fimc.2",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 26),
|
|
|
+ }, {
|
|
|
+ .name = "jpeg",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 28),
|
|
|
+ }, {
|
|
|
+ .name = "mfc",
|
|
|
+ .devname = "s5p-mfc",
|
|
|
+ .parent = &clk_pclk_psys.clk,
|
|
|
+ .enable = s5pv210_clk_ip0_ctrl,
|
|
|
+ .ctrlbit = (1 << 16),
|
|
|
+ }, {
|
|
|
+ .name = "dac",
|
|
|
+ .devname = "s5p-sdo",
|
|
|
+ .parent = &clk_hclk_dsys.clk,
|
|
|
+ .enable = s5pv210_clk_ip1_ctrl,
|
|
|
+ .ctrlbit = (1 << 10),
|
|
|
+ }, {
|
|
|
+ .name = "mixer",
|
|
|
+ .devname = "s5p-mixer",
|