From: Arnd Bergmann Date: Tue, 1 Nov 2011 16:12:22 +0000 (+0100) Subject: Merge branch 'imx/devel' into next/dt X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c72dbae971400e466ad9ff16c920cd6d9d8c55a1;p=~shefty%2Frdma-dev.git Merge branch 'imx/devel' into next/dt The board changes in the imx/devel branch conflict with other changes in the device imx/dt branch. Conflicts: arch/arm/mach-mx5/board-mx53_loco.c arch/arm/mach-mx5/board-mx53_smd.c arch/arm/plat-mxc/include/mach/common.h arch/arm/plat-mxc/include/mach/memory.h Signed-off-by: Arnd Bergmann --- c72dbae971400e466ad9ff16c920cd6d9d8c55a1 diff --cc arch/arm/mach-mx5/Kconfig index bda12e84429,3d4c31306ca..af0c212e3c7 --- a/arch/arm/mach-mx5/Kconfig +++ b/arch/arm/mach-mx5/Kconfig @@@ -57,20 -54,8 +54,17 @@@ config MACH_MX50_RD Include support for MX50 reference design platform (RDP) board. This includes specific configurations for the board and its peripherals. - endif # ARCH_MX50_SUPPORTED - - if ARCH_MX51 comment "i.MX51 machines:" +config MACH_IMX51_DT + bool "Support i.MX51 platforms from device tree" + select SOC_IMX51 + select USE_OF + select MACH_MX51_BABBAGE + help + Include support for Freescale i.MX51 based platforms + using the device tree for discovery + config MACH_MX51_BABBAGE bool "Support MX51 BABBAGE platforms" select SOC_IMX51 @@@ -176,23 -169,8 +178,20 @@@ config MACH_MX51_EFIKAS Include support for Genesi Efika Smartbook. This includes specific configurations for the board and its peripherals. - endif # ARCH_MX51 - - if ARCH_MX53_SUPPORTED comment "i.MX53 machines:" +config MACH_IMX53_DT + bool "Support i.MX53 platforms from device tree" + select SOC_IMX53 + select USE_OF + select MACH_MX53_ARD + select MACH_MX53_EVK + select MACH_MX53_LOCO + select MACH_MX53_SMD + help + Include support for Freescale i.MX53 based platforms + using the device tree for discovery + config MACH_MX53_EVK bool "Support MX53 EVK platforms" select SOC_IMX53 diff --cc arch/arm/mach-mx5/board-mx53_loco.c index 3922cd5ea85,0af2766f861..7678f7734db --- a/arch/arm/mach-mx5/board-mx53_loco.c +++ b/arch/arm/mach-mx5/board-mx53_loco.c @@@ -257,17 -263,19 +263,24 @@@ static const struct gpio_led_platform_d .num_leds = ARRAY_SIZE(mx53loco_leds), }; +void __init imx53_qsb_common_init(void) +{ + mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, + ARRAY_SIZE(mx53_loco_pads)); +} + + static struct i2c_board_info mx53loco_i2c_devices[] = { + { + I2C_BOARD_INFO("mma8450", 0x1C), + }, + }; + static void __init mx53_loco_board_init(void) { + int ret; imx53_soc_init(); + imx53_qsb_common_init(); - mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, - ARRAY_SIZE(mx53_loco_pads)); imx53_add_imx_uart(0, NULL); mx53_loco_fec_reset(); imx53_add_fec(&mx53_loco_fec_data); diff --cc arch/arm/mach-mx5/board-mx53_smd.c index b10c89982fb,d12fd3043ba..59c0845eb4a --- a/arch/arm/mach-mx5/board-mx53_smd.c +++ b/arch/arm/mach-mx5/board-mx53_smd.c @@@ -111,12 -112,19 +112,25 @@@ static const struct imxi2c_platform_dat .bitrate = 100000, }; + static inline void mx53_smd_ahci_pwr_on(void) + { + int ret; + + /* Enable SATA PWR */ + ret = gpio_request_one(MX53_SMD_SATA_PWR_EN, + GPIOF_DIR_OUT | GPIOF_INIT_HIGH, "ahci-sata-pwr"); + if (ret) { + pr_err("failed to enable SATA_PWR_EN: %d\n", ret); + return; + } + } + +void __init imx53_smd_common_init(void) +{ + mxc_iomux_v3_setup_multiple_pads(mx53_smd_pads, + ARRAY_SIZE(mx53_smd_pads)); +} + static void __init mx53_smd_board_init(void) { imx53_soc_init(); diff --cc arch/arm/plat-mxc/include/mach/common.h index d19703930ef,ace4bb550ed..c850af3650e --- a/arch/arm/plat-mxc/include/mach/common.h +++ b/arch/arm/plat-mxc/include/mach/common.h @@@ -64,20 -64,37 +64,44 @@@ extern int mx51_clocks_init(unsigned lo unsigned long ckih1, unsigned long ckih2); extern int mx53_clocks_init(unsigned long ckil, unsigned long osc, unsigned long ckih1, unsigned long ckih2); +extern int mx51_clocks_init_dt(void); +extern int mx53_clocks_init_dt(void); extern struct platform_device *mxc_register_gpio(char *name, int id, resource_size_t iobase, resource_size_t iosize, int irq, int irq_high); - extern int mxc_register_device(struct platform_device *pdev, void *data); extern void mxc_set_cpu_type(unsigned int type); extern void mxc_arch_reset_init(void __iomem *); extern void mx51_efikamx_reset(void); extern int mx53_revision(void); extern int mx53_display_revision(void); + enum mxc_cpu_pwr_mode { + WAIT_CLOCKED, /* wfi only */ + WAIT_UNCLOCKED, /* WAIT */ + WAIT_UNCLOCKED_POWER_OFF, /* WAIT + SRPG */ + STOP_POWER_ON, /* just STOP */ + STOP_POWER_OFF, /* STOP + SRPG */ + }; + + extern void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode); + extern void (*imx_idle)(void); + extern void imx_print_silicon_rev(const char *cpu, int srev); + + void avic_handle_irq(struct pt_regs *); + void tzic_handle_irq(struct pt_regs *); + + #define imx1_handle_irq avic_handle_irq + #define imx21_handle_irq avic_handle_irq + #define imx25_handle_irq avic_handle_irq + #define imx27_handle_irq avic_handle_irq + #define imx31_handle_irq avic_handle_irq + #define imx35_handle_irq avic_handle_irq + #define imx50_handle_irq tzic_handle_irq + #define imx51_handle_irq tzic_handle_irq + #define imx53_handle_irq tzic_handle_irq + +extern void imx51_babbage_common_init(void); +extern void imx53_ard_common_init(void); +extern void imx53_evk_common_init(void); +extern void imx53_qsb_common_init(void); +extern void imx53_smd_common_init(void); #endif