static void __init uart_debug_init(void) { int debug_port_id; struct platform_device *debug_uart; debug_port_id = get_tegra_uart_debug_port_id(); if (debug_port_id < 0) { debug_port_id = 3; } else if (debug_port_id >= ARRAY_SIZE(debug_uarts)) { pr_info("The debug console id %d is invalid, Assuming UARTA", debug_port_id); debug_port_id = 0; } pr_info("Selecting %s as the debug port\n", uart_names[debug_port_id]); debug_uart_clk = clk_get_sys("serial8250.0", uart_names[debug_port_id]); debug_uart = debug_uarts[debug_port_id]; debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uart->dev.platform_data))->mapbase; debug_uart_port_irq = ((struct plat_serial8250_port *)( debug_uart->dev.platform_data))->irq; return; }
int __init tegranote7c_pinmux_init(void) { tegranote7c_gpio_init_configure(); tegra_drive_pinmux_config_table(tegranote7c_drive_pinmux, ARRAY_SIZE(tegranote7c_drive_pinmux)); tegra_pinmux_config_table(tegranote7c_pinmux_common, ARRAY_SIZE(tegranote7c_pinmux_common)); tegra_pinmux_config_table(tegranote7c_unused_pins_lowpower, ARRAY_SIZE(tegranote7c_unused_pins_lowpower)); tegra_pinmux_config_table(manual_config_pinmux, ARRAY_SIZE(manual_config_pinmux)); if (get_tegra_uart_debug_port_id() == UART_FROM_SDCARD) tegra_pinmux_config_table(e2542_uart_config_pinmux, ARRAY_SIZE(e2542_uart_config_pinmux)); #ifdef CONFIG_PM_SLEEP tegra11x_set_sleep_pinmux(tegranote7c_sleep_pinmux, ARRAY_SIZE(tegranote7c_sleep_pinmux)); tegra11x_set_sleep_gpio(tegranote7c_sleep_gpio, ARRAY_SIZE(tegranote7c_sleep_gpio)); #endif return 0; }
static void __init uart_debug_init(void) { int debug_port_id; debug_port_id = get_tegra_uart_debug_port_id(); if (debug_port_id < 0) debug_port_id = 3; switch (debug_port_id) { case 0: /* UARTA is the debug port. */ pr_info("Selecting UARTA as the debug console\n"); kai_uart_devices[0] = &debug_uarta_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; break; case 1: /* UARTB is the debug port. */ pr_info("Selecting UARTB as the debug console\n"); kai_uart_devices[1] = &debug_uartb_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartb"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartb_device.dev.platform_data))->mapbase; break; case 2: /* UARTC is the debug port. */ pr_info("Selecting UARTC as the debug console\n"); kai_uart_devices[2] = &debug_uartc_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartc"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartc_device.dev.platform_data))->mapbase; break; case 3: /* UARTD is the debug port. */ pr_info("Selecting UARTD as the debug console\n"); kai_uart_devices[3] = &debug_uartd_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartd"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartd_device.dev.platform_data))->mapbase; break; case 4: /* UARTE is the debug port. */ pr_info("Selecting UARTE as the debug console\n"); kai_uart_devices[4] = &debug_uarte_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarte"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarte_device.dev.platform_data))->mapbase; break; default: pr_info("The debug console id %d is invalid, Assuming UARTA", debug_port_id); kai_uart_devices[0] = &debug_uarta_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; break; } return; }
int uart_console_debug_init(int default_debug_port) { int debug_port_id; debug_port_id = get_tegra_uart_debug_port_id(); if (debug_port_id < 0) debug_port_id = default_debug_port; if (debug_port_id < 0) { pr_warn("No debug console channel\n"); return -EINVAL; } switch (debug_port_id) { case 0: /* UARTA is the debug port. */ pr_info("Selecting UARTA as the debug console\n"); debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uarta_device; break; case 1: /* UARTB is the debug port. */ pr_info("Selecting UARTB as the debug console\n"); debug_uart_clk = clk_get_sys("serial8250.0", "uartb"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartb_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uartb_device; break; case 2: /* UARTC is the debug port. */ pr_info("Selecting UARTC as the debug console\n"); debug_uart_clk = clk_get_sys("serial8250.0", "uartc"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartc_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uartc_device; break; case 3: /* UARTD is the debug port. */ pr_info("Selecting UARTD as the debug console\n"); debug_uart_clk = clk_get_sys("serial8250.0", "uartd"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartd_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uartd_device; break; #if !defined(CONFIG_ARCH_TEGRA_2x_SOC) case 4: /* UARTE is the debug port. */ pr_info("Selecting UARTE as the debug console\n"); debug_uart_clk = clk_get_sys("serial8250.0", "uarte"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarte_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uarte_device; break; #endif default: pr_info("The debug console id %d is invalid, Assuming UARTA", debug_port_id); debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; uart_console_debug_device = &debug_uarta_device; break; } if (!IS_ERR_OR_NULL(debug_uart_clk)) { struct clk *c; pr_info("The debug console clock name is %s\n", debug_uart_clk->name); c = tegra_get_clock_by_name("pll_p"); if (IS_ERR_OR_NULL(c)) pr_err("Not getting the parent clock pll_p\n"); else clk_set_parent(debug_uart_clk, c); tegra_clk_prepare_enable(debug_uart_clk); clk_set_rate(debug_uart_clk, clk_get_rate(c)); } else { pr_err("Not getting the clock for debug consolei %d\n", debug_port_id); } return debug_port_id; }
static void __init uart_debug_init(void) { struct board_info board_info; int debug_port_id; tegra_get_board_info(&board_info); debug_port_id = get_tegra_uart_debug_port_id(); if (debug_port_id < 0) { debug_port_id = 0; /* UARTB is debug port * for SLT - E1186/E1187/PM269 * for E1256/E1257 */ if (((board_info.sku & SKU_SLT_ULPI_SUPPORT) && ((board_info.board_id == BOARD_E1186) || (board_info.board_id == BOARD_E1187) || (board_info.board_id == BOARD_PM269))) || (board_info.board_id == BOARD_E1256) || (board_info.board_id == BOARD_E1257)) debug_port_id = 1; } #ifdef CONFIG_TEGRA_IRDA if ((board_info.board_id == BOARD_E1186) || (board_info.board_id == BOARD_E1198)) { if (debug_port_id == 1) { cardhu_irda_pdata.is_irda = false; pr_err("UARTB is not available for IrDA\n"); } } #endif switch (debug_port_id) { case 0: /* UARTA is the debug port. */ pr_info("Selecting UARTA as the debug console\n"); cardhu_uart_devices[0] = &debug_uarta_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; break; case 1: /* UARTB is the debug port. */ pr_info("Selecting UARTB as the debug console\n"); cardhu_uart_devices[1] = &debug_uartb_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartb"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartb_device.dev.platform_data))->mapbase; break; case 2: /* UARTC is the debug port. */ pr_info("Selecting UARTC as the debug console\n"); cardhu_uart_devices[2] = &debug_uartc_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartc"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartc_device.dev.platform_data))->mapbase; break; case 3: /* UARTD is the debug port. */ pr_info("Selecting UARTD as the debug console\n"); cardhu_uart_devices[3] = &debug_uartd_device; debug_uart_clk = clk_get_sys("serial8250.0", "uartd"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uartd_device.dev.platform_data))->mapbase; break; case 4: /* UARTE is the debug port. */ pr_info("Selecting UARTE as the debug console\n"); cardhu_uart_devices[4] = &debug_uarte_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarte"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarte_device.dev.platform_data))->mapbase; break; default: pr_info("The debug console id %d is invalid, Assuming UARTA", debug_port_id); cardhu_uart_devices[0] = &debug_uarta_device; debug_uart_clk = clk_get_sys("serial8250.0", "uarta"); debug_uart_port_base = ((struct plat_serial8250_port *)( debug_uarta_device.dev.platform_data))->mapbase; break; } return; }