summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-07-11 14:48:50 +0200
committerStefan Agner <stefan.agner@toradex.com>2014-07-11 14:48:50 +0200
commit07efcf5218e6f4751b22af63337e6179f269cc89 (patch)
tree99c5dfe94d191e8f9f9d5b46be7408c56da83bcb
parentce65db1a5727dbf6d0dafa44e77fe51980d1653f (diff)
parent62d8d94a83ffbd5e1c8e99ffefc84811a3947ec9 (diff)
Merge tag '3.0-vybrid-ts2.17' into colibri_vf_next
3.0-vybrid-ts2.17 Conflicts: arch/arm/plat-mxc/include/mach/iomux-mvf.h
-rw-r--r--arch/arm/common/gic.c2
-rw-r--r--arch/arm/mach-mvf/board-twr-vf700.c4
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mvf.h80
-rw-r--r--drivers/tty/serial/mvf.c3
4 files changed, 74 insertions, 15 deletions
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index ab8c07d48a26..a03e56eeecb7 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -376,7 +376,7 @@ void __cpuinit gic_secondary_init(unsigned int gic_nr)
gic_cpu_init(&gic_data[gic_nr]);
}
-void __cpuinit gic_enable_ppi(unsigned int irq)
+void gic_enable_ppi(unsigned int irq)
{
unsigned long flags;
diff --git a/arch/arm/mach-mvf/board-twr-vf700.c b/arch/arm/mach-mvf/board-twr-vf700.c
index 576233588dde..3c19b1c70ec9 100644
--- a/arch/arm/mach-mvf/board-twr-vf700.c
+++ b/arch/arm/mach-mvf/board-twr-vf700.c
@@ -249,13 +249,13 @@ static struct platform_device mvf_twr_audio_device = {
};
static struct imxuart_platform_data mvf_uart1_pdata = {
- .flags = IMXUART_FIFO,
+ .flags = IMXUART_FIFO | IMXUART_EDMA,
.dma_req_rx = DMA_MUX03_UART1_RX,
.dma_req_tx = DMA_MUX03_UART1_TX,
};
static struct imxuart_platform_data mvf_uart0_pdata = {
- .flags = IMXUART_FIFO,
+ .flags = IMXUART_FIFO | IMXUART_EDMA,
.dma_req_rx = DMA_MUX03_UART0_RX,
.dma_req_tx = DMA_MUX03_UART0_TX,
};
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mvf.h b/arch/arm/plat-mxc/include/mach/iomux-mvf.h
index 4022ee0469bc..3e69c593535f 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mvf.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mvf.h
@@ -394,7 +394,15 @@ typedef enum iomux_config {
#define MVF600_PAD133_PTE28_DCU0_B7 \
IOMUX_PAD(0x0214, 0x0214, 1, 0x0000, 0, MVF600_DCU_PAD_CTRL)
-/*UART1*/
+/* UART0: PTB10, PTB11 – ALT1 */
+#define MVF600_PAD32_PTB10_UART0_TX \
+ IOMUX_PAD(0x0080, 0x0080, 1, 0x0000, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD33_PTB11_UART0_RX \
+ IOMUX_PAD(0x0084, 0x0084, 1, 0x0000, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART1: PTB4, PTB5 – ALT2 */
#define MVF600_PAD26_PTB4_UART1_TX \
IOMUX_PAD(0x0068, 0x0068, 2, 0x0380, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
@@ -406,8 +414,56 @@ typedef enum iomux_config {
#define MVF600_PAD32_PTB10_UART0_TX \
IOMUX_PAD(0x0080, 0x0080, 1, 0x0000, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
-#define MVF600_PAD33_PTB11_UART0_RX \
- IOMUX_PAD(0x0084, 0x0084, 1, 0x0000, 0, \
+#define MVF600_PAD48_PTC3_UART1_RX \
+ IOMUX_PAD(0x00c0, 0x00co, 2, 0x037C, 1, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART1: PTB23, PTB24 – ALT2 */
+#define MVF600_PAD93_PTB23_UART1_TX \
+ IOMUX_PAD(0x0174, 0x0174, 2, 0x0380, 2, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD94_PTB24_UART1_RX \
+ IOMUX_PAD(0x0178, 0x0178, 2, 0x037C, 2, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART2: PTB6, PTB7 – ALT7 */
+#define MVF600_PAD28_PTB6_UART2_TX \
+ IOMUX_PAD( 0x0070, 0x0070, 7, 0x038C, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD29_PTB7_UART2_RX \
+ IOMUX_PAD( 0x0074, 0x0074, 7, 0x0388, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART2: PTD23, PTD22 – ALT6 */
+#define MVF600_PAD71_PTD23_UART2_TX \
+ IOMUX_PAD(0x011C, 0x011C, 6, 0x038C, 1, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD72_PTD22_UART2_RX \
+ IOMUX_PAD(0x0120, 0x0120, 6, 0x0388, 1, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART2: PTD0, PTD1 – ALT2 */
+#define MVF600_PAD79_PTD0_UART2_TX \
+ IOMUX_PAD(0x013C, 0x013C, 2, 0x038C, 2, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD80_PTD1_UART2_RX \
+ IOMUX_PAD(0x0140, 0x0140, 2, 0x0388, 2, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART3: PTA20, PTA21 – ALT6 */
+#define MVF600_PAD10_PTA20_UART3_TX \
+ IOMUX_PAD( 0x0028, 0x0028, 6, 0x0394, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD11_PTA21_UART3_RX \
+ IOMUX_PAD( 0x002c, 0x002c, 6, 0x0390, 0, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
+
+/* UART3: PTA30, PTA31 – ALT7 */
+#define MVF600_PAD20_PTA30_UART3_TX \
+ IOMUX_PAD( 0x0050, 0x0050, 7, 0x0394, 1, \
+ MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
+#define MVF600_PAD21_PTA31_UART3_RX \
+ IOMUX_PAD( 0x0054, 0x0054, 7, 0x0390, 1, \
MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
#define MVF600_PAD34_PTB12_UART0_RTS \
IOMUX_PAD(0x0088, 0x0088, 1, 0x0000, 0, \
@@ -452,18 +508,20 @@ typedef enum iomux_config {
#define MVF600_PAD30_PTB8_INT \
IOMUX_PAD(0x0078, 0x0078, 0, 0x032C, 0, MVF600_FTM1_CH_CTRL)
-#define MVF600_PAD28_PTB6_UART2_TX \
- IOMUX_PAD(0x0070, 0x0070, 7, 0x038C, 0, \
+/* UART4: PTA28, PTA29 – ALT4 */
+#define MVF600_PAD18_PTA28_UART4_TX \
+ IOMUX_PAD( 0x0048, 0x0048, 4, 0x0000, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
-#define MVF600_PAD29_PTB7_UART2_RX \
- IOMUX_PAD(0x0074, 0x0074, 7, 0x0388, 0, \
+#define MVF600_PAD19_PTA29_UART4_RX \
+ IOMUX_PAD( 0x004c, 0x004c, 4, 0x0000, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
-#define MVF600_PAD10_PTA20_UART3_TX \
- IOMUX_PAD(0x0028, 0x0028, 6, 0x0394, 0, \
+/* UART5: PTC14, PTC15 – ALT4 */
+#define MVF600_PAD59_PTC14_UART5_TX \
+ IOMUX_PAD( 0x00ec, 0x00ec, 4, 0x0000, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_OBE_ENABLE)
-#define MVF600_PAD11_PTA21_UART3_RX \
- IOMUX_PAD(0x002C, 0x002C, 6, 0x0390, 0, \
+#define MVF600_PAD60_PTC15_UART5_RX \
+ IOMUX_PAD( 0x00f0, 0x00f0, 4, 0x0000, 0, \
MVF600_UART_PAD_CTRL | PAD_CTL_IBE_ENABLE)
/* GPIO Input (disabled in case of 2nd Ethernet) */
diff --git a/drivers/tty/serial/mvf.c b/drivers/tty/serial/mvf.c
index a174b63e2225..5bf18fe5e3dc 100644
--- a/drivers/tty/serial/mvf.c
+++ b/drivers/tty/serial/mvf.c
@@ -788,7 +788,7 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
brfa = ((sport->port.uartclk - (16 * sbr * baud)) * 2)/baud;
bdh &= ~MXC_UARTBDH_SBR_MASK;
- bdh |= (sbr >> 8) & 0x1F;
+ bdh |= (sbr >> 8) & MXC_UARTBDH_SBR_MASK;
cr4 &= ~MXC_UARTCR4_BRFA_MASK;
brfa &= MXC_UARTCR4_BRFA_MASK;
@@ -1250,6 +1250,7 @@ static int serial_imx_probe(struct platform_device *pdev)
if (pdata && (pdata->flags & IMXUART_EDMA))
{
sport->enable_dma = 1;
+ sport->dma_tx_ch = -1;
printk("IMX UART EDMA enabled\n");
}
if (pdata && (pdata->flags & IMXUART_FIFO))