Commit 323761bb authored by Manjunathappa, Prakash's avatar Manjunathappa, Prakash Committed by Sekhar Nori

ARM: davinci: serial: remove davinci_serial_setup_clk()

Get rid of davinci_serial_setup_clk() since its not called
from multiple places now. Instead initialize clock in
davinci_serial_init() itself. This also helps get rid of
"serial_dev" member of struct davinci_soc_info.
Signed-off-by: default avatarManjunathappa, Prakash <prakash.pm@ti.com>
Suggested-by: default avatarSekhar Nori <nsekhar@ti.com>
[nsekhar@ti.com: split removal of davinci_serial_setup_clk()
		 into a separate patch.]
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent fcf7157b
...@@ -1199,7 +1199,6 @@ static struct davinci_soc_info davinci_soc_info_da830 = { ...@@ -1199,7 +1199,6 @@ static struct davinci_soc_info davinci_soc_info_da830 = {
.gpio_base = DA8XX_GPIO_BASE, .gpio_base = DA8XX_GPIO_BASE,
.gpio_num = 128, .gpio_num = 128,
.gpio_irq = IRQ_DA8XX_GPIO0, .gpio_irq = IRQ_DA8XX_GPIO0,
.serial_dev = da8xx_serial_device,
.emac_pdata = &da8xx_emac_pdata, .emac_pdata = &da8xx_emac_pdata,
}; };
......
...@@ -1301,7 +1301,6 @@ static struct davinci_soc_info davinci_soc_info_da850 = { ...@@ -1301,7 +1301,6 @@ static struct davinci_soc_info davinci_soc_info_da850 = {
.gpio_base = DA8XX_GPIO_BASE, .gpio_base = DA8XX_GPIO_BASE,
.gpio_num = 144, .gpio_num = 144,
.gpio_irq = IRQ_DA8XX_GPIO0, .gpio_irq = IRQ_DA8XX_GPIO0,
.serial_dev = da8xx_serial_device,
.emac_pdata = &da8xx_emac_pdata, .emac_pdata = &da8xx_emac_pdata,
.sram_dma = DA8XX_SHARED_RAM_BASE, .sram_dma = DA8XX_SHARED_RAM_BASE,
.sram_len = SZ_128K, .sram_len = SZ_128K,
......
...@@ -1009,7 +1009,6 @@ static struct davinci_soc_info davinci_soc_info_dm355 = { ...@@ -1009,7 +1009,6 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
.gpio_base = DAVINCI_GPIO_BASE, .gpio_base = DAVINCI_GPIO_BASE,
.gpio_num = 104, .gpio_num = 104,
.gpio_irq = IRQ_DM355_GPIOBNK0, .gpio_irq = IRQ_DM355_GPIOBNK0,
.serial_dev = dm355_serial_device,
.sram_dma = 0x00010000, .sram_dma = 0x00010000,
.sram_len = SZ_32K, .sram_len = SZ_32K,
}; };
......
...@@ -1109,7 +1109,6 @@ static struct davinci_soc_info davinci_soc_info_dm365 = { ...@@ -1109,7 +1109,6 @@ static struct davinci_soc_info davinci_soc_info_dm365 = {
.gpio_num = 104, .gpio_num = 104,
.gpio_irq = IRQ_DM365_GPIO0, .gpio_irq = IRQ_DM365_GPIO0,
.gpio_unbanked = 8, /* really 16 ... skip muxed GPIOs */ .gpio_unbanked = 8, /* really 16 ... skip muxed GPIOs */
.serial_dev = dm365_serial_device,
.emac_pdata = &dm365_emac_pdata, .emac_pdata = &dm365_emac_pdata,
.sram_dma = 0x00010000, .sram_dma = 0x00010000,
.sram_len = SZ_32K, .sram_len = SZ_32K,
......
...@@ -900,7 +900,6 @@ static struct davinci_soc_info davinci_soc_info_dm644x = { ...@@ -900,7 +900,6 @@ static struct davinci_soc_info davinci_soc_info_dm644x = {
.gpio_base = DAVINCI_GPIO_BASE, .gpio_base = DAVINCI_GPIO_BASE,
.gpio_num = 71, .gpio_num = 71,
.gpio_irq = IRQ_GPIOBNK0, .gpio_irq = IRQ_GPIOBNK0,
.serial_dev = dm644x_serial_device,
.emac_pdata = &dm644x_emac_pdata, .emac_pdata = &dm644x_emac_pdata,
.sram_dma = 0x00008000, .sram_dma = 0x00008000,
.sram_len = SZ_16K, .sram_len = SZ_16K,
......
...@@ -877,7 +877,6 @@ static struct davinci_soc_info davinci_soc_info_dm646x = { ...@@ -877,7 +877,6 @@ static struct davinci_soc_info davinci_soc_info_dm646x = {
.gpio_base = DAVINCI_GPIO_BASE, .gpio_base = DAVINCI_GPIO_BASE,
.gpio_num = 43, /* Only 33 usable */ .gpio_num = 43, /* Only 33 usable */
.gpio_irq = IRQ_DM646X_GPIOBNK0, .gpio_irq = IRQ_DM646X_GPIOBNK0,
.serial_dev = dm646x_serial_device,
.emac_pdata = &dm646x_emac_pdata, .emac_pdata = &dm646x_emac_pdata,
.sram_dma = 0x10010000, .sram_dma = 0x10010000,
.sram_len = SZ_32K, .sram_len = SZ_32K,
......
...@@ -72,7 +72,6 @@ struct davinci_soc_info { ...@@ -72,7 +72,6 @@ struct davinci_soc_info {
unsigned gpio_unbanked; unsigned gpio_unbanked;
struct davinci_gpio_controller *gpio_ctlrs; struct davinci_gpio_controller *gpio_ctlrs;
int gpio_ctlrs_num; int gpio_ctlrs_num;
struct platform_device *serial_dev;
struct emac_platform_data *emac_pdata; struct emac_platform_data *emac_pdata;
dma_addr_t sram_dma; dma_addr_t sram_dma;
unsigned sram_len; unsigned sram_len;
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern int davinci_serial_init(struct platform_device *); extern int davinci_serial_init(struct platform_device *);
extern int davinci_serial_setup_clk(unsigned instance, unsigned int *rate);
#endif #endif
#endif /* __ASM_ARCH_SERIAL_H */ #endif /* __ASM_ARCH_SERIAL_H */
...@@ -70,33 +70,12 @@ static void __init davinci_serial_reset(struct plat_serial8250_port *p) ...@@ -70,33 +70,12 @@ static void __init davinci_serial_reset(struct plat_serial8250_port *p)
UART_DM646X_SCR_TX_WATERMARK); UART_DM646X_SCR_TX_WATERMARK);
} }
/* Enable UART clock and obtain its rate */
int __init davinci_serial_setup_clk(unsigned instance, unsigned int *rate)
{
struct clk *clk;
struct davinci_soc_info *soc_info = &davinci_soc_info;
struct device *dev = &soc_info->serial_dev[instance].dev;
clk = clk_get(dev, NULL);
if (IS_ERR(clk)) {
pr_err("%s:%d: failed to get UART%d clock\n",
__func__, __LINE__, instance);
return PTR_ERR(clk);
}
clk_prepare_enable(clk);
if (rate)
*rate = clk_get_rate(clk);
return 0;
}
int __init davinci_serial_init(struct platform_device *serial_dev) int __init davinci_serial_init(struct platform_device *serial_dev)
{ {
int i, ret = 0; int i, ret = 0;
struct device *dev; struct device *dev;
struct plat_serial8250_port *p; struct plat_serial8250_port *p;
struct clk *clk;
/* /*
* Make sure the serial ports are muxed on at this point. * Make sure the serial ports are muxed on at this point.
...@@ -110,9 +89,16 @@ int __init davinci_serial_init(struct platform_device *serial_dev) ...@@ -110,9 +89,16 @@ int __init davinci_serial_init(struct platform_device *serial_dev)
if (ret) if (ret)
continue; continue;
ret = davinci_serial_setup_clk(i, &p->uartclk); clk = clk_get(dev, NULL);
if (ret) if (IS_ERR(clk)) {
pr_err("%s:%d: failed to get UART%d clock\n",
__func__, __LINE__, i);
continue; continue;
}
clk_prepare_enable(clk);
p->uartclk = clk_get_rate(clk);
if (!p->membase && p->mapbase) { if (!p->membase && p->mapbase) {
p->membase = ioremap(p->mapbase, SZ_4K); p->membase = ioremap(p->mapbase, SZ_4K);
......
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