9
0
Fork 0

ARM: mvebu: convert Kirkwood devices to be probed from DT

With Kirkwood DT files available, convert Kirkwood SoC init
to register basic devices from DT only. Makefile targets for
dtbs will be removed again as soon as MULTI_PBL is available.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
This commit is contained in:
Sebastian Hesselbarth 2014-04-10 16:48:08 +02:00 committed by Sascha Hauer
parent a3b473e0d5
commit 8cd9edec98
4 changed files with 31 additions and 47 deletions

View File

@ -31,7 +31,9 @@ dtb-$(CONFIG_ARCH_IMX6) += imx6q-gk802.dtb \
imx6q-var-custom.dtb \
imx6s-riotboard.dtb \
imx6q-phytec-pbaa03.dtb
dtb-$(CONFIG_ARCH_MVEBU) += dove-cubox-bb.dtb
dtb-$(CONFIG_ARCH_MVEBU) += dove-cubox-bb.dtb \
kirkwood-guruplug-server-plus-bb.dtb \
kirkwood-topkick-bb.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3188-radxarock.dtb
dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5_sockit.dtb \
socfpga_cyclone5_socrates.dtb

View File

@ -0,0 +1,14 @@
/*
* Barebox specific DT overlay for Globalscale Guruplug
* Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
*/
#include "arm/kirkwood-guruplug-server-plus.dts"
/ {
gpio-leds {
health-r {
barebox,default-trigger = "heartbeat";
};
};
};

View File

@ -0,0 +1,14 @@
/*
* Barebox specific DT overlay for USI Topkick
* Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
*/
#include "arm/kirkwood-topkick.dts"
/ {
gpio-leds {
system {
barebox,default-trigger = "heartbeat";
};
};
};

View File

@ -16,16 +16,9 @@
#include <common.h>
#include <init.h>
#include <io.h>
#include <ns16550.h>
#include <linux/clk.h>
#include <linux/clkdev.h>
#include <asm/memory.h>
#include <mach/kirkwood-regs.h>
#define CONSOLE_UART_BASE KIRKWOOD_UARTn_BASE(CONFIG_MVEBU_CONSOLE_UART)
static struct clk *tclk;
static inline void kirkwood_memory_find(unsigned long *phys_base,
unsigned long *phys_size)
{
@ -49,39 +42,6 @@ static inline void kirkwood_memory_find(unsigned long *phys_base,
}
}
static struct NS16550_plat uart_plat = {
.shift = 2,
};
static int kirkwood_add_uart(void)
{
uart_plat.clock = clk_get_rate(tclk);
if (!add_ns16550_device(DEVICE_ID_DYNAMIC,
(unsigned int)CONSOLE_UART_BASE, 32,
IORESOURCE_MEM | IORESOURCE_MEM_32BIT,
&uart_plat))
return -ENODEV;
return 0;
}
static int kirkwood_init_clocks(void)
{
u32 val = readl(KIRKWOOD_SAR_BASE);
unsigned int rate;
/*
* On Kirkwood, the TCLK frequency can be either
* 166 Mhz or 200 Mhz
*/
if ((val & SAR_TCLK_FREQ) == SAR_TCLK_FREQ)
rate = 166666667;
else
rate = 200000000;
tclk = clk_fixed("tclk", rate);
return 0;
}
static int kirkwood_init_soc(void)
{
unsigned long phys_base, phys_size;
@ -89,14 +49,8 @@ static int kirkwood_init_soc(void)
barebox_set_model("Marvell Kirkwood");
barebox_set_hostname("kirkwood");
kirkwood_init_clocks();
clkdev_add_physbase(tclk, (unsigned int)KIRKWOOD_TIMER_BASE, NULL);
add_generic_device("orion-timer", DEVICE_ID_SINGLE, NULL,
(unsigned int)KIRKWOOD_TIMER_BASE, 0x30,
IORESOURCE_MEM, NULL);
kirkwood_memory_find(&phys_base, &phys_size);
arm_add_mem_device("ram0", phys_base, phys_size);
kirkwood_add_uart();
return 0;
}