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

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
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -121,8 +121,8 @@ static struct clk ssc1_clk = {
	.pmc_mask	= 1 << AT91SAM9G45_ID_SSC1,
	.type		= CLK_TYPE_PERIPHERAL,
};
static struct clk tcb_clk = {
	.name		= "tcb_clk",
static struct clk tcb0_clk = {
	.name		= "tcb0_clk",
	.pmc_mask	= 1 << AT91SAM9G45_ID_TCB,
	.type		= CLK_TYPE_PERIPHERAL,
};
@@ -192,6 +192,14 @@ static struct clk ohci_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 = {
	&pioA_clk,
	&pioB_clk,
@@ -208,7 +216,7 @@ static struct clk *periph_clocks[] __initdata = {
	&spi1_clk,
	&ssc0_clk,
	&ssc1_clk,
	&tcb_clk,
	&tcb0_clk,
	&pwm_clk,
	&tsc_clk,
	&dma_clk,
@@ -221,6 +229,7 @@ static struct clk *periph_clocks[] __initdata = {
	&mmc1_clk,
	// irq0
	&ohci_clk,
	&tcb1_clk,
};

/*
+2 −2
Original line number Diff line number Diff line
@@ -835,9 +835,9 @@ static struct platform_device at91sam9g45_tcb1_device = {
static void __init at91_add_device_tc(void)
{
	/* 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);
	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);
}
#else