Skip to content

Commit

Permalink
ARM: AMBA: Add pclk definition for platforms using primecells
Browse files Browse the repository at this point in the history
Add a dummy clk definition for the APB pclk signal on all platforms
using the AMBA bus infrastructure.  This ensures that these platforms
continue to work when the core amba bus code controls the APB pclk.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Jul 22, 2010
1 parent 2f7989e commit 3126c7b
Show file tree
Hide file tree
Showing 12 changed files with 66 additions and 12 deletions.
23 changes: 16 additions & 7 deletions arch/arm/mach-bcmring/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,23 @@ static struct clk uart_clk = {
.parent = &pll1_clk,
};

static struct clk dummy_apb_pclk = {
.name = "BUSCLK",
.type = CLK_TYPE_PRIMARY,
.mode = CLK_MODE_XTAL,
};

static struct clk_lookup lookups[] = {
{ /* UART0 */
.dev_id = "uarta",
.clk = &uart_clk,
}, { /* UART1 */
.dev_id = "uartb",
.clk = &uart_clk,
}
{ /* Bus clock */
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
}, { /* UART0 */
.dev_id = "uarta",
.clk = &uart_clk,
}, { /* UART1 */
.dev_id = "uartb",
.clk = &uart_clk,
}
};

static struct amba_device *amba_devs[] __initdata = {
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ep93xx/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ static struct clk_lookup clocks[] = {
INIT_CK(NULL, "pll1", &clk_pll1),
INIT_CK(NULL, "fclk", &clk_f),
INIT_CK(NULL, "hclk", &clk_h),
INIT_CK(NULL, "pclk", &clk_p),
INIT_CK(NULL, "apb_pclk", &clk_p),
INIT_CK(NULL, "pll2", &clk_pll2),
INIT_CK("ep93xx-ohci", NULL, &clk_usb_host),
INIT_CK("ep93xx-keypad", NULL, &clk_keypad),
Expand Down
7 changes: 6 additions & 1 deletion arch/arm/mach-integrator/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,13 @@ static struct clk uartclk = {
.rate = 14745600,
};

static struct clk dummy_apb_pclk;

static struct clk_lookup lookups[] = {
{ /* UART0 */
{ /* Bus clock */
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
}, { /* UART0 */
.dev_id = "mb:16",
.clk = &uartclk,
}, { /* UART1 */
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/mach-nomadik/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ static struct clk clk_default;
}

static struct clk_lookup lookups[] = {
{
.con_id = "apb_pclk",
.clk = &clk_default,
},
CLK(&clk_24, "mtu0"),
CLK(&clk_24, "mtu1"),
CLK(&clk_48, "uart0"),
Expand Down
5 changes: 5 additions & 0 deletions arch/arm/mach-omap2/clock3xxx_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -3166,13 +3166,18 @@ static struct clk uart4_ick_am35xx = {
.recalc = &followparent_recalc,
};

static struct clk dummy_apb_pclk = {
.name = "apb_pclk",
.ops = &clkops_null,
};

/*
* clkdev
*/

/* XXX At some point we should rename this file to clock3xxx_data.c */
static struct omap_clk omap3xxx_clks[] = {
CLK(NULL, "apb_pclk", &dummy_apb_pclk, CK_3XXX),
CLK(NULL, "omap_32k_fck", &omap_32k_fck, CK_3XXX),
CLK(NULL, "virt_12m_ck", &virt_12m_ck, CK_3XXX),
CLK(NULL, "virt_13m_ck", &virt_13m_ck, CK_3XXX),
Expand Down
7 changes: 6 additions & 1 deletion arch/arm/mach-realview/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,13 @@ static struct clk ref24_clk = {
.rate = 24000000,
};

static struct clk dummy_apb_pclk;

static struct clk_lookup lookups[] = {
{ /* UART0 */
{ /* Bus clock */
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
}, { /* UART0 */
.dev_id = "dev:uart0",
.clk = &ref24_clk,
}, { /* UART1 */
Expand Down
3 changes: 3 additions & 0 deletions arch/arm/mach-spear3xx/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,11 @@ static struct clk gpio_clk = {
.recalc = &follow_parent,
};

static struct clk dummy_apb_pclk;

/* array of all spear 3xx clock lookups */
static struct clk_lookup spear_clk_lookups[] = {
{ .con_id = "apb_pclk", .clk = &dummy_apb_pclk},
/* root clks */
{ .con_id = "osc_32k_clk", .clk = &osc_32k_clk},
{ .con_id = "osc_24m_clk", .clk = &osc_24m_clk},
Expand Down
3 changes: 3 additions & 0 deletions arch/arm/mach-spear6xx/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -428,8 +428,11 @@ static struct clk gpio2_clk = {
.recalc = &follow_parent,
};

static struct clk dummy_apb_pclk;

/* array of all spear 6xx clock lookups */
static struct clk_lookup spear_clk_lookups[] = {
{ .con_id = "apb_pclk", .clk = &dummy_apb_pclk},
/* root clks */
{ .con_id = "osc_32k_clk", .clk = &osc_32k_clk},
{ .con_id = "osc_30m_clk", .clk = &osc_30m_clk},
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-u300/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -1212,6 +1212,8 @@ static struct clk ppm_clk = {
};
#endif

static struct clk dummy_apb_pclk;

#define DEF_LOOKUP(devid, clkref) \
{ \
.dev_id = devid, \
Expand All @@ -1223,6 +1225,10 @@ static struct clk ppm_clk = {
* look up through clockdevice.
*/
static struct clk_lookup lookups[] = {
{
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
},
/* Connected directly to the AMBA bus */
DEF_LOOKUP("amba", &amba_clk),
DEF_LOOKUP("cpu", &cpu_clk),
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/mach-ux500/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,11 @@ static DEFINE_PRCC_CLK_CUSTOM(7, mtu0_ed, 2, -1, NULL, clk_mtu_get_rate, 0);
static DEFINE_PRCC_CLK(7, wdg_ed, 1, -1, NULL);
static DEFINE_PRCC_CLK(7, cfgreg_ed, 0, -1, NULL);

static struct clk clk_dummy_apb_pclk;

static struct clk_lookup u8500_common_clks[] = {
CLK(dummy_apb_pclk, NULL, "apb_pclk"),

/* Peripheral Cluster #1 */
CLK(gpio0, "gpio.0", NULL),
CLK(gpio0, "gpio.1", NULL),
Expand Down
7 changes: 6 additions & 1 deletion arch/arm/mach-versatile/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,8 +400,13 @@ static struct clk ref24_clk = {
.rate = 24000000,
};

static struct clk dummy_apb_pclk;

static struct clk_lookup lookups[] = {
{ /* UART0 */
{ /* AMBA bus clock */
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
}, { /* UART0 */
.dev_id = "dev:f1",
.clk = &ref24_clk,
}, { /* UART1 */
Expand Down
7 changes: 6 additions & 1 deletion arch/arm/mach-vexpress/v2m.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,8 +298,13 @@ static struct clk osc2_clk = {
.rate = 24000000,
};

static struct clk dummy_apb_pclk;

static struct clk_lookup v2m_lookups[] = {
{ /* UART0 */
{ /* AMBA bus clock */
.con_id = "apb_pclk",
.clk = &dummy_apb_pclk,
}, { /* UART0 */
.dev_id = "mb:uart0",
.clk = &osc2_clk,
}, { /* UART1 */
Expand Down

0 comments on commit 3126c7b

Please sign in to comment.