Commit ea42a0d0 authored by Stefano Babic's avatar Stefano Babic Committed by Sascha Hauer

ARM: mxs: Add initial support for DENX MX28

Added initial support for DENX M28 module and M28EVK
board. Ethernet(FEC), SDHC, Display are supported.
Signed-off-by: default avatarStefano Babic <sbabic@denx.de>
Reviewed-by: default avatarWolfram Sang <w.sang@pengutronix.de>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 976d1676
...@@ -26,6 +26,7 @@ CONFIG_MACH_MX23EVK=y ...@@ -26,6 +26,7 @@ CONFIG_MACH_MX23EVK=y
CONFIG_MACH_MX28EVK=y CONFIG_MACH_MX28EVK=y
CONFIG_MACH_STMP378X_DEVB=y CONFIG_MACH_STMP378X_DEVB=y
CONFIG_MACH_TX28=y CONFIG_MACH_TX28=y
CONFIG_MACH_M28EVK=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set
CONFIG_NO_HZ=y CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
......
...@@ -64,8 +64,25 @@ config MODULE_TX28 ...@@ -64,8 +64,25 @@ config MODULE_TX28
select MXS_HAVE_PLATFORM_MXS_MMC select MXS_HAVE_PLATFORM_MXS_MMC
select MXS_HAVE_PLATFORM_MXS_PWM select MXS_HAVE_PLATFORM_MXS_PWM
config MODULE_M28
bool
select SOC_IMX28
select LEDS_GPIO_REGISTER
select MXS_HAVE_AMBA_DUART
select MXS_HAVE_PLATFORM_AUART
select MXS_HAVE_PLATFORM_FEC
select MXS_HAVE_PLATFORM_FLEXCAN
select MXS_HAVE_PLATFORM_MXS_I2C
select MXS_HAVE_PLATFORM_MXS_MMC
select MXS_HAVE_PLATFORM_MXSFB
select MXS_OCOTP
config MACH_TX28 config MACH_TX28
bool "Ka-Ro TX28 module" bool "Ka-Ro TX28 module"
select MODULE_TX28 select MODULE_TX28
config MACH_M28EVK
bool "Support DENX M28EVK Platform"
select MODULE_M28
endif endif
...@@ -10,6 +10,7 @@ obj-$(CONFIG_SOC_IMX28) += clock-mx28.o mm-mx28.o ...@@ -10,6 +10,7 @@ obj-$(CONFIG_SOC_IMX28) += clock-mx28.o mm-mx28.o
obj-$(CONFIG_MACH_STMP378X_DEVB) += mach-stmp378x_devb.o obj-$(CONFIG_MACH_STMP378X_DEVB) += mach-stmp378x_devb.o
obj-$(CONFIG_MACH_MX23EVK) += mach-mx23evk.o obj-$(CONFIG_MACH_MX23EVK) += mach-mx23evk.o
obj-$(CONFIG_MACH_MX28EVK) += mach-mx28evk.o obj-$(CONFIG_MACH_MX28EVK) += mach-mx28evk.o
obj-$(CONFIG_MACH_M28EVK) += mach-m28evk.o
obj-$(CONFIG_MODULE_TX28) += module-tx28.o obj-$(CONFIG_MODULE_TX28) += module-tx28.o
obj-$(CONFIG_MACH_TX28) += mach-tx28.o obj-$(CONFIG_MACH_TX28) += mach-tx28.o
......
...@@ -738,11 +738,17 @@ static int clk_misc_init(void) ...@@ -738,11 +738,17 @@ static int clk_misc_init(void)
__raw_writel(BM_CLKCTRL_CPU_INTERRUPT_WAIT, __raw_writel(BM_CLKCTRL_CPU_INTERRUPT_WAIT,
CLKCTRL_BASE_ADDR + HW_CLKCTRL_CPU_SET); CLKCTRL_BASE_ADDR + HW_CLKCTRL_CPU_SET);
/* Extra fec clock setting */ /*
reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_ENET); * Extra fec clock setting
reg &= ~BM_CLKCTRL_ENET_SLEEP; * The DENX M28 uses an external clock source
reg |= BM_CLKCTRL_ENET_CLK_OUT_EN; * and the clock output must not be enabled
__raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_ENET); */
if (!machine_is_m28evk()) {
reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_ENET);
reg &= ~BM_CLKCTRL_ENET_SLEEP;
reg |= BM_CLKCTRL_ENET_CLK_OUT_EN;
__raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_ENET);
}
/* /*
* 480 MHz seems too high to be ssp clock source directly, * 480 MHz seems too high to be ssp clock source directly,
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
0) 0)
#define cpu_is_mx28() ( \ #define cpu_is_mx28() ( \
machine_is_mx28evk() || \ machine_is_mx28evk() || \
machine_is_m28evk() || \
machine_is_tx28() || \ machine_is_tx28() || \
0) 0)
......
...@@ -63,6 +63,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id) ...@@ -63,6 +63,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id)
mxs_duart_base = MX23_DUART_BASE_ADDR; mxs_duart_base = MX23_DUART_BASE_ADDR;
break; break;
case MACH_TYPE_MX28EVK: case MACH_TYPE_MX28EVK:
case MACH_TYPE_M28EVK:
case MACH_TYPE_TX28: case MACH_TYPE_TX28:
mxs_duart_base = MX28_DUART_BASE_ADDR; mxs_duart_base = MX28_DUART_BASE_ADDR;
break; break;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment