Linux v3.11-7547-g44598f9
This commit is contained in:
parent
f34b9d37be
commit
220bf45473
@ -1,724 +0,0 @@
|
||||
From da41a8e42998c4bff8b19ee3d9fdfed6a5951c3f Mon Sep 17 00:00:00 2001
|
||||
From: "Manjunathappa, Prakash" <prakash.pm@ti.com>
|
||||
Date: Wed, 19 Jun 2013 14:45:38 +0530
|
||||
Subject: [PATCH 01/13] ARM: davinci: uart: move to devid based clk_get
|
||||
|
||||
For modules having single clock, clk_get should be done with dev_id.
|
||||
But current davinci implementation handles multiple instances
|
||||
of the UART devices with single platform_device_register. Hence clk_get
|
||||
is based on con_id rather than dev_id, this is not correct. Do
|
||||
platform_device_register for each instance and clk_get on dev_id.
|
||||
|
||||
Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
|
||||
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
|
||||
---
|
||||
arch/arm/mach-davinci/da830.c | 8 ++--
|
||||
arch/arm/mach-davinci/da850.c | 8 ++--
|
||||
arch/arm/mach-davinci/devices-da8xx.c | 42 +++++++++++++++++----
|
||||
arch/arm/mach-davinci/devices-tnetv107x.c | 37 +++++++++++++++---
|
||||
arch/arm/mach-davinci/dm355.c | 52 ++++++++++++++++++++------
|
||||
arch/arm/mach-davinci/dm365.c | 38 +++++++++++++------
|
||||
arch/arm/mach-davinci/dm644x.c | 52 ++++++++++++++++++++------
|
||||
arch/arm/mach-davinci/dm646x.c | 52 ++++++++++++++++++++------
|
||||
arch/arm/mach-davinci/include/mach/da8xx.h | 2 +-
|
||||
arch/arm/mach-davinci/include/mach/tnetv107x.h | 2 +-
|
||||
arch/arm/mach-davinci/serial.c | 19 ++++++----
|
||||
arch/arm/mach-davinci/tnetv107x.c | 8 ++--
|
||||
12 files changed, 239 insertions(+), 81 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
|
||||
index abbaf02..a3ffd52 100644
|
||||
--- a/arch/arm/mach-davinci/da830.c
|
||||
+++ b/arch/arm/mach-davinci/da830.c
|
||||
@@ -395,9 +395,9 @@ static struct clk_lookup da830_clks[] = {
|
||||
CLK(NULL, "tptc0", &tptc0_clk),
|
||||
CLK(NULL, "tptc1", &tptc1_clk),
|
||||
CLK("da830-mmc.0", NULL, &mmcsd_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
- CLK(NULL, "uart2", &uart2_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
+ CLK("serial8250.2", NULL, &uart2_clk),
|
||||
CLK("spi_davinci.0", NULL, &spi0_clk),
|
||||
CLK("spi_davinci.1", NULL, &spi1_clk),
|
||||
CLK(NULL, "ecap0", &ecap0_clk),
|
||||
@@ -1199,7 +1199,7 @@ static struct davinci_soc_info davinci_soc_info_da830 = {
|
||||
.gpio_base = DA8XX_GPIO_BASE,
|
||||
.gpio_num = 128,
|
||||
.gpio_irq = IRQ_DA8XX_GPIO0,
|
||||
- .serial_dev = &da8xx_serial_device,
|
||||
+ .serial_dev = da8xx_serial_device,
|
||||
.emac_pdata = &da8xx_emac_pdata,
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
|
||||
index a0d4f60..d4274ab 100644
|
||||
--- a/arch/arm/mach-davinci/da850.c
|
||||
+++ b/arch/arm/mach-davinci/da850.c
|
||||
@@ -451,9 +451,9 @@ static struct clk_lookup da850_clks[] = {
|
||||
CLK(NULL, "tpcc1", &tpcc1_clk),
|
||||
CLK(NULL, "tptc2", &tptc2_clk),
|
||||
CLK("pruss_uio", "pruss", &pruss_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
- CLK(NULL, "uart2", &uart2_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
+ CLK("serial8250.2", NULL, &uart2_clk),
|
||||
CLK(NULL, "aintc", &aintc_clk),
|
||||
CLK(NULL, "gpio", &gpio_clk),
|
||||
CLK("i2c_davinci.2", NULL, &i2c1_clk),
|
||||
@@ -1301,7 +1301,7 @@ static struct davinci_soc_info davinci_soc_info_da850 = {
|
||||
.gpio_base = DA8XX_GPIO_BASE,
|
||||
.gpio_num = 144,
|
||||
.gpio_irq = IRQ_DA8XX_GPIO0,
|
||||
- .serial_dev = &da8xx_serial_device,
|
||||
+ .serial_dev = da8xx_serial_device,
|
||||
.emac_pdata = &da8xx_emac_pdata,
|
||||
.sram_dma = DA8XX_SHARED_RAM_BASE,
|
||||
.sram_len = SZ_128K,
|
||||
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
|
||||
index 71a46a3..280f67d 100644
|
||||
--- a/arch/arm/mach-davinci/devices-da8xx.c
|
||||
+++ b/arch/arm/mach-davinci/devices-da8xx.c
|
||||
@@ -68,7 +68,7 @@
|
||||
void __iomem *da8xx_syscfg0_base;
|
||||
void __iomem *da8xx_syscfg1_base;
|
||||
|
||||
-static struct plat_serial8250_port da8xx_serial_pdata[] = {
|
||||
+static struct plat_serial8250_port da8xx_serial0_pdata[] = {
|
||||
{
|
||||
.mapbase = DA8XX_UART0_BASE,
|
||||
.irq = IRQ_DA8XX_UARTINT0,
|
||||
@@ -78,6 +78,11 @@ static struct plat_serial8250_port da8xx_serial_pdata[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port da8xx_serial1_pdata[] = {
|
||||
+ {
|
||||
.mapbase = DA8XX_UART1_BASE,
|
||||
.irq = IRQ_DA8XX_UARTINT1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -86,6 +91,11 @@ static struct plat_serial8250_port da8xx_serial_pdata[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port da8xx_serial2_pdata[] = {
|
||||
+ {
|
||||
.mapbase = DA8XX_UART2_BASE,
|
||||
.irq = IRQ_DA8XX_UARTINT2,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -95,15 +105,33 @@ static struct plat_serial8250_port da8xx_serial_pdata[] = {
|
||||
},
|
||||
{
|
||||
.flags = 0,
|
||||
- },
|
||||
+ }
|
||||
};
|
||||
|
||||
-struct platform_device da8xx_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev = {
|
||||
- .platform_data = da8xx_serial_pdata,
|
||||
+struct platform_device da8xx_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev = {
|
||||
+ .platform_data = da8xx_serial0_pdata,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev = {
|
||||
+ .platform_data = da8xx_serial1_pdata,
|
||||
+ }
|
||||
},
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM2,
|
||||
+ .dev = {
|
||||
+ .platform_data = da8xx_serial2_pdata,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static s8 da8xx_queue_tc_mapping[][2] = {
|
||||
diff --git a/arch/arm/mach-davinci/devices-tnetv107x.c b/arch/arm/mach-davinci/devices-tnetv107x.c
|
||||
index 128cb9a..fc4a0fe 100644
|
||||
--- a/arch/arm/mach-davinci/devices-tnetv107x.c
|
||||
+++ b/arch/arm/mach-davinci/devices-tnetv107x.c
|
||||
@@ -126,7 +126,7 @@ static struct platform_device edma_device = {
|
||||
.dev.platform_data = tnetv107x_edma_info,
|
||||
};
|
||||
|
||||
-static struct plat_serial8250_port serial_data[] = {
|
||||
+static struct plat_serial8250_port serial0_platform_data[] = {
|
||||
{
|
||||
.mapbase = TNETV107X_UART0_BASE,
|
||||
.irq = IRQ_TNETV107X_UART0,
|
||||
@@ -137,6 +137,11 @@ static struct plat_serial8250_port serial_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port serial1_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = TNETV107X_UART1_BASE,
|
||||
.irq = IRQ_TNETV107X_UART1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -146,6 +151,11 @@ static struct plat_serial8250_port serial_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port serial2_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = TNETV107X_UART2_BASE,
|
||||
.irq = IRQ_TNETV107X_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -156,13 +166,28 @@ static struct plat_serial8250_port serial_data[] = {
|
||||
},
|
||||
{
|
||||
.flags = 0,
|
||||
- },
|
||||
+ }
|
||||
};
|
||||
|
||||
-struct platform_device tnetv107x_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev.platform_data = serial_data,
|
||||
+
|
||||
+struct platform_device tnetv107x_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev.platform_data = serial0_platform_data,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev.platform_data = serial1_platform_data,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM2,
|
||||
+ .dev.platform_data = serial2_platform_data,
|
||||
+ },
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static struct resource mmc0_resources[] = {
|
||||
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
|
||||
index 86100d1..1701a2d 100644
|
||||
--- a/arch/arm/mach-davinci/dm355.c
|
||||
+++ b/arch/arm/mach-davinci/dm355.c
|
||||
@@ -357,9 +357,9 @@ static struct clk_lookup dm355_clks[] = {
|
||||
CLK(NULL, "clkout3", &clkout3_clk),
|
||||
CLK(NULL, "arm", &arm_clk),
|
||||
CLK(NULL, "mjcp", &mjcp_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
- CLK(NULL, "uart2", &uart2_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
+ CLK("serial8250.2", NULL, &uart2_clk),
|
||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||
CLK("davinci-mcbsp.0", NULL, &asp0_clk),
|
||||
CLK("davinci-mcbsp.1", NULL, &asp1_clk),
|
||||
@@ -922,7 +922,7 @@ static struct davinci_timer_info dm355_timer_info = {
|
||||
.clocksource_id = T0_TOP,
|
||||
};
|
||||
|
||||
-static struct plat_serial8250_port dm355_serial_platform_data[] = {
|
||||
+static struct plat_serial8250_port dm355_serial0_platform_data[] = {
|
||||
{
|
||||
.mapbase = DAVINCI_UART0_BASE,
|
||||
.irq = IRQ_UARTINT0,
|
||||
@@ -932,6 +932,11 @@ static struct plat_serial8250_port dm355_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm355_serial1_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DAVINCI_UART1_BASE,
|
||||
.irq = IRQ_UARTINT1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -940,6 +945,11 @@ static struct plat_serial8250_port dm355_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm355_serial2_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DM355_UART2_BASE,
|
||||
.irq = IRQ_DM355_UARTINT2,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -948,16 +958,34 @@ static struct plat_serial8250_port dm355_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
- .flags = 0
|
||||
- },
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
};
|
||||
|
||||
-static struct platform_device dm355_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev = {
|
||||
- .platform_data = dm355_serial_platform_data,
|
||||
+static struct platform_device dm355_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm355_serial0_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm355_serial1_platform_data,
|
||||
+ }
|
||||
},
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM2,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm355_serial2_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static struct davinci_soc_info davinci_soc_info_dm355 = {
|
||||
@@ -981,7 +1009,7 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
|
||||
.gpio_base = DAVINCI_GPIO_BASE,
|
||||
.gpio_num = 104,
|
||||
.gpio_irq = IRQ_DM355_GPIOBNK0,
|
||||
- .serial_dev = &dm355_serial_device,
|
||||
+ .serial_dev = dm355_serial_device,
|
||||
.sram_dma = 0x00010000,
|
||||
.sram_len = SZ_32K,
|
||||
};
|
||||
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
|
||||
index dad2802..5b3a1bc 100644
|
||||
--- a/arch/arm/mach-davinci/dm365.c
|
||||
+++ b/arch/arm/mach-davinci/dm365.c
|
||||
@@ -455,8 +455,8 @@ static struct clk_lookup dm365_clks[] = {
|
||||
CLK("vpss", "master", &vpss_master_clk),
|
||||
CLK("vpss", "slave", &vpss_slave_clk),
|
||||
CLK(NULL, "arm", &arm_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||
CLK("da830-mmc.0", NULL, &mmcsd0_clk),
|
||||
CLK("da830-mmc.1", NULL, &mmcsd1_clk),
|
||||
@@ -1041,7 +1041,7 @@ static struct davinci_timer_info dm365_timer_info = {
|
||||
|
||||
#define DM365_UART1_BASE (IO_PHYS + 0x106000)
|
||||
|
||||
-static struct plat_serial8250_port dm365_serial_platform_data[] = {
|
||||
+static struct plat_serial8250_port dm365_serial0_platform_data[] = {
|
||||
{
|
||||
.mapbase = DAVINCI_UART0_BASE,
|
||||
.irq = IRQ_UARTINT0,
|
||||
@@ -1051,6 +1051,11 @@ static struct plat_serial8250_port dm365_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm365_serial1_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DM365_UART1_BASE,
|
||||
.irq = IRQ_UARTINT1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -1059,16 +1064,27 @@ static struct plat_serial8250_port dm365_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
- .flags = 0
|
||||
- },
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
};
|
||||
|
||||
-static struct platform_device dm365_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev = {
|
||||
- .platform_data = dm365_serial_platform_data,
|
||||
+static struct platform_device dm365_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm365_serial0_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm365_serial1_platform_data,
|
||||
+ }
|
||||
},
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static struct davinci_soc_info davinci_soc_info_dm365 = {
|
||||
@@ -1093,7 +1109,7 @@ static struct davinci_soc_info davinci_soc_info_dm365 = {
|
||||
.gpio_num = 104,
|
||||
.gpio_irq = IRQ_DM365_GPIO0,
|
||||
.gpio_unbanked = 8, /* really 16 ... skip muxed GPIOs */
|
||||
- .serial_dev = &dm365_serial_device,
|
||||
+ .serial_dev = dm365_serial_device,
|
||||
.emac_pdata = &dm365_emac_pdata,
|
||||
.sram_dma = 0x00010000,
|
||||
.sram_len = SZ_32K,
|
||||
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
|
||||
index a49d182..490eb8c 100644
|
||||
--- a/arch/arm/mach-davinci/dm644x.c
|
||||
+++ b/arch/arm/mach-davinci/dm644x.c
|
||||
@@ -303,9 +303,9 @@ static struct clk_lookup dm644x_clks[] = {
|
||||
CLK("vpss", "master", &vpss_master_clk),
|
||||
CLK("vpss", "slave", &vpss_slave_clk),
|
||||
CLK(NULL, "arm", &arm_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
- CLK(NULL, "uart2", &uart2_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
+ CLK("serial8250.2", NULL, &uart2_clk),
|
||||
CLK("davinci_emac.1", NULL, &emac_clk),
|
||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||
CLK("palm_bk3710", NULL, &ide_clk),
|
||||
@@ -813,7 +813,7 @@ static struct davinci_timer_info dm644x_timer_info = {
|
||||
.clocksource_id = T0_TOP,
|
||||
};
|
||||
|
||||
-static struct plat_serial8250_port dm644x_serial_platform_data[] = {
|
||||
+static struct plat_serial8250_port dm644x_serial0_platform_data[] = {
|
||||
{
|
||||
.mapbase = DAVINCI_UART0_BASE,
|
||||
.irq = IRQ_UARTINT0,
|
||||
@@ -823,6 +823,11 @@ static struct plat_serial8250_port dm644x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm644x_serial1_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DAVINCI_UART1_BASE,
|
||||
.irq = IRQ_UARTINT1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -831,6 +836,11 @@ static struct plat_serial8250_port dm644x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm644x_serial2_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DAVINCI_UART2_BASE,
|
||||
.irq = IRQ_UARTINT2,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -839,16 +849,34 @@ static struct plat_serial8250_port dm644x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
- .flags = 0
|
||||
- },
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
};
|
||||
|
||||
-static struct platform_device dm644x_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev = {
|
||||
- .platform_data = dm644x_serial_platform_data,
|
||||
+static struct platform_device dm644x_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm644x_serial0_platform_data,
|
||||
+ }
|
||||
},
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm644x_serial1_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM2,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm644x_serial2_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static struct davinci_soc_info davinci_soc_info_dm644x = {
|
||||
@@ -872,7 +900,7 @@ static struct davinci_soc_info davinci_soc_info_dm644x = {
|
||||
.gpio_base = DAVINCI_GPIO_BASE,
|
||||
.gpio_num = 71,
|
||||
.gpio_irq = IRQ_GPIOBNK0,
|
||||
- .serial_dev = &dm644x_serial_device,
|
||||
+ .serial_dev = dm644x_serial_device,
|
||||
.emac_pdata = &dm644x_emac_pdata,
|
||||
.sram_dma = 0x00008000,
|
||||
.sram_len = SZ_16K,
|
||||
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
|
||||
index d1259e8..23609b1 100644
|
||||
--- a/arch/arm/mach-davinci/dm646x.c
|
||||
+++ b/arch/arm/mach-davinci/dm646x.c
|
||||
@@ -342,9 +342,9 @@ static struct clk_lookup dm646x_clks[] = {
|
||||
CLK(NULL, "edma_tc1", &edma_tc1_clk),
|
||||
CLK(NULL, "edma_tc2", &edma_tc2_clk),
|
||||
CLK(NULL, "edma_tc3", &edma_tc3_clk),
|
||||
- CLK(NULL, "uart0", &uart0_clk),
|
||||
- CLK(NULL, "uart1", &uart1_clk),
|
||||
- CLK(NULL, "uart2", &uart2_clk),
|
||||
+ CLK("serial8250.0", NULL, &uart0_clk),
|
||||
+ CLK("serial8250.1", NULL, &uart1_clk),
|
||||
+ CLK("serial8250.2", NULL, &uart2_clk),
|
||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||
CLK(NULL, "gpio", &gpio_clk),
|
||||
CLK("davinci-mcasp.0", NULL, &mcasp0_clk),
|
||||
@@ -790,7 +790,7 @@ static struct davinci_timer_info dm646x_timer_info = {
|
||||
.clocksource_id = T0_TOP,
|
||||
};
|
||||
|
||||
-static struct plat_serial8250_port dm646x_serial_platform_data[] = {
|
||||
+static struct plat_serial8250_port dm646x_serial0_platform_data[] = {
|
||||
{
|
||||
.mapbase = DAVINCI_UART0_BASE,
|
||||
.irq = IRQ_UARTINT0,
|
||||
@@ -800,6 +800,11 @@ static struct plat_serial8250_port dm646x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm646x_serial1_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DAVINCI_UART1_BASE,
|
||||
.irq = IRQ_UARTINT1,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -808,6 +813,11 @@ static struct plat_serial8250_port dm646x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
+};
|
||||
+static struct plat_serial8250_port dm646x_serial2_platform_data[] = {
|
||||
+ {
|
||||
.mapbase = DAVINCI_UART2_BASE,
|
||||
.irq = IRQ_DM646X_UARTINT2,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
|
||||
@@ -816,16 +826,34 @@ static struct plat_serial8250_port dm646x_serial_platform_data[] = {
|
||||
.regshift = 2,
|
||||
},
|
||||
{
|
||||
- .flags = 0
|
||||
- },
|
||||
+ .flags = 0,
|
||||
+ }
|
||||
};
|
||||
|
||||
-static struct platform_device dm646x_serial_device = {
|
||||
- .name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM,
|
||||
- .dev = {
|
||||
- .platform_data = dm646x_serial_platform_data,
|
||||
+static struct platform_device dm646x_serial_device[] = {
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm646x_serial0_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm646x_serial1_platform_data,
|
||||
+ }
|
||||
},
|
||||
+ {
|
||||
+ .name = "serial8250",
|
||||
+ .id = PLAT8250_DEV_PLATFORM2,
|
||||
+ .dev = {
|
||||
+ .platform_data = dm646x_serial2_platform_data,
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ }
|
||||
};
|
||||
|
||||
static struct davinci_soc_info davinci_soc_info_dm646x = {
|
||||
@@ -849,7 +877,7 @@ static struct davinci_soc_info davinci_soc_info_dm646x = {
|
||||
.gpio_base = DAVINCI_GPIO_BASE,
|
||||
.gpio_num = 43, /* Only 33 usable */
|
||||
.gpio_irq = IRQ_DM646X_GPIOBNK0,
|
||||
- .serial_dev = &dm646x_serial_device,
|
||||
+ .serial_dev = dm646x_serial_device,
|
||||
.emac_pdata = &dm646x_emac_pdata,
|
||||
.sram_dma = 0x10010000,
|
||||
.sram_len = SZ_32K,
|
||||
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h
|
||||
index 7b41a5e..aae5307 100644
|
||||
--- a/arch/arm/mach-davinci/include/mach/da8xx.h
|
||||
+++ b/arch/arm/mach-davinci/include/mach/da8xx.h
|
||||
@@ -111,7 +111,7 @@ void da8xx_restart(enum reboot_mode mode, const char *cmd);
|
||||
void da8xx_rproc_reserve_cma(void);
|
||||
int da8xx_register_rproc(void);
|
||||
|
||||
-extern struct platform_device da8xx_serial_device;
|
||||
+extern struct platform_device da8xx_serial_device[];
|
||||
extern struct emac_platform_data da8xx_emac_pdata;
|
||||
extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata;
|
||||
extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata;
|
||||
diff --git a/arch/arm/mach-davinci/include/mach/tnetv107x.h b/arch/arm/mach-davinci/include/mach/tnetv107x.h
|
||||
index 16314c6..beb7c0e 100644
|
||||
--- a/arch/arm/mach-davinci/include/mach/tnetv107x.h
|
||||
+++ b/arch/arm/mach-davinci/include/mach/tnetv107x.h
|
||||
@@ -50,7 +50,7 @@ struct tnetv107x_device_info {
|
||||
};
|
||||
|
||||
extern struct platform_device tnetv107x_wdt_device;
|
||||
-extern struct platform_device tnetv107x_serial_device;
|
||||
+extern struct platform_device tnetv107x_serial_device[];
|
||||
|
||||
extern void tnetv107x_init(void);
|
||||
extern void tnetv107x_devices_init(struct tnetv107x_device_info *);
|
||||
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c
|
||||
index f262581..57e6150 100644
|
||||
--- a/arch/arm/mach-davinci/serial.c
|
||||
+++ b/arch/arm/mach-davinci/serial.c
|
||||
@@ -76,7 +76,7 @@ int __init davinci_serial_setup_clk(unsigned instance, unsigned int *rate)
|
||||
char name[16];
|
||||
struct clk *clk;
|
||||
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
||||
- struct device *dev = &soc_info->serial_dev->dev;
|
||||
+ struct device *dev = &soc_info->serial_dev[instance].dev;
|
||||
|
||||
sprintf(name, "uart%d", instance);
|
||||
clk = clk_get(dev, name);
|
||||
@@ -96,19 +96,25 @@ int __init davinci_serial_setup_clk(unsigned instance, unsigned int *rate)
|
||||
|
||||
int __init davinci_serial_init(struct davinci_uart_config *info)
|
||||
{
|
||||
- int i, ret;
|
||||
+ int i, ret = 0;
|
||||
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
||||
- struct device *dev = &soc_info->serial_dev->dev;
|
||||
- struct plat_serial8250_port *p = dev->platform_data;
|
||||
+ struct device *dev;
|
||||
+ struct plat_serial8250_port *p;
|
||||
|
||||
/*
|
||||
* Make sure the serial ports are muxed on at this point.
|
||||
* You have to mux them off in device drivers later on if not needed.
|
||||
*/
|
||||
- for (i = 0; p->flags; i++, p++) {
|
||||
+ for (i = 0; soc_info->serial_dev[i].dev.platform_data != NULL; i++) {
|
||||
+ dev = &soc_info->serial_dev[i].dev;
|
||||
+ p = dev->platform_data;
|
||||
if (!(info->enabled_uarts & (1 << i)))
|
||||
continue;
|
||||
|
||||
+ ret = platform_device_register(&soc_info->serial_dev[i]);
|
||||
+ if (ret)
|
||||
+ continue;
|
||||
+
|
||||
ret = davinci_serial_setup_clk(i, &p->uartclk);
|
||||
if (ret)
|
||||
continue;
|
||||
@@ -125,6 +131,5 @@ int __init davinci_serial_init(struct davinci_uart_config *info)
|
||||
if (p->membase && p->type != PORT_AR7)
|
||||
davinci_serial_reset(p);
|
||||
}
|
||||
-
|
||||
- return platform_device_register(soc_info->serial_dev);
|
||||
+ return ret;
|
||||
}
|
||||
diff --git a/arch/arm/mach-davinci/tnetv107x.c b/arch/arm/mach-davinci/tnetv107x.c
|
||||
index 4545667..f4d7fbb 100644
|
||||
--- a/arch/arm/mach-davinci/tnetv107x.c
|
||||
+++ b/arch/arm/mach-davinci/tnetv107x.c
|
||||
@@ -264,7 +264,7 @@ static struct clk_lookup clks[] = {
|
||||
CLK(NULL, "clk_chipcfg", &clk_chipcfg),
|
||||
CLK("tnetv107x-ts.0", NULL, &clk_tsc),
|
||||
CLK(NULL, "clk_rom", &clk_rom),
|
||||
- CLK(NULL, "uart2", &clk_uart2),
|
||||
+ CLK("serial8250.2", NULL, &clk_uart2),
|
||||
CLK(NULL, "clk_pktsec", &clk_pktsec),
|
||||
CLK("tnetv107x-rng.0", NULL, &clk_rng),
|
||||
CLK("tnetv107x-pka.0", NULL, &clk_pka),
|
||||
@@ -274,8 +274,8 @@ static struct clk_lookup clks[] = {
|
||||
CLK(NULL, "clk_gpio", &clk_gpio),
|
||||
CLK(NULL, "clk_mdio", &clk_mdio),
|
||||
CLK("dm6441-mmc.0", NULL, &clk_sdio0),
|
||||
- CLK(NULL, "uart0", &clk_uart0),
|
||||
- CLK(NULL, "uart1", &clk_uart1),
|
||||
+ CLK("serial8250.0", NULL, &clk_uart0),
|
||||
+ CLK("serial8250.1", NULL, &clk_uart1),
|
||||
CLK(NULL, "timer0", &clk_timer0),
|
||||
CLK(NULL, "timer1", &clk_timer1),
|
||||
CLK("tnetv107x_wdt.0", NULL, &clk_wdt_arm),
|
||||
@@ -757,7 +757,7 @@ static struct davinci_soc_info tnetv107x_soc_info = {
|
||||
.gpio_type = GPIO_TYPE_TNETV107X,
|
||||
.gpio_num = TNETV107X_N_GPIO,
|
||||
.timer_info = &timer_info,
|
||||
- .serial_dev = &tnetv107x_serial_device,
|
||||
+ .serial_dev = tnetv107x_serial_device,
|
||||
};
|
||||
|
||||
void __init tnetv107x_init(void)
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -1,58 +0,0 @@
|
||||
diff -uNr linux-3.10.0-0.rc7.git0.2.fc20.x86_64/arch/arm/boot/dts/imx6q-wandboard.dts linux-3.10.0-0.rc7.git0.2.fc20.armv7hl/arch/arm/boot/dts/imx6q-wandboard.dts
|
||||
--- linux-3.10.0-0.rc7.git0.2.fc20.x86_64/arch/arm/boot/dts/imx6q-wandboard.dts 1969-12-31 18:00:00.000000000 -0600
|
||||
+++ linux-3.10.0-0.rc7.git0.2.fc20.armv7hl/arch/arm/boot/dts/imx6q-wandboard.dts 2013-06-30 15:09:21.350610898 -0500
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*
|
||||
+ * Copyright 2013 Freescale Semiconductor, Inc.
|
||||
+ *
|
||||
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
+ * published by the Free Software Foundation.
|
||||
+ *
|
||||
+ */
|
||||
+/dts-v1/;
|
||||
+#include "imx6q.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Wandboard i.MX6 Quad Board";
|
||||
+ compatible = "wand,imx6q-wandboard", "fsl,imx6q";
|
||||
+
|
||||
+ memory {
|
||||
+ reg = <0x10000000 0x80000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&fec {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pinctrl_enet_1>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pinctrl_uart1_1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbh1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usdhc3 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pinctrl_usdhc3_2>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
--- linux-3.11.0-0.rc0.git6.2.fc20.x86_64/arch/arm/boot/dts/Makefile.orig 2013-07-12 10:45:40.231087368 -0500
|
||||
+++ linux-3.11.0-0.rc0.git6.2.fc20.x86_64/arch/arm/boot/dts/Makefile 2013-07-12 10:48:39.973819470 -0500
|
||||
@@ -131,6 +131,7 @@
|
||||
imx6q-sabrelite.dtb \
|
||||
imx6q-sabresd.dtb \
|
||||
imx6q-sbc6x.dtb \
|
||||
+ imx6q-wandboard.dtb \
|
||||
imx6sl-evk.dtb \
|
||||
vf610-twr.dtb
|
||||
dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
|
@ -71,6 +71,7 @@ CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_SOC_OMAP5=y
|
||||
# CONFIG_SOC_DRA7XX is not set
|
||||
# CONFIG_SOC_OMAP2420 is not set
|
||||
# CONFIG_SOC_OMAP2430 is not set
|
||||
CONFIG_SOC_OMAP3430=y
|
||||
@ -483,7 +484,7 @@ CONFIG_TEGRA30_MC=y
|
||||
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
|
||||
CONFIG_TEGRA_PCI=y
|
||||
CONFIG_PCI_TEGRA=y
|
||||
CONFIG_TEGRA_IOMMU_GART=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
|
@ -57,6 +57,7 @@ CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
||||
# CONFIG_ARCH_SIRF is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_WM8850 is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
|
||||
# highbank
|
||||
# 2013/04/19 - stability issues
|
||||
|
@ -4256,6 +4256,9 @@ CONFIG_FB_ATY_BACKLIGHT=y
|
||||
# CONFIG_BACKLIGHT_SAHARA is not set
|
||||
CONFIG_BACKLIGHT_WM831X=m
|
||||
CONFIG_BACKLIGHT_LP855X=m
|
||||
# CONFIG_BACKLIGHT_GPIO is not set
|
||||
# CONFIG_BACKLIGHT_LV5207LP is not set
|
||||
# CONFIG_BACKLIGHT_BD6107 is not set
|
||||
|
||||
CONFIG_LCD_CLASS_DEVICE=m
|
||||
CONFIG_LCD_PLATFORM=m
|
||||
|
13
kernel.spec
13
kernel.spec
@ -62,7 +62,7 @@ Summary: The Linux kernel
|
||||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 2
|
||||
%global baserelease 1
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
@ -95,7 +95,7 @@ Summary: The Linux kernel
|
||||
# The rc snapshot level
|
||||
%define rcrev 0
|
||||
# The git snapshot level
|
||||
%define gitrev 14
|
||||
%define gitrev 15
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 3.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -713,12 +713,8 @@ Patch21010: arm-omap-load-tfp410.patch
|
||||
# ARM tegra
|
||||
Patch21020: arm-tegra-usb-no-reset-linux33.patch
|
||||
|
||||
# ARM wandboard
|
||||
Patch21030: arm-wandboard-quad.patch
|
||||
|
||||
# AM33xx
|
||||
Patch21040: 0001-reset-Add-driver-for-gpio-controlled-reset-pins.patch
|
||||
Patch21041: 0001-ARM-davinci-uart-move-to-devid-based-clk_get.patch
|
||||
Patch21042: 0002-dma-edma-add-device_slave_sg_limits-support.patch
|
||||
Patch21043: 0003-dmaengine-add-dma_get_slave_sg_limits.patch
|
||||
Patch21044: 0004-mmc-omap_hsmmc-set-max_segs-based-on-dma-engine-limi.patch
|
||||
@ -1334,11 +1330,9 @@ ApplyPatch arm-exynos-mp.patch
|
||||
ApplyPatch arm-highbank-for-3.12.patch
|
||||
#pplyPatch arm-omap-load-tfp410.patch
|
||||
ApplyPatch arm-tegra-usb-no-reset-linux33.patch
|
||||
ApplyPatch arm-wandboard-quad.patch
|
||||
|
||||
# Fix OMAP and AM33xx (BeagleBone)
|
||||
ApplyPatch 0001-reset-Add-driver-for-gpio-controlled-reset-pins.patch
|
||||
ApplyPatch 0001-ARM-davinci-uart-move-to-devid-based-clk_get.patch
|
||||
ApplyPatch 0002-dma-edma-add-device_slave_sg_limits-support.patch
|
||||
ApplyPatch 0003-dmaengine-add-dma_get_slave_sg_limits.patch
|
||||
ApplyPatch 0004-mmc-omap_hsmmc-set-max_segs-based-on-dma-engine-limi.patch
|
||||
@ -2303,6 +2297,9 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Sep 09 2013 Josh Boyer <jwboyer@fedoraproject.org> - 3.12.0-0.rc0.git15.1
|
||||
- Linux v3.11-7547-g44598f9
|
||||
|
||||
* Sun Sep 8 2013 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Minor updates to OMAP and AM33xx
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user