tegra: remove custom UART setup
The config option doesn't make any sense anymore when building a multiimage barebox. With a proper DT built into the image we don't need the ODMdata mechanism to find the debug UART anymore. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
b5ac88e8f6
commit
566c1630c3
|
@ -7,39 +7,6 @@ config ARCH_TEXT_BASE
|
||||||
config BOARDINFO
|
config BOARDINFO
|
||||||
default ""
|
default ""
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Tegra debug UART"
|
|
||||||
help
|
|
||||||
This is the first serial console that gets activated by barebox.
|
|
||||||
Normally each board vendor should program a valid debug UART into
|
|
||||||
the ODMdata section of the boot configuration table, so it's a
|
|
||||||
reasonably good bet to use that.
|
|
||||||
If you know your ODMdata is broken, or you don't wish to activate
|
|
||||||
any serial console at all you can override the default here.
|
|
||||||
|
|
||||||
config TEGRA_UART_ODMDATA
|
|
||||||
bool "ODMdata defined UART"
|
|
||||||
|
|
||||||
config TEGRA_UART_A
|
|
||||||
bool "UART A"
|
|
||||||
|
|
||||||
config TEGRA_UART_B
|
|
||||||
bool "UART B"
|
|
||||||
|
|
||||||
config TEGRA_UART_C
|
|
||||||
bool "UART C"
|
|
||||||
|
|
||||||
config TEGRA_UART_D
|
|
||||||
bool "UART D"
|
|
||||||
|
|
||||||
config TEGRA_UART_E
|
|
||||||
bool "UART E"
|
|
||||||
|
|
||||||
config TEGRA_UART_NONE
|
|
||||||
bool "None"
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
|
|
||||||
config ARCH_TEGRA_2x_SOC
|
config ARCH_TEGRA_2x_SOC
|
||||||
|
|
|
@ -176,37 +176,6 @@ uint32_t tegra30_get_ramsize(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static long uart_id_to_base[] = {
|
|
||||||
TEGRA_UARTA_BASE,
|
|
||||||
TEGRA_UARTB_BASE,
|
|
||||||
TEGRA_UARTC_BASE,
|
|
||||||
TEGRA_UARTD_BASE,
|
|
||||||
TEGRA_UARTE_BASE,
|
|
||||||
};
|
|
||||||
|
|
||||||
static __always_inline
|
|
||||||
long tegra20_get_debuguart_base(void)
|
|
||||||
{
|
|
||||||
u32 odmdata;
|
|
||||||
int id;
|
|
||||||
|
|
||||||
odmdata = tegra_get_odmdata();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get type, we accept both "2" and "3", as they both demark a UART,
|
|
||||||
* depending on the board type.
|
|
||||||
*/
|
|
||||||
if (!(((odmdata & T20_ODMDATA_UARTTYPE_MASK) >>
|
|
||||||
T20_ODMDATA_UARTTYPE_SHIFT) & 0x2))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
id = (odmdata & T20_ODMDATA_UARTID_MASK) >> T20_ODMDATA_UARTID_SHIFT;
|
|
||||||
if (id > ARRAY_SIZE(uart_id_to_base))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return uart_id_to_base[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CRC_OSC_CTRL 0x050
|
#define CRC_OSC_CTRL 0x050
|
||||||
#define CRC_OSC_CTRL_OSC_FREQ_SHIFT 30
|
#define CRC_OSC_CTRL_OSC_FREQ_SHIFT 30
|
||||||
#define CRC_OSC_CTRL_OSC_FREQ_MASK (0x3 << CRC_OSC_CTRL_OSC_FREQ_SHIFT)
|
#define CRC_OSC_CTRL_OSC_FREQ_MASK (0x3 << CRC_OSC_CTRL_OSC_FREQ_SHIFT)
|
||||||
|
@ -231,20 +200,6 @@ int tegra_get_osc_clock(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static __always_inline
|
|
||||||
int tegra_get_pllp_rate(void)
|
|
||||||
{
|
|
||||||
switch (tegra_get_chiptype()) {
|
|
||||||
case TEGRA20:
|
|
||||||
return 216000000;
|
|
||||||
case TEGRA30:
|
|
||||||
case TEGRA124:
|
|
||||||
return 408000000;
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define TIMER_CNTR_1US 0x00
|
#define TIMER_CNTR_1US 0x00
|
||||||
#define TIMER_USEC_CFG 0x04
|
#define TIMER_USEC_CFG 0x04
|
||||||
|
|
||||||
|
|
|
@ -22,47 +22,6 @@
|
||||||
#include <mach/lowlevel.h>
|
#include <mach/lowlevel.h>
|
||||||
#include <mach/tegra114-sysctr.h>
|
#include <mach/tegra114-sysctr.h>
|
||||||
|
|
||||||
static struct NS16550_plat debug_uart = {
|
|
||||||
.shift = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int tegra_add_debug_console(void)
|
|
||||||
{
|
|
||||||
unsigned long base = 0;
|
|
||||||
|
|
||||||
if (!of_machine_is_compatible("nvidia,tegra20") &&
|
|
||||||
!of_machine_is_compatible("nvidia,tegra30") &&
|
|
||||||
!of_machine_is_compatible("nvidia,tegra124"))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* figure out which UART to use */
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_NONE))
|
|
||||||
return 0;
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_ODMDATA))
|
|
||||||
base = tegra20_get_debuguart_base();
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_A))
|
|
||||||
base = TEGRA_UARTA_BASE;
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_B))
|
|
||||||
base = TEGRA_UARTB_BASE;
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_C))
|
|
||||||
base = TEGRA_UARTC_BASE;
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_D))
|
|
||||||
base = TEGRA_UARTD_BASE;
|
|
||||||
if (IS_ENABLED(CONFIG_TEGRA_UART_E))
|
|
||||||
base = TEGRA_UARTE_BASE;
|
|
||||||
|
|
||||||
if (!base)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
debug_uart.clock = tegra_get_pllp_rate();
|
|
||||||
|
|
||||||
add_ns16550_device(DEVICE_ID_DYNAMIC, base, 8 << debug_uart.shift,
|
|
||||||
IORESOURCE_MEM | IORESOURCE_MEM_8BIT, &debug_uart);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
console_initcall(tegra_add_debug_console);
|
|
||||||
|
|
||||||
static int tegra20_mem_init(void)
|
static int tegra20_mem_init(void)
|
||||||
{
|
{
|
||||||
if (!of_machine_is_compatible("nvidia,tegra20"))
|
if (!of_machine_is_compatible("nvidia,tegra20"))
|
||||||
|
|
Loading…
Reference in New Issue