summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Schwebel <r.schwebel@pengutronix.de>2011-06-23 21:19:22 +0200
committerRobert Schwebel <r.schwebel@pengutronix.de>2011-06-24 11:27:23 +0200
commit2b69c89c9efed82fdfd558a1a02915a7aa300d12 (patch)
tree83e92da648be92acf1f26364643b2274f3b6c8f0
parentc45692d53f87f6fd0bd381147e37b9b1561981d3 (diff)
downloadbarebox-tuxrail-b2.tar.gz
barebox-tuxrail-b2.tar.xz
tuxrail v2: add latest changes from v1tuxrail-b2
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-rw-r--r--arch/arm/boards/busware-tuxrail/tuxrail.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/arm/boards/busware-tuxrail/tuxrail.c b/arch/arm/boards/busware-tuxrail/tuxrail.c
index 03fb5efe..2a4cc44a 100644
--- a/arch/arm/boards/busware-tuxrail/tuxrail.c
+++ b/arch/arm/boards/busware-tuxrail/tuxrail.c
@@ -35,6 +35,7 @@
#include <mach/clock.h>
#include <mach/mci.h>
#include <mach/usb.h>
+#include <mach/pmic-imx23.h>
static struct memory_platform_data ram_pdata = {
.name = "ram0",
@@ -196,10 +197,49 @@ static struct device_d usb_dev = {
.platform_data = &tuxrail_usb_pdata,
};
+/*
+ * VDDIO: Voltage level to the outer world is 3.3 V
+ */
+static const struct rail_voltage tuxrail_vddio = {
+ .main_mV = 3300,
+ .guard_mV = 3300 - 175,
+ .lin_mV = 3300 - 25, /* linear regulator cannot be disabled */
+};
+
+/*
+ * VDDA: Voltage level depends on VDDIO
+ */
+static const struct rail_voltage tuxrail_vdda = {
+ .main_mV = 1800,
+ .guard_mV = 1800 - 175,
+ .lin_mV = 0, /* disable the linear regulator */
+};
+
+/*
+ * Voltage level of VDDD depends on VDDA
+ * To run the CPU core at 454 MHz VDDD must be at least at 1.55 V!
+ */
+static const struct rail_voltage tuxrail_vddd = {
+ .main_mV = 1550,
+ .guard_mV = 1550 - 175,
+ .lin_mV = 0, /* disable the linear regulator */
+};
+
static int tuxrail_devices_init(void)
{
int i, rc;
+ /* initialize voltages */
+ switch_to_dcdc();
+
+ setup_vddio_voltage(&tuxrail_vddio);
+ setup_vdda_voltage(&tuxrail_vdda);
+ setup_vddd_voltage(&tuxrail_vddd);
+
+ /* now we are ready to switch the clock to 454 MHz */
+ imx_set_hclk(3);
+ imx_set_armclk(455 * 1000 * 1000);
+
/* initialize gpios */
for (i = 0; i < ARRAY_SIZE(pad_setup); i++)
imx_gpio_mode(pad_setup[i]);