* [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform
@ 2011-03-19 7:50 Thomas Abraham
2011-03-19 7:50 ` [PATCH 1/6] ARM: EXYNOS4: Fix addruart macro Thomas Abraham
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw)
To: linux-samsung-soc; +Cc: kgene.kim, ben-linux
This patchset is a prerequisite for device tree patches for exynos4. It
includes the following changes.
1. Adds clkdev support for exynos4.
2. Removes redundant console registration for exynos4 and s5pv210.
3. Trival bug fixes.
Thomas Abraham (6):
ARM: EXYNOS4: Fix addruart macro
serial: samsung: Fix unintended usage of uart port 0 as console
serial: s5pv210: Remove redundant console_initcall
ARM: SAMSUNG: Add clkdev support
ARM: SAMSUNG: Add clkdev support for exynos4
ARM: Remove clkdev.o build in arch/arm/common/Makefile
arch/arm/common/Makefile | 1 -
arch/arm/mach-exynos4/Kconfig | 1 +
arch/arm/mach-exynos4/clock.c | 57 ++++++++++++++++++++++
arch/arm/mach-exynos4/include/mach/clkdev.h | 7 +++
arch/arm/mach-exynos4/include/mach/debug-macro.S | 4 +-
arch/arm/mach-exynos4/time.c | 2 +
arch/arm/plat-samsung/clock.c | 18 +++++++
arch/arm/plat-samsung/include/plat/clock.h | 5 ++
arch/arm/plat-samsung/pwm-clock.c | 10 ++++
drivers/tty/serial/s5pv210.c | 7 ---
drivers/tty/serial/samsung.c | 9 ++--
11 files changed, 106 insertions(+), 15 deletions(-)
create mode 100644 arch/arm/mach-exynos4/include/mach/clkdev.h
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH 1/6] ARM: EXYNOS4: Fix addruart macro 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-19 7:50 ` [PATCH 2/6] serial: samsung: Fix unintended usage of uart port 0 as console Thomas Abraham ` (4 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux Fix incorrect conditional execution of ldr instructions in addruart macro. Signed-off-by: Thomas Abraham <thomas.abraham@samsung.com> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> --- arch/arm/mach-exynos4/include/mach/debug-macro.S | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-exynos4/include/mach/debug-macro.S b/arch/arm/mach-exynos4/include/mach/debug-macro.S index 58bbd04..a442ef8 100644 --- a/arch/arm/mach-exynos4/include/mach/debug-macro.S +++ b/arch/arm/mach-exynos4/include/mach/debug-macro.S @@ -21,8 +21,8 @@ */ .macro addruart, rp, rv - ldreq \rp, = S3C_PA_UART - ldrne \rv, = S3C_VA_UART + ldr \rp, = S3C_PA_UART + ldr \rv, = S3C_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 add \rp, \rp, #(0x10000 * CONFIG_DEBUG_S3C_UART) add \rv, \rv, #(0x10000 * CONFIG_DEBUG_S3C_UART) -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/6] serial: samsung: Fix unintended usage of uart port 0 as console 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham 2011-03-19 7:50 ` [PATCH 1/6] ARM: EXYNOS4: Fix addruart macro Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-19 7:50 ` [PATCH 3/6] serial: s5pv210: Remove redundant console_initcall Thomas Abraham ` (3 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux In s3c24xx_serial_console_setup function, if the uart port that is being setup as a console has not been initialized, an error can be returned instead of using uart port 0 as the default console port. The uart port that was intended to be used as a console could be initialized at a later point during boot and then registered as a console. This will avoid using uart port 0 as a unintended console port. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> --- drivers/tty/serial/samsung.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 2335eda..1586440 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1417,10 +1417,8 @@ s3c24xx_serial_console_setup(struct console *co, char *options) /* is the port configured? */ - if (port->mapbase == 0x0) { - co->index = 0; - port = &s3c24xx_serial_ports[co->index].port; - } + if (port->mapbase == 0x0) + return -ENODEV; cons_uart = port; -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/6] serial: s5pv210: Remove redundant console_initcall 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham 2011-03-19 7:50 ` [PATCH 1/6] ARM: EXYNOS4: Fix addruart macro Thomas Abraham 2011-03-19 7:50 ` [PATCH 2/6] serial: samsung: Fix unintended usage of uart port 0 as console Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-19 7:50 ` [PATCH 4/6] ARM: SAMSUNG: Add clkdev support Thomas Abraham ` (2 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux Uart port is registered as a console during the driver's probe. So explict registration of console with console_initcall is removed. Cc: Ben Dooks <ben-linux@fluff.org> Signed-of-by: Thomas Abraham <thomas.ab@samsung.com> --- drivers/tty/serial/s5pv210.c | 7 ------- drivers/tty/serial/samsung.c | 3 ++- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/s5pv210.c b/drivers/tty/serial/s5pv210.c index 6ebccd7..cdee626 100644 --- a/drivers/tty/serial/s5pv210.c +++ b/drivers/tty/serial/s5pv210.c @@ -136,13 +136,6 @@ static struct platform_driver s5p_serial_driver = { }, }; -static int __init s5pv210_serial_console_init(void) -{ - return s3c24xx_serial_initconsole(&s5p_serial_driver, s5p_uart_inf); -} - -console_initcall(s5pv210_serial_console_init); - static int __init s5p_serial_init(void) { return s3c24xx_serial_init(&s5p_serial_driver, *s5p_uart_inf); diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 1586440..9d9d97c 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1450,7 +1450,8 @@ static struct console s3c24xx_serial_console = { .flags = CON_PRINTBUFFER, .index = -1, .write = s3c24xx_serial_console_write, - .setup = s3c24xx_serial_console_setup + .setup = s3c24xx_serial_console_setup, + .data = &s3c24xx_uart_drv, }; int s3c24xx_serial_initconsole(struct platform_driver *drv, -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/6] ARM: SAMSUNG: Add clkdev support 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham ` (2 preceding siblings ...) 2011-03-19 7:50 ` [PATCH 3/6] serial: s5pv210: Remove redundant console_initcall Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-19 7:50 ` [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 Thomas Abraham 2011-03-19 7:50 ` [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile Thomas Abraham 5 siblings, 0 replies; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux Add infrastructure for clkdev support on samsung platforms. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> --- arch/arm/plat-samsung/clock.c | 18 ++++++++++++++++++ arch/arm/plat-samsung/include/plat/clock.h | 5 +++++ 2 files changed, 23 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-samsung/clock.c b/arch/arm/plat-samsung/clock.c index 7728928..b52f833 100644 --- a/arch/arm/plat-samsung/clock.c +++ b/arch/arm/plat-samsung/clock.c @@ -71,6 +71,12 @@ static int clk_null_enable(struct clk *clk, int enable) return 0; } +/* + * When all Samsung platforms use clkdev, pdev->id based clock lookup + * code can be removed. + */ +#ifndef CONFIG_CLKDEV_LOOKUP + static int dev_is_s3c_uart(struct device *dev) { struct platform_device **pdev = s3c24xx_uart_devs; @@ -139,6 +145,8 @@ void clk_put(struct clk *clk) module_put(clk->owner); } +#endif /* CONFIG_CLKDEV_LOOKUP */ + int clk_enable(struct clk *clk) { if (IS_ERR(clk) || clk == NULL) @@ -241,8 +249,10 @@ int clk_set_parent(struct clk *clk, struct clk *parent) return ret; } +#ifndef CONFIG_CLKDEV_LOOKUP EXPORT_SYMBOL(clk_get); EXPORT_SYMBOL(clk_put); +#endif EXPORT_SYMBOL(clk_enable); EXPORT_SYMBOL(clk_disable); EXPORT_SYMBOL(clk_get_rate); @@ -346,6 +356,7 @@ int s3c24xx_register_clock(struct clk *clk) if (clk->enable == NULL) clk->enable = clk_null_enable; +#ifndef CONFIG_CLKDEV_LOOKUP /* add to the list of available clocks */ /* Quick check to see if this clock has already been registered. */ @@ -354,6 +365,13 @@ int s3c24xx_register_clock(struct clk *clk) spin_lock(&clocks_lock); list_add(&clk->list, &clocks); spin_unlock(&clocks_lock); +#else + /* fill up the clk_lookup structure and register it*/ + clk->lookup.dev_id = clk->devname; + clk->lookup.con_id = clk->name; + clk->lookup.clk = clk; + clkdev_add(&clk->lookup); +#endif return 0; } diff --git a/arch/arm/plat-samsung/include/plat/clock.h b/arch/arm/plat-samsung/include/plat/clock.h index 9a82b88..6325044 100644 --- a/arch/arm/plat-samsung/include/plat/clock.h +++ b/arch/arm/plat-samsung/include/plat/clock.h @@ -10,6 +10,7 @@ */ #include <linux/spinlock.h> +#include <linux/clkdev.h> struct clk; @@ -40,6 +41,7 @@ struct clk { struct module *owner; struct clk *parent; const char *name; + const char *devname; int id; int usage; unsigned long rate; @@ -47,6 +49,9 @@ struct clk { struct clk_ops *ops; int (*enable)(struct clk *, int enable); +#ifdef CONFIG_CLKDEV_LOOKUP + struct clk_lookup lookup; +#endif #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS) struct dentry *dent; /* For visible tree hierarchy */ #endif -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham ` (3 preceding siblings ...) 2011-03-19 7:50 ` [PATCH 4/6] ARM: SAMSUNG: Add clkdev support Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-19 9:42 ` Seungwhan Youn 2011-03-19 12:02 ` Sylwester Nawrocki 2011-03-19 7:50 ` [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile Thomas Abraham 5 siblings, 2 replies; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux Add clkdev support for Samsung's exynos4 platforms. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> --- arch/arm/mach-exynos4/Kconfig | 1 + arch/arm/mach-exynos4/clock.c | 57 +++++++++++++++++++++++++++ arch/arm/mach-exynos4/include/mach/clkdev.h | 7 +++ arch/arm/mach-exynos4/time.c | 2 + arch/arm/plat-samsung/pwm-clock.c | 10 +++++ 5 files changed, 77 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-exynos4/include/mach/clkdev.h diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig index a021b52..58451c3 100644 --- a/arch/arm/mach-exynos4/Kconfig +++ b/arch/arm/mach-exynos4/Kconfig @@ -110,6 +110,7 @@ config MACH_SMDKC210 config MACH_SMDKV310 bool "SMDKV310" select CPU_EXYNOS4210 + select CLKDEV_LOOKUP select S3C_DEV_RTC select S3C_DEV_WDT select S3C_DEV_I2C1 diff --git a/arch/arm/mach-exynos4/clock.c b/arch/arm/mach-exynos4/clock.c index 871f9d5..0b46326 100644 --- a/arch/arm/mach-exynos4/clock.c +++ b/arch/arm/mach-exynos4/clock.c @@ -404,41 +404,49 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1<<24), }, { .name = "csis", + .devname = "s5p-mipi-csis.0", .id = 0, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 4), }, { .name = "csis", + .devname = "s5p-mipi-csis.1", .id = 1, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 5), }, { .name = "fimc", + .devname = "s5p-fimc.0", .id = 0, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 0), }, { .name = "fimc", + .devname = "s5p-fimc.1", .id = 1, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 1), }, { .name = "fimc", + .devname = "s5p-fimc.2", .id = 2, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 2), }, { .name = "fimc", + .devname = "s5p-fimc.3", .id = 3, .enable = exynos4_clk_ip_cam_ctrl, .ctrlbit = (1 << 3), }, { .name = "fimd", + .devname = "s5pv310-fb.0", .id = 0, .enable = exynos4_clk_ip_lcd0_ctrl, .ctrlbit = (1 << 0), }, { .name = "fimd", + .devname = "s5pv310-fb.1", .id = 1, .enable = exynos4_clk_ip_lcd1_ctrl, .ctrlbit = (1 << 0), @@ -450,30 +458,35 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1 << 3), }, { .name = "hsmmc", + .devname = "s3c-sdhci.0", .id = 0, .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 5), }, { .name = "hsmmc", + .devname = "s3c-sdhci.1", .id = 1, .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 6), }, { .name = "hsmmc", + .devname = "s3c-sdhci.2", .id = 2, .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 7), }, { .name = "hsmmc", + .devname = "s3c-sdhci.3", .id = 3, .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 8), }, { .name = "hsmmc", + .devname = "s3c-sdhci.4", .id = 4, .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, @@ -486,11 +499,13 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1 << 10), }, { .name = "pdma", + .devname = "s3c-pl330.0", .id = 0, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 0), }, { .name = "pdma", + .devname = "s3c-pl330.1", .id = 1, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 1), @@ -527,31 +542,37 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1 << 13), }, { .name = "spi", + .devname = "s3c64xx-spi.0", .id = 0, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 16), }, { .name = "spi", + .devname = "s3c64xx-spi.1", .id = 1, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 17), }, { .name = "spi", + .devname = "s3c64xx-spi.2", .id = 2, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 18), }, { .name = "iis", + .devname = "samsung-i2s.0", .id = 0, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 19), }, { .name = "iis", + .devname = "samsung-i2s.1", .id = 1, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 20), }, { .name = "iis", + .devname = "samsung-i2s.2", .id = 2, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 21), @@ -567,48 +588,56 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1 << 0), }, { .name = "i2c", + .devname = "s3c-i2c.0", .id = 0, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 6), }, { .name = "i2c", + .devname = "s3c-i2c.1", .id = 1, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 7), }, { .name = "i2c", + .devname = "s3c-i2c.2", .id = 2, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 8), }, { .name = "i2c", + .devname = "s3c-i2c.3", .id = 3, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 9), }, { .name = "i2c", + .devname = "s3c-i2c.4", .id = 4, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 10), }, { .name = "i2c", + .devname = "s3c-i2c.5", .id = 5, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 11), }, { .name = "i2c", + .devname = "s3c-i2c.6", .id = 6, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 12), }, { .name = "i2c", + .devname = "s3c-i2c.7", .id = 7, .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, @@ -689,31 +718,37 @@ static struct clk init_clocks_off[] = { static struct clk init_clocks[] = { { .name = "uart", + .devname = "s5pv210-uart.0", .id = 0, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 0), }, { .name = "uart", + .devname = "s5pv210-uart.1", .id = 1, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 1), }, { .name = "uart", + .devname = "s5pv210-uart.2", .id = 2, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 2), }, { .name = "uart", + .devname = "s5pv210-uart.3", .id = 3, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 3), }, { .name = "uart", + .devname = "s5pv210-uart.4", .id = 4, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 4), }, { .name = "uart", + .devname = "s5pv210-uart.5", .id = 5, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 5), @@ -839,6 +874,7 @@ static struct clksrc_clk clksrcs[] = { { .clk = { .name = "uclk1", + .devname = "s5pv210-uart.0", .id = 0, .enable = exynos4_clksrc_mask_peril0_ctrl, .ctrlbit = (1 << 0), @@ -849,6 +885,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "uclk1", + .devname = "s5pv210-uart.1", .id = 1, .enable = exynos4_clksrc_mask_peril0_ctrl, .ctrlbit = (1 << 4), @@ -859,6 +896,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "uclk1", + .devname = "s5pv210-uart.2", .id = 2, .enable = exynos4_clksrc_mask_peril0_ctrl, .ctrlbit = (1 << 8), @@ -869,6 +907,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "uclk1", + .devname = "s5pv210-uart.3", .id = 3, .enable = exynos4_clksrc_mask_peril0_ctrl, .ctrlbit = (1 << 12), @@ -889,6 +928,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_csis", + .devname = "s5p-mipi-csis.0", .id = 0, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 24), @@ -899,6 +939,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_csis", + .devname = "s5p-mipi-csis.1", .id = 1, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 28), @@ -909,6 +950,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_cam", + .devname = "s5pv310-fimc.0", .id = 0, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 16), @@ -919,6 +961,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_cam", + .devname = "s5pv310-fimc.1", .id = 1, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 20), @@ -929,6 +972,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimc", + .devname = "s5pv310-fimc.0", .id = 0, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 0), @@ -939,6 +983,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimc", + .devname = "s5pv310-fimc.1", .id = 1, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 4), @@ -949,6 +994,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimc", + .devname = "s5pv310-fimc.2", .id = 2, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 8), @@ -959,6 +1005,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimc", + .devname = "s5pv310-fimc.3", .id = 3, .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 12), @@ -969,6 +1016,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimd", + .devname = "s5pv310-fb.0", .id = 0, .enable = exynos4_clksrc_mask_lcd0_ctrl, .ctrlbit = (1 << 0), @@ -979,6 +1027,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_fimd", + .devname = "s5pv310-fb.1", .id = 1, .enable = exynos4_clksrc_mask_lcd1_ctrl, .ctrlbit = (1 << 0), @@ -999,6 +1048,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_spi", + .devname = "s3c64xx-spi.0", .id = 0, .enable = exynos4_clksrc_mask_peril1_ctrl, .ctrlbit = (1 << 16), @@ -1009,6 +1059,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_spi", + .devname = "s3c64xx-spi.1", .id = 1, .enable = exynos4_clksrc_mask_peril1_ctrl, .ctrlbit = (1 << 20), @@ -1019,6 +1070,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_spi", + .devname = "s3c64xx-spi.2", .id = 2, .enable = exynos4_clksrc_mask_peril1_ctrl, .ctrlbit = (1 << 24), @@ -1037,6 +1089,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_mmc", + .devname = "s3c-sdhci.0", .id = 0, .parent = &clk_dout_mmc0.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, @@ -1046,6 +1099,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_mmc", + .devname = "s3c-sdhci.1", .id = 1, .parent = &clk_dout_mmc1.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, @@ -1055,6 +1109,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_mmc", + .devname = "s3c-sdhci.2", .id = 2, .parent = &clk_dout_mmc2.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, @@ -1064,6 +1119,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_mmc", + .devname = "s3c-sdhci.3", .id = 3, .parent = &clk_dout_mmc3.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, @@ -1073,6 +1129,7 @@ static struct clksrc_clk clksrcs[] = { }, { .clk = { .name = "sclk_mmc", + .devname = "s3c-sdhci.4", .id = 4, .parent = &clk_dout_mmc4.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, diff --git a/arch/arm/mach-exynos4/include/mach/clkdev.h b/arch/arm/mach-exynos4/include/mach/clkdev.h new file mode 100644 index 0000000..1247f5e --- /dev/null +++ b/arch/arm/mach-exynos4/include/mach/clkdev.h @@ -0,0 +1,7 @@ +#ifndef __MACH_EXYNOS4_CLKDEV_H__ +#define __MACH_EXYNOS4_CLKDEV_H__ + +#define __clk_get(clk) ({ 1; }) +#define __clk_put(clk) do { } while (0) + +#endif diff --git a/arch/arm/mach-exynos4/time.c b/arch/arm/mach-exynos4/time.c index 86b9fa0..cb63f97 100644 --- a/arch/arm/mach-exynos4/time.c +++ b/arch/arm/mach-exynos4/time.c @@ -262,6 +262,7 @@ static void __init exynos4_timer_resources(void) clk_enable(timerclk); tmpdev.id = 2; + tmpdev.dev.init_name = "s3c24xx-pwm.2"; tin2 = clk_get(&tmpdev.dev, "pwm-tin"); if (IS_ERR(tin2)) panic("failed to get pwm-tin2 clock for system timer"); @@ -272,6 +273,7 @@ static void __init exynos4_timer_resources(void) clk_enable(tin2); tmpdev.id = 4; + tmpdev.dev.init_name = "s3c24xx-pwm.4"; tin4 = clk_get(&tmpdev.dev, "pwm-tin"); if (IS_ERR(tin4)) panic("failed to get pwm-tin4 clock for system timer"); diff --git a/arch/arm/plat-samsung/pwm-clock.c b/arch/arm/plat-samsung/pwm-clock.c index 46c9381..f1bba88 100644 --- a/arch/arm/plat-samsung/pwm-clock.c +++ b/arch/arm/plat-samsung/pwm-clock.c @@ -268,6 +268,7 @@ static struct pwm_tdiv_clk clk_timer_tdiv[] = { [0] = { .clk = { .name = "pwm-tdiv", + .devname = "s3c24xx-pwm.0", .ops = &clk_tdiv_ops, .parent = &clk_timer_scaler[0], }, @@ -275,6 +276,7 @@ static struct pwm_tdiv_clk clk_timer_tdiv[] = { [1] = { .clk = { .name = "pwm-tdiv", + .devname = "s3c24xx-pwm.1", .ops = &clk_tdiv_ops, .parent = &clk_timer_scaler[0], } @@ -282,6 +284,7 @@ static struct pwm_tdiv_clk clk_timer_tdiv[] = { [2] = { .clk = { .name = "pwm-tdiv", + .devname = "s3c24xx-pwm.2", .ops = &clk_tdiv_ops, .parent = &clk_timer_scaler[1], }, @@ -289,6 +292,7 @@ static struct pwm_tdiv_clk clk_timer_tdiv[] = { [3] = { .clk = { .name = "pwm-tdiv", + .devname = "s3c24xx-pwm.3", .ops = &clk_tdiv_ops, .parent = &clk_timer_scaler[1], }, @@ -296,6 +300,7 @@ static struct pwm_tdiv_clk clk_timer_tdiv[] = { [4] = { .clk = { .name = "pwm-tdiv", + .devname = "s3c24xx-pwm.4", .ops = &clk_tdiv_ops, .parent = &clk_timer_scaler[1], }, @@ -361,26 +366,31 @@ static struct clk_ops clk_tin_ops = { static struct clk clk_tin[] = { [0] = { .name = "pwm-tin", + .devname = "s3c24xx-pwm.0", .id = 0, .ops = &clk_tin_ops, }, [1] = { .name = "pwm-tin", + .devname = "s3c24xx-pwm.1", .id = 1, .ops = &clk_tin_ops, }, [2] = { .name = "pwm-tin", + .devname = "s3c24xx-pwm.2", .id = 2, .ops = &clk_tin_ops, }, [3] = { .name = "pwm-tin", + .devname = "s3c24xx-pwm.3", .id = 3, .ops = &clk_tin_ops, }, [4] = { .name = "pwm-tin", + .devname = "s3c24xx-pwm.4", .id = 4, .ops = &clk_tin_ops, }, -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 2011-03-19 7:50 ` [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 Thomas Abraham @ 2011-03-19 9:42 ` Seungwhan Youn 2011-03-19 12:02 ` Sylwester Nawrocki 1 sibling, 0 replies; 11+ messages in thread From: Seungwhan Youn @ 2011-03-19 9:42 UTC (permalink / raw) To: Thomas Abraham; +Cc: linux-samsung-soc, kgene.kim, ben-linux Hi, On Sat, Mar 19, 2011 at 4:50 PM, Thomas Abraham <thomas.ab@samsung.com> wrote: > Add clkdev support for Samsung's exynos4 platforms. > > Cc: Ben Dooks <ben-linux@fluff.org> > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> > --- > arch/arm/mach-exynos4/Kconfig | 1 + > arch/arm/mach-exynos4/clock.c | 57 +++++++++++++++++++++++++++ > arch/arm/mach-exynos4/include/mach/clkdev.h | 7 +++ > arch/arm/mach-exynos4/time.c | 2 + > arch/arm/plat-samsung/pwm-clock.c | 10 +++++ > 5 files changed, 77 insertions(+), 0 deletions(-) > create mode 100644 arch/arm/mach-exynos4/include/mach/clkdev.h > > diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig > index a021b52..58451c3 100644 > --- a/arch/arm/mach-exynos4/Kconfig > +++ b/arch/arm/mach-exynos4/Kconfig > @@ -110,6 +110,7 @@ config MACH_SMDKC210 > config MACH_SMDKV310 > bool "SMDKV310" > select CPU_EXYNOS4210 > + select CLKDEV_LOOKUP IMHO, 'clkdev' features, in this patch, seems to be applied to all EXYNOS4 architecture, not to only SMDKV310 machine. So, I think that this 'CLKDEV_LOOKUP' may be added into 'arch/arm/Kconfig', not this file('arch/arm/mach-exynos4/Kconfig'). Something like belows... diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index eed07ea..1069dc1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -768,6 +768,7 @@ config ARCH_EXYNOS4 select ARCH_SPARSEMEM_ENABLE select GENERIC_GPIO select HAVE_CLK + select CLKDEV_LOOKUP select ARCH_HAS_CPUFREQ select GENERIC_CLOCKEVENTS select HAVE_S3C_RTC if RTC_CLASS Thanks, Claude ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 2011-03-19 7:50 ` [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 Thomas Abraham 2011-03-19 9:42 ` Seungwhan Youn @ 2011-03-19 12:02 ` Sylwester Nawrocki 1 sibling, 0 replies; 11+ messages in thread From: Sylwester Nawrocki @ 2011-03-19 12:02 UTC (permalink / raw) To: Thomas Abraham; +Cc: linux-samsung-soc, kgene.kim, ben-linux Hi Thomas, On 03/19/2011 08:50 AM, Thomas Abraham wrote: > Add clkdev support for Samsung's exynos4 platforms. > > Cc: Ben Dooks<ben-linux@fluff.org> > Signed-off-by: Thomas Abraham<thomas.ab@samsung.com> > --- > arch/arm/mach-exynos4/Kconfig | 1 + > arch/arm/mach-exynos4/clock.c | 57 +++++++++++++++++++++++++++ > arch/arm/mach-exynos4/include/mach/clkdev.h | 7 +++ > arch/arm/mach-exynos4/time.c | 2 + > arch/arm/plat-samsung/pwm-clock.c | 10 +++++ > 5 files changed, 77 insertions(+), 0 deletions(-) > create mode 100644 arch/arm/mach-exynos4/include/mach/clkdev.h > > diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig > index a021b52..58451c3 100644 > --- a/arch/arm/mach-exynos4/Kconfig > +++ b/arch/arm/mach-exynos4/Kconfig > @@ -110,6 +110,7 @@ config MACH_SMDKC210 > config MACH_SMDKV310 > bool "SMDKV310" > select CPU_EXYNOS4210 > + select CLKDEV_LOOKUP > select S3C_DEV_RTC > select S3C_DEV_WDT > select S3C_DEV_I2C1 > diff --git a/arch/arm/mach-exynos4/clock.c b/arch/arm/mach-exynos4/clock.c > index 871f9d5..0b46326 100644 > --- a/arch/arm/mach-exynos4/clock.c > +++ b/arch/arm/mach-exynos4/clock.c > @@ -404,41 +404,49 @@ static struct clk init_clocks_off[] = { > .ctrlbit = (1<<24), ... > }, { > .name = "fimc", > + .devname = "s5p-fimc.0", This clock belongs to s5p-fimc driver however for exynos4 the platform device name is "exynos4-fimc". So the above line needs to be: + .devname = "exynos4-fimc.0", > .id = 0, > .enable = exynos4_clk_ip_cam_ctrl, > .ctrlbit = (1<< 0), > }, { > .name = "fimc", > + .devname = "s5p-fimc.1", Ditto. > .id = 1, > .enable = exynos4_clk_ip_cam_ctrl, > .ctrlbit = (1<< 1), > }, { > .name = "fimc", > + .devname = "s5p-fimc.2", Ditto. > .id = 2, > .enable = exynos4_clk_ip_cam_ctrl, > .ctrlbit = (1<< 2), > }, { > .name = "fimc", > + .devname = "s5p-fimc.3", Ditto. > .id = 3, > .enable = exynos4_clk_ip_cam_ctrl, > .ctrlbit = (1<< 3), > }, { ... > @@ -909,6 +950,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_cam", > + .devname = "s5pv310-fimc.0", As s5pv310 has been renamed to exynos4 the above line should be: + .devname = "exynos4-fimc.0", In fact "sclk_cam" clocks are not really tied to any FIMC instance, however IMHO keeping the current configuration is best thing to do at this stage. I intend to add a platform device for a media device driver which will integrate all FIMC entities and then assign both sclk_cam clocks to that platform device. > .id = 0, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 16), > @@ -919,6 +961,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_cam", > + .devname = "s5pv310-fimc.1", + .devname = "exynos4-fimc.1", > .id = 1, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 20), > @@ -929,6 +972,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_fimc", > + .devname = "s5pv310-fimc.0", + .devname = "exynos4-fimc.0", I'm going to fix the name in the driver during a coming rc period. This is were the driver name for exynos4 is being fixed up: http://tinyurl.com/638a9og > .id = 0, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 0), > @@ -939,6 +983,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_fimc", > + .devname = "s5pv310-fimc.1", Ditto. > .id = 1, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 4), > @@ -949,6 +994,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_fimc", > + .devname = "s5pv310-fimc.2", Ditto. > .id = 2, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 8), > @@ -959,6 +1005,7 @@ static struct clksrc_clk clksrcs[] = { > }, { > .clk = { > .name = "sclk_fimc", > + .devname = "s5pv310-fimc.3", Ditto. > .id = 3, > .enable = exynos4_clksrc_mask_cam_ctrl, > .ctrlbit = (1<< 12), -- Thanks, Sylwester Nawrocki ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham ` (4 preceding siblings ...) 2011-03-19 7:50 ` [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 Thomas Abraham @ 2011-03-19 7:50 ` Thomas Abraham 2011-03-25 8:35 ` Kukjin Kim 5 siblings, 1 reply; 11+ messages in thread From: Thomas Abraham @ 2011-03-19 7:50 UTC (permalink / raw) To: linux-samsung-soc; +Cc: kgene.kim, ben-linux clkdev.c is moved to drivers/clk. So build for clkdev.o can be removed from arch/arm/common/Makefile. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> --- arch/arm/common/Makefile | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile index e7521bc..6ea9b6f 100644 --- a/arch/arm/common/Makefile +++ b/arch/arm/common/Makefile @@ -16,5 +16,4 @@ obj-$(CONFIG_SHARP_SCOOP) += scoop.o obj-$(CONFIG_ARCH_IXP2000) += uengine.o obj-$(CONFIG_ARCH_IXP23XX) += uengine.o obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o -obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o -- 1.6.6.rc2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile 2011-03-19 7:50 ` [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile Thomas Abraham @ 2011-03-25 8:35 ` Kukjin Kim 0 siblings, 0 replies; 11+ messages in thread From: Kukjin Kim @ 2011-03-25 8:35 UTC (permalink / raw) To: 'Thomas Abraham', linux-samsung-soc Cc: 'Russell King - ARM Linux', linux-arm-kernel, ben-linux Thomas Abraham wrote: > > clkdev.c is moved to drivers/clk. So build for clkdev.o can > be removed from arch/arm/common/Makefile. > > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> > --- > arch/arm/common/Makefile | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile > index e7521bc..6ea9b6f 100644 > --- a/arch/arm/common/Makefile > +++ b/arch/arm/common/Makefile > @@ -16,5 +16,4 @@ obj-$(CONFIG_SHARP_SCOOP) += scoop.o > obj-$(CONFIG_ARCH_IXP2000) += uengine.o > obj-$(CONFIG_ARCH_IXP23XX) += uengine.o > obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o > -obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o > obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o > -- > 1.6.6.rc2 Yeah, right. But, should be handled in Linux ARM kernel mailing list. Cc'ed Russell and LAKML :) Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile @ 2011-03-25 8:35 ` Kukjin Kim 0 siblings, 0 replies; 11+ messages in thread From: Kukjin Kim @ 2011-03-25 8:35 UTC (permalink / raw) To: linux-arm-kernel Thomas Abraham wrote: > > clkdev.c is moved to drivers/clk. So build for clkdev.o can > be removed from arch/arm/common/Makefile. > > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> > --- > arch/arm/common/Makefile | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile > index e7521bc..6ea9b6f 100644 > --- a/arch/arm/common/Makefile > +++ b/arch/arm/common/Makefile > @@ -16,5 +16,4 @@ obj-$(CONFIG_SHARP_SCOOP) += scoop.o > obj-$(CONFIG_ARCH_IXP2000) += uengine.o > obj-$(CONFIG_ARCH_IXP23XX) += uengine.o > obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o > -obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o > obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o > -- > 1.6.6.rc2 Yeah, right. But, should be handled in Linux ARM kernel mailing list. Cc'ed Russell and LAKML :) Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-03-25 8:35 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-03-19 7:50 [PATCH 0/6] Prerequisite patches for device tree for Samsung's Exynos4 platform Thomas Abraham 2011-03-19 7:50 ` [PATCH 1/6] ARM: EXYNOS4: Fix addruart macro Thomas Abraham 2011-03-19 7:50 ` [PATCH 2/6] serial: samsung: Fix unintended usage of uart port 0 as console Thomas Abraham 2011-03-19 7:50 ` [PATCH 3/6] serial: s5pv210: Remove redundant console_initcall Thomas Abraham 2011-03-19 7:50 ` [PATCH 4/6] ARM: SAMSUNG: Add clkdev support Thomas Abraham 2011-03-19 7:50 ` [PATCH 5/6] ARM: SAMSUNG: Add clkdev support for exynos4 Thomas Abraham 2011-03-19 9:42 ` Seungwhan Youn 2011-03-19 12:02 ` Sylwester Nawrocki 2011-03-19 7:50 ` [PATCH 6/6] ARM: Remove clkdev.o build in arch/arm/common/Makefile Thomas Abraham 2011-03-25 8:35 ` Kukjin Kim 2011-03-25 8:35 ` Kukjin Kim
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.