Commit 94082f35882b7da6256c9609e17fa1047d9477c7

Authored by Hebbar, Gururaja
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,