Commit ab64511c authored by Fabian Godehardt's avatar Fabian Godehardt Committed by Nicolas Ferre

AT91: SAM9G45 - add a separate clock entry for every single TC block

Without this patch you will not be able to register the first block
because of the second association call on at91_add_device_tc().
Signed-off-by: default avatarFabian Godehardt <fg@emlix.com>
[nicolas.ferre@atmel.com: change tcb1_clk to fake child clock of tcb0_clk]
Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: default avatarAndrew Victor <linux@maxim.org.za>
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
parent 5afddee4
...@@ -121,8 +121,8 @@ static struct clk ssc1_clk = { ...@@ -121,8 +121,8 @@ static struct clk ssc1_clk = {
.pmc_mask = 1 << AT91SAM9G45_ID_SSC1, .pmc_mask = 1 << AT91SAM9G45_ID_SSC1,
.type = CLK_TYPE_PERIPHERAL, .type = CLK_TYPE_PERIPHERAL,
}; };
static struct clk tcb_clk = { static struct clk tcb0_clk = {
.name = "tcb_clk", .name = "tcb0_clk",
.pmc_mask = 1 << AT91SAM9G45_ID_TCB, .pmc_mask = 1 << AT91SAM9G45_ID_TCB,
.type = CLK_TYPE_PERIPHERAL, .type = CLK_TYPE_PERIPHERAL,
}; };
...@@ -192,6 +192,14 @@ static struct clk ohci_clk = { ...@@ -192,6 +192,14 @@ static struct clk ohci_clk = {
.parent = &uhphs_clk, .parent = &uhphs_clk,
}; };
/* One additional fake clock for second TC block */
static struct clk tcb1_clk = {
.name = "tcb1_clk",
.pmc_mask = 0,
.type = CLK_TYPE_PERIPHERAL,
.parent = &tcb0_clk,
};
static struct clk *periph_clocks[] __initdata = { static struct clk *periph_clocks[] __initdata = {
&pioA_clk, &pioA_clk,
&pioB_clk, &pioB_clk,
...@@ -208,7 +216,7 @@ static struct clk *periph_clocks[] __initdata = { ...@@ -208,7 +216,7 @@ static struct clk *periph_clocks[] __initdata = {
&spi1_clk, &spi1_clk,
&ssc0_clk, &ssc0_clk,
&ssc1_clk, &ssc1_clk,
&tcb_clk, &tcb0_clk,
&pwm_clk, &pwm_clk,
&tsc_clk, &tsc_clk,
&dma_clk, &dma_clk,
...@@ -221,6 +229,7 @@ static struct clk *periph_clocks[] __initdata = { ...@@ -221,6 +229,7 @@ static struct clk *periph_clocks[] __initdata = {
&mmc1_clk, &mmc1_clk,
// irq0 // irq0
&ohci_clk, &ohci_clk,
&tcb1_clk,
}; };
/* /*
......
...@@ -835,9 +835,9 @@ static struct platform_device at91sam9g45_tcb1_device = { ...@@ -835,9 +835,9 @@ static struct platform_device at91sam9g45_tcb1_device = {
static void __init at91_add_device_tc(void) static void __init at91_add_device_tc(void)
{ {
/* this chip has one clock and irq for all six TC channels */ /* this chip has one clock and irq for all six TC channels */
at91_clock_associate("tcb_clk", &at91sam9g45_tcb0_device.dev, "t0_clk"); at91_clock_associate("tcb0_clk", &at91sam9g45_tcb0_device.dev, "t0_clk");
platform_device_register(&at91sam9g45_tcb0_device); platform_device_register(&at91sam9g45_tcb0_device);
at91_clock_associate("tcb_clk", &at91sam9g45_tcb1_device.dev, "t0_clk"); at91_clock_associate("tcb1_clk", &at91sam9g45_tcb1_device.dev, "t0_clk");
platform_device_register(&at91sam9g45_tcb1_device); platform_device_register(&at91sam9g45_tcb1_device);
} }
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment