Commit 94082f35882b7da6256c9609e17fa1047d9477c7
1 parent
0987862149
Exists in
master
arm:omap:am335x - Add support for UART 2
Support for UART 2 is added. UART 2 is tested for working in Profile 3 by passing kernel boot args from u-boot as setenv bootargs 'console=ttyO2,115200n8......' Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Showing 3 changed files with 30 additions and 5 deletions Side-by-side Diff
arch/arm/mach-omap2/board-am335xevm.c
... | ... | @@ -586,6 +586,17 @@ |
586 | 586 | {NULL, 0}, |
587 | 587 | }; |
588 | 588 | |
589 | +/* Module pin mux for uart2 */ | |
590 | +static struct pinmux_config uart2_pin_mux[] = { | |
591 | + {"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW | | |
592 | + AM33XX_PIN_INPUT_PULLUP}, | |
593 | + {"spi0_d0.uart2_txd", OMAP_MUX_MODE1 | AM33XX_PULL_UP | | |
594 | + AM33XX_PULL_DISA | | |
595 | + AM33XX_SLEWCTRL_SLOW}, | |
596 | + {NULL, 0}, | |
597 | +}; | |
598 | + | |
599 | + | |
589 | 600 | /* |
590 | 601 | * @pin_mux - single module pin-mux structure which defines pin-mux |
591 | 602 | * details for all its pins. |
... | ... | @@ -941,6 +952,13 @@ |
941 | 952 | return; |
942 | 953 | } |
943 | 954 | |
955 | +/* setup uart2 */ | |
956 | +static void uart2_init(int evm_id, int profile) | |
957 | +{ | |
958 | + setup_pin_mux(uart2_pin_mux); | |
959 | + return; | |
960 | +} | |
961 | + | |
944 | 962 | /* NAND partition information */ |
945 | 963 | static struct mtd_partition am335x_nand_partitions[] = { |
946 | 964 | /* All the partition sizes are listed in terms of NAND block size */ |
... | ... | @@ -1390,6 +1408,7 @@ |
1390 | 1408 | {d_can_init, DEV_ON_DGHTR_BRD, PROFILE_1}, |
1391 | 1409 | {matrix_keypad_init, DEV_ON_DGHTR_BRD, PROFILE_0}, |
1392 | 1410 | {volume_keys_init, DEV_ON_DGHTR_BRD, PROFILE_0}, |
1411 | + {uart2_init, DEV_ON_DGHTR_BRD, PROFILE_3}, | |
1393 | 1412 | {NULL, 0, 0}, |
1394 | 1413 | }; |
1395 | 1414 |
arch/arm/mach-omap2/mux33xx.c
... | ... | @@ -175,10 +175,10 @@ |
175 | 175 | NULL, NULL, NULL, NULL), |
176 | 176 | _AM33XX_MUXENTRY(LCD_DATA8, 0, |
177 | 177 | "lcd_data8", "gpmc_a12", NULL, "mcasp0_aclkx", |
178 | - NULL, NULL, NULL, NULL), | |
178 | + NULL, NULL, "uart2_ctsn", NULL), | |
179 | 179 | _AM33XX_MUXENTRY(LCD_DATA9, 0, |
180 | 180 | "lcd_data9", "gpmc_a13", NULL, "mcasp0_fsx", |
181 | - NULL, NULL, NULL, NULL), | |
181 | + NULL, NULL, "uart2_rtsn", NULL), | |
182 | 182 | _AM33XX_MUXENTRY(LCD_DATA10, 0, |
183 | 183 | "lcd_data10", "gpmc_a14", NULL, "mcasp0_axr0", |
184 | 184 | NULL, NULL, NULL, NULL), |
185 | 185 | |
... | ... | @@ -285,10 +285,10 @@ |
285 | 285 | "mdio_clk", NULL, NULL, NULL, |
286 | 286 | "mmc0_sdwp", "mmc1_clk", "mmc2_clk", NULL), |
287 | 287 | _AM33XX_MUXENTRY(SPI0_SCLK, 0, |
288 | - "spi0_sclk", NULL, NULL, NULL, | |
288 | + "spi0_sclk", "uart2_rxd", NULL, NULL, | |
289 | 289 | NULL, NULL, NULL, "gpio0_2"), |
290 | 290 | _AM33XX_MUXENTRY(SPI0_D0, 0, |
291 | - "spi0_d0", NULL, NULL, NULL, | |
291 | + "spi0_d0", "uart2_txd", NULL, NULL, | |
292 | 292 | NULL, NULL, NULL, "gpio0_3"), |
293 | 293 | _AM33XX_MUXENTRY(SPI0_D1, 0, |
294 | 294 | "spi0_d1", "mmc1_sdwp", "i2c1_sda", NULL, |
arch/arm/mach-omap2/omap_hwmod_33xx_data.c
... | ... | @@ -2116,6 +2116,12 @@ |
2116 | 2116 | }; |
2117 | 2117 | |
2118 | 2118 | /* uart3 */ |
2119 | +static struct omap_hwmod_dma_info uart3_edma_reqs[] = { | |
2120 | + { .name = "tx", .dma_req = 30, }, | |
2121 | + { .name = "rx", .dma_req = 31, }, | |
2122 | + { .dma_req = -1 } | |
2123 | +}; | |
2124 | + | |
2119 | 2125 | static struct omap_hwmod_addr_space am33xx_uart3_addr_space[] = { |
2120 | 2126 | { |
2121 | 2127 | .pa_start = AM33XX_UART3_BASE, |
... | ... | @@ -2147,7 +2153,7 @@ |
2147 | 2153 | .mpu_irqs = am33xx_uart3_irqs, |
2148 | 2154 | .main_clk = "uart3_fck", |
2149 | 2155 | .clkdm_name = "l4ls_clkdm", |
2150 | - .sdma_reqs = uart1_edma_reqs, | |
2156 | + .sdma_reqs = uart3_edma_reqs, | |
2151 | 2157 | .prcm = { |
2152 | 2158 | .omap4 = { |
2153 | 2159 | .clkctrl_offs = AM33XX_CM_PER_UART2_CLKCTRL_OFFSET, |