summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-integrator/Kconfig3
-rw-r--r--board/armltd/integrator/integrator.c18
-rw-r--r--include/configs/integrator-common.h5
-rw-r--r--include/configs/integratorap.h11
-rw-r--r--include/configs/integratorcp.h9
6 files changed, 28 insertions, 20 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f2eb09f921..a436e8123b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -458,6 +458,8 @@ config ARCH_HIGHBANK
config ARCH_INTEGRATOR
bool "ARM Ltd. Integrator family"
+ select DM
+ select DM_SERIAL
config ARCH_KEYSTONE
bool "TI Keystone"
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index c54d69db0e..d506ee5b39 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -53,4 +53,7 @@ config SYS_CONFIG_NAME
default "integratorap" if ARCH_INTEGRATOR_AP
default "integratorcp" if ARCH_INTEGRATOR_CP
+config SYS_MALLOC_F_LEN
+ default 0x2000
+
endmenu
diff --git a/board/armltd/integrator/integrator.c b/board/armltd/integrator/integrator.c
index e94ac850c7..cbe706170d 100644
--- a/board/armltd/integrator/integrator.c
+++ b/board/armltd/integrator/integrator.c
@@ -20,11 +20,29 @@
#include <common.h>
#include <netdev.h>
#include <asm/io.h>
+#include <dm/platdata.h>
+#include <dm/platform_data/serial_pl01x.h>
#include "arm-ebi.h"
#include "integrator-sc.h"
DECLARE_GLOBAL_DATA_PTR;
+static const struct pl01x_serial_platdata serial_platdata = {
+ .base = 0x16000000,
+#ifdef CONFIG_ARCH_CINTEGRATOR
+ .type = TYPE_PL011,
+ .clock = 14745600,
+#else
+ .type = TYPE_PL010,
+ .clock = 0, /* Not used for PL010 */
+#endif
+};
+
+U_BOOT_DEVICE(integrator_serials) = {
+ .name = "serial_pl01x",
+ .platdata = &serial_platdata,
+};
+
void peripheral_power_enable (void);
#if defined(CONFIG_SHOW_BOOT_PROGRESS)
diff --git a/include/configs/integrator-common.h b/include/configs/integrator-common.h
index 1d307ca1e6..a22efd699c 100644
--- a/include/configs/integrator-common.h
+++ b/include/configs/integrator-common.h
@@ -20,6 +20,11 @@
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size*/
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024) /* Size of malloc() pool */
+/* Serial port PL010/PL011 through the device model */
+#define CONFIG_PL01X_SERIAL
+#define CONFIG_BAUDRATE 38400
+#define CONFIG_CONS_INDEX 0
+
#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_OF_LIBFDT /* enable passing a Device Tree */
diff --git a/include/configs/integratorap.h b/include/configs/integratorap.h
index c76ebcbb60..26aa8cadc0 100644
--- a/include/configs/integratorap.h
+++ b/include/configs/integratorap.h
@@ -21,17 +21,6 @@
#define CONFIG_SYS_HZ_CLOCK 24000000 /* Timer 1 is clocked at 24Mhz */
/*
- * PL010 Configuration
- */
-#define CONFIG_PL010_SERIAL
-#define CONFIG_CONS_INDEX 0
-#define CONFIG_BAUDRATE 38400
-#define CONFIG_PL01x_PORTS { (void *) (CONFIG_SYS_SERIAL0), (void *) (CONFIG_SYS_SERIAL1) }
-#define CONFIG_SYS_SERIAL0 0x16000000
-#define CONFIG_SYS_SERIAL1 0x17000000
-
-
-/*
* BOOTP options
*/
#define CONFIG_BOOTP_BOOTFILESIZE
diff --git a/include/configs/integratorcp.h b/include/configs/integratorcp.h
index d6f2602875..4d04f544c8 100644
--- a/include/configs/integratorcp.h
+++ b/include/configs/integratorcp.h
@@ -28,15 +28,6 @@
#define CONFIG_SMC91111_BASE 0xC8000000
#undef CONFIG_SMC91111_EXT_PHY
-/* PL011 configuration */
-#define CONFIG_PL011_SERIAL
-#define CONFIG_PL011_CLOCK 14745600
-#define CONFIG_PL01x_PORTS { (void *)CONFIG_SYS_SERIAL0, (void *)CONFIG_SYS_SERIAL1 }
-#define CONFIG_CONS_INDEX 0
-#define CONFIG_BAUDRATE 38400
-#define CONFIG_SYS_SERIAL0 0x16000000
-#define CONFIG_SYS_SERIAL1 0x17000000
-
/*
* Command line configuration.
*/