···5959 help6060 Include support for MX27PDK platform. This includes specific6161 configurations for the board and its peripherals.6262+6363+config MACH_MX27LITE6464+ bool "LogicPD MX27 LITEKIT platform"6565+ depends on MACH_MX276666+ help6767+ Include support for MX27 LITEKIT platform. This includes specific6868+ configurations for the board and its peripherals.6969+6270endif
···4848 __raw_writel(reg, clk->enable_reg);4949}50505151+static unsigned long _clk_generic_round_rate(struct clk *clk,5252+ unsigned long rate,5353+ u32 max_divisor)5454+{5555+ u32 div;5656+ unsigned long parent_rate;5757+5858+ parent_rate = clk_get_rate(clk->parent);5959+6060+ div = parent_rate / rate;6161+ if (parent_rate % rate)6262+ div++;6363+6464+ if (div > max_divisor)6565+ div = max_divisor;6666+6767+ return parent_rate / div;6868+}6969+5170static int _clk_spll_enable(struct clk *clk)5271{5372 u32 reg;···9778static unsigned long _clk_perclkx_round_rate(struct clk *clk,9879 unsigned long rate)9980{100100- u32 div;101101- unsigned long parent_rate;102102-103103- parent_rate = clk_get_rate(clk->parent);104104-105105- div = parent_rate / rate;106106- if (parent_rate % rate)107107- div++;108108-109109- if (div > 64)110110- div = 64;111111-112112- return parent_rate / div;8181+ return _clk_generic_round_rate(clk, rate, 64);11382}1148311584static int _clk_perclkx_set_rate(struct clk *clk, unsigned long rate)···135128 usb_pdf = (CSCR() & CCM_CSCR_USB_MASK) >> CCM_CSCR_USB_OFFSET;136129137130 return parent_rate / (usb_pdf + 1U);131131+}132132+133133+static unsigned long _clk_usb_round_rate(struct clk *clk,134134+ unsigned long rate)135135+{136136+ return _clk_generic_round_rate(clk, rate, 8);137137+}138138+139139+static int _clk_usb_set_rate(struct clk *clk, unsigned long rate)140140+{141141+ u32 reg;142142+ u32 div;143143+ unsigned long parent_rate;144144+145145+ parent_rate = clk_get_rate(clk->parent);146146+147147+ div = parent_rate / rate;148148+ if (div > 8 || div < 1 || ((parent_rate / div) != rate))149149+ return -EINVAL;150150+ div--;151151+152152+ reg = CSCR() & ~CCM_CSCR_USB_MASK;153153+ reg |= div << CCM_CSCR_USB_OFFSET;154154+ __raw_writel(reg, CCM_CSCR);155155+156156+ return 0;138157}139158140159static unsigned long _clk_ssix_recalc(struct clk *clk, unsigned long pdf)···628595static struct clk usb_clk[] = {629596 {630597 .parent = &spll_clk,598598+ .secondary = &usb_clk[1],631599 .get_rate = _clk_usb_recalc,632600 .enable = _clk_enable,633601 .enable_reg = CCM_PCCR_USBOTG_REG,634602 .enable_shift = CCM_PCCR_USBOTG_OFFSET,635603 .disable = _clk_disable,604604+ .round_rate = _clk_usb_round_rate,605605+ .set_rate = _clk_usb_set_rate,636606 }, {637607 .parent = &hclk_clk,638608 .enable = _clk_enable,···804768805769static unsigned long _clk_clko_round_rate(struct clk *clk, unsigned long rate)806770{807807- u32 div;808808- unsigned long parent_rate;809809-810810- parent_rate = clk_get_rate(clk->parent);811811- div = parent_rate / rate;812812- if (parent_rate % rate)813813- div++;814814-815815- if (div > 8)816816- div = 8;817817-818818- return parent_rate / div;771771+ return _clk_generic_round_rate(clk, rate, 8);819772}820773821774static int _clk_clko_set_rate(struct clk *clk, unsigned long rate)···946921 _REGISTER_CLOCK(NULL, "cspi3", cspi_clk[2])947922 _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk[0])948923 _REGISTER_CLOCK(NULL, "csi", csi_clk[0])949949- _REGISTER_CLOCK(NULL, "usb", usb_clk[0])924924+ _REGISTER_CLOCK("imx21-hcd.0", NULL, usb_clk[0])950925 _REGISTER_CLOCK(NULL, "ssi1", ssi_clk[0])951926 _REGISTER_CLOCK(NULL, "ssi2", ssi_clk[1])952927 _REGISTER_CLOCK("mxc_nand.0", NULL, nfc_clk)
+95
arch/arm/mach-mx2/mx27lite.c
···11+/*22+ * Copyright 2007 Robert Schwebel <r.schwebel@pengutronix.de>, Pengutronix33+ * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)44+ * Copyright 2009 Daniel Schaeffer (daniel.schaeffer@timesys.com)55+ *66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License as published by88+ * the Free Software Foundation; either version 2 of the License, or99+ * (at your option) any later version.1010+ *1111+ * This program is distributed in the hope that it will be useful,1212+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1313+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1414+ * GNU General Public License for more details.1515+ *1616+ * You should have received a copy of the GNU General Public License1717+ * along with this program; if not, write to the Free Software1818+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1919+ */2020+2121+#include <linux/platform_device.h>2222+#include <linux/gpio.h>2323+#include <asm/mach-types.h>2424+#include <asm/mach/arch.h>2525+#include <asm/mach/time.h>2626+#include <asm/mach/map.h>2727+#include <mach/hardware.h>2828+#include <mach/common.h>2929+#include <mach/imx-uart.h>3030+#include <mach/iomux.h>3131+#include <mach/board-mx27lite.h>3232+3333+#include "devices.h"3434+3535+static unsigned int mx27lite_pins[] = {3636+ /* UART1 */3737+ PE12_PF_UART1_TXD,3838+ PE13_PF_UART1_RXD,3939+ PE14_PF_UART1_CTS,4040+ PE15_PF_UART1_RTS,4141+ /* FEC */4242+ PD0_AIN_FEC_TXD0,4343+ PD1_AIN_FEC_TXD1,4444+ PD2_AIN_FEC_TXD2,4545+ PD3_AIN_FEC_TXD3,4646+ PD4_AOUT_FEC_RX_ER,4747+ PD5_AOUT_FEC_RXD1,4848+ PD6_AOUT_FEC_RXD2,4949+ PD7_AOUT_FEC_RXD3,5050+ PD8_AF_FEC_MDIO,5151+ PD9_AIN_FEC_MDC,5252+ PD10_AOUT_FEC_CRS,5353+ PD11_AOUT_FEC_TX_CLK,5454+ PD12_AOUT_FEC_RXD0,5555+ PD13_AOUT_FEC_RX_DV,5656+ PD14_AOUT_FEC_RX_CLK,5757+ PD15_AOUT_FEC_COL,5858+ PD16_AIN_FEC_TX_ER,5959+ PF23_AIN_FEC_TX_EN,6060+};6161+6262+static struct imxuart_platform_data uart_pdata = {6363+ .flags = IMXUART_HAVE_RTSCTS,6464+};6565+6666+static struct platform_device *platform_devices[] __initdata = {6767+ &mxc_fec_device,6868+};6969+7070+static void __init mx27lite_init(void)7171+{7272+ mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins),7373+ "imx27lite");7474+ mxc_register_device(&mxc_uart_device0, &uart_pdata);7575+ platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));7676+}7777+7878+static void __init mx27lite_timer_init(void)7979+{8080+ mx27_clocks_init(26000000);8181+}8282+8383+static struct sys_timer mx27lite_timer = {8484+ .init = mx27lite_timer_init,8585+};8686+8787+MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE")8888+ .phys_io = AIPI_BASE_ADDR,8989+ .io_pg_offst = ((AIPI_BASE_ADDR_VIRT) >> 18) & 0xfffc,9090+ .boot_params = PHYS_OFFSET + 0x100,9191+ .map_io = mx27_map_io,9292+ .init_irq = mxc_init_irq,9393+ .init_machine = mx27lite_init,9494+ .timer = &mx27lite_timer,9595+MACHINE_END
···5757 Include support for mx31moboard platform. This includes specific5858 configurations for the board and its peripherals.59596060+config MACH_MX31LILLY6161+ bool "Support MX31 LILLY-1131 platforms (INCO startec)"6262+ select ARCH_MX316363+ help6464+ Include support for mx31 based LILLY1131 modules. This includes6565+ specific configurations for the board and its peripherals.6666+6067config MACH_QONG6168 bool "Support Dave/DENX QongEVB-LITE platform"6269 select ARCH_MX31···7871 Include support for Phytec pcm043 platform. This includes7972 specific configurations for the board and its peripherals.80737474+config MACH_ARMADILLO5X07575+ bool "Support Atmark Armadillo-500 Development Base Board"7676+ select ARCH_MX317777+ help7878+ Include support for Atmark Armadillo-500 platform. This includes7979+ specific configurations for the board and its peripherals.8080+8181+config MACH_MX35_3DS8282+ bool "Support MX35PDK platform"8383+ select ARCH_MX358484+ default n8585+ help8686+ Include support for MX35PDK platform. This includes specific8787+ configurations for the board and its peripherals.8188endif
···11+/*22+ * LILLY-1131 development board support33+ *44+ * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>55+ *66+ * based on code for other MX31 boards,77+ *88+ * Copyright 2005-2007 Freescale Semiconductor99+ * Copyright (c) 2009 Alberto Panizzo <maramaopercheseimorto@gmail.com>1010+ * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group1111+ *1212+ * This program is free software; you can redistribute it and/or modify1313+ * it under the terms of the GNU General Public License as published by1414+ * the Free Software Foundation; either version 2 of the License, or1515+ * (at your option) any later version.1616+ *1717+ * This program is distributed in the hope that it will be useful,1818+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1919+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the2020+ * GNU General Public License for more details.2121+ *2222+ * You should have received a copy of the GNU General Public License2323+ * along with this program; if not, write to the Free Software2424+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA2525+ */2626+2727+#include <linux/kernel.h>2828+#include <linux/types.h>2929+#include <linux/init.h>3030+#include <linux/gpio.h>3131+#include <linux/platform_device.h>3232+3333+#include <asm/mach-types.h>3434+#include <asm/mach/arch.h>3535+#include <asm/mach/map.h>3636+3737+#include <mach/hardware.h>3838+#include <mach/common.h>3939+#include <mach/imx-uart.h>4040+#include <mach/iomux-mx3.h>4141+#include <mach/board-mx31lilly.h>4242+#include <mach/mmc.h>4343+#include <mach/mx3fb.h>4444+#include <mach/ipu.h>4545+4646+#include "devices.h"4747+4848+/*4949+ * This file contains board-specific initialization routines for the5050+ * LILLY-1131 development board. If you design an own baseboard for the5151+ * module, use this file as base for support code.5252+ */5353+5454+static unsigned int lilly_db_board_pins[] __initdata = {5555+ MX31_PIN_CTS1__CTS1,5656+ MX31_PIN_RTS1__RTS1,5757+ MX31_PIN_TXD1__TXD1,5858+ MX31_PIN_RXD1__RXD1,5959+ MX31_PIN_CTS2__CTS2,6060+ MX31_PIN_RTS2__RTS2,6161+ MX31_PIN_TXD2__TXD2,6262+ MX31_PIN_RXD2__RXD2,6363+ MX31_PIN_CSPI3_MOSI__RXD3,6464+ MX31_PIN_CSPI3_MISO__TXD3,6565+ MX31_PIN_CSPI3_SCLK__RTS3,6666+ MX31_PIN_CSPI3_SPI_RDY__CTS3,6767+ MX31_PIN_SD1_DATA3__SD1_DATA3,6868+ MX31_PIN_SD1_DATA2__SD1_DATA2,6969+ MX31_PIN_SD1_DATA1__SD1_DATA1,7070+ MX31_PIN_SD1_DATA0__SD1_DATA0,7171+ MX31_PIN_SD1_CLK__SD1_CLK,7272+ MX31_PIN_SD1_CMD__SD1_CMD,7373+ MX31_PIN_LD0__LD0,7474+ MX31_PIN_LD1__LD1,7575+ MX31_PIN_LD2__LD2,7676+ MX31_PIN_LD3__LD3,7777+ MX31_PIN_LD4__LD4,7878+ MX31_PIN_LD5__LD5,7979+ MX31_PIN_LD6__LD6,8080+ MX31_PIN_LD7__LD7,8181+ MX31_PIN_LD8__LD8,8282+ MX31_PIN_LD9__LD9,8383+ MX31_PIN_LD10__LD10,8484+ MX31_PIN_LD11__LD11,8585+ MX31_PIN_LD12__LD12,8686+ MX31_PIN_LD13__LD13,8787+ MX31_PIN_LD14__LD14,8888+ MX31_PIN_LD15__LD15,8989+ MX31_PIN_LD16__LD16,9090+ MX31_PIN_LD17__LD17,9191+ MX31_PIN_VSYNC3__VSYNC3,9292+ MX31_PIN_HSYNC__HSYNC,9393+ MX31_PIN_FPSHIFT__FPSHIFT,9494+ MX31_PIN_DRDY0__DRDY0,9595+ MX31_PIN_CONTRAST__CONTRAST,9696+};9797+9898+/* UART */9999+static struct imxuart_platform_data uart_pdata __initdata = {100100+ .flags = IMXUART_HAVE_RTSCTS,101101+};102102+103103+/* MMC support */104104+105105+static int mxc_mmc1_get_ro(struct device *dev)106106+{107107+ return gpio_get_value(IOMUX_TO_GPIO(MX31_PIN_LCS0));108108+}109109+110110+static int gpio_det, gpio_wp;111111+112112+static int mxc_mmc1_init(struct device *dev,113113+ irq_handler_t detect_irq, void *data)114114+{115115+ int ret;116116+117117+ gpio_det = IOMUX_TO_GPIO(MX31_PIN_GPIO1_1);118118+ gpio_wp = IOMUX_TO_GPIO(MX31_PIN_LCS0);119119+120120+ ret = gpio_request(gpio_det, "MMC detect");121121+ if (ret)122122+ return ret;123123+124124+ ret = gpio_request(gpio_wp, "MMC w/p");125125+ if (ret)126126+ goto exit_free_det;127127+128128+ gpio_direction_input(gpio_det);129129+ gpio_direction_input(gpio_wp);130130+131131+ ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), detect_irq,132132+ IRQF_DISABLED | IRQF_TRIGGER_FALLING,133133+ "MMC detect", data);134134+ if (ret)135135+ goto exit_free_wp;136136+137137+ return 0;138138+139139+exit_free_wp:140140+ gpio_free(gpio_wp);141141+142142+exit_free_det:143143+ gpio_free(gpio_det);144144+145145+ return ret;146146+}147147+148148+static void mxc_mmc1_exit(struct device *dev, void *data)149149+{150150+ gpio_free(gpio_det);151151+ gpio_free(gpio_wp);152152+ free_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), data);153153+}154154+155155+static struct imxmmc_platform_data mmc_pdata = {156156+ .get_ro = mxc_mmc1_get_ro,157157+ .init = mxc_mmc1_init,158158+ .exit = mxc_mmc1_exit,159159+};160160+161161+/* Framebuffer support */162162+static struct ipu_platform_data ipu_data __initdata = {163163+ .irq_base = MXC_IPU_IRQ_START,164164+};165165+166166+static const struct fb_videomode fb_modedb = {167167+ /* 640x480 TFT panel (IPS-056T) */168168+ .name = "CRT-VGA",169169+ .refresh = 64,170170+ .xres = 640,171171+ .yres = 480,172172+ .pixclock = 30000,173173+ .left_margin = 200,174174+ .right_margin = 2,175175+ .upper_margin = 2,176176+ .lower_margin = 2,177177+ .hsync_len = 3,178178+ .vsync_len = 1,179179+ .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_OE_ACT_HIGH,180180+ .vmode = FB_VMODE_NONINTERLACED,181181+ .flag = 0,182182+};183183+184184+static struct mx3fb_platform_data fb_pdata __initdata = {185185+ .dma_dev = &mx3_ipu.dev,186186+ .name = "CRT-VGA",187187+ .mode = &fb_modedb,188188+ .num_modes = 1,189189+};190190+191191+#define LCD_VCC_EN_GPIO (7)192192+193193+static void __init mx31lilly_init_fb(void)194194+{195195+ if (gpio_request(LCD_VCC_EN_GPIO, "LCD enable") != 0) {196196+ printk(KERN_WARNING "unable to request LCD_VCC_EN pin.\n");197197+ return;198198+ }199199+200200+ mxc_register_device(&mx3_ipu, &ipu_data);201201+ mxc_register_device(&mx3_fb, &fb_pdata);202202+ gpio_direction_output(LCD_VCC_EN_GPIO, 1);203203+}204204+205205+void __init mx31lilly_db_init(void)206206+{207207+ mxc_iomux_setup_multiple_pins(lilly_db_board_pins,208208+ ARRAY_SIZE(lilly_db_board_pins),209209+ "development board pins");210210+ mxc_register_device(&mxc_uart_device0, &uart_pdata);211211+ mxc_register_device(&mxc_uart_device1, &uart_pdata);212212+ mxc_register_device(&mxc_uart_device2, &uart_pdata);213213+ mxc_register_device(&mxcsdhc_device0, &mmc_pdata);214214+ mx31lilly_init_fb();215215+}216216+
+155
arch/arm/mach-mx3/mx31lilly.c
···11+/*22+ * LILLY-1131 module support33+ *44+ * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>55+ *66+ * based on code for other MX31 boards,77+ *88+ * Copyright 2005-2007 Freescale Semiconductor99+ * Copyright (c) 2009 Alberto Panizzo <maramaopercheseimorto@gmail.com>1010+ * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group1111+ *1212+ * This program is free software; you can redistribute it and/or modify1313+ * it under the terms of the GNU General Public License as published by1414+ * the Free Software Foundation; either version 2 of the License, or1515+ * (at your option) any later version.1616+ *1717+ * This program is distributed in the hope that it will be useful,1818+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1919+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the2020+ * GNU General Public License for more details.2121+ *2222+ * You should have received a copy of the GNU General Public License2323+ * along with this program; if not, write to the Free Software2424+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA2525+ */2626+2727+#include <linux/types.h>2828+#include <linux/init.h>2929+#include <linux/clk.h>3030+#include <linux/platform_device.h>3131+#include <linux/interrupt.h>3232+#include <linux/smsc911x.h>3333+#include <linux/mtd/physmap.h>3434+3535+#include <asm/mach-types.h>3636+#include <asm/mach/arch.h>3737+#include <asm/mach/time.h>3838+#include <asm/mach/map.h>3939+4040+#include <mach/hardware.h>4141+#include <mach/common.h>4242+#include <mach/iomux-mx3.h>4343+#include <mach/board-mx31lilly.h>4444+4545+#include "devices.h"4646+4747+/*4848+ * This file contains module-specific initialization routines for LILLY-1131.4949+ * Initialization of peripherals found on the baseboard is implemented in the5050+ * appropriate baseboard support code.5151+ */5252+5353+/* SMSC ethernet support */5454+5555+static struct resource smsc91x_resources[] = {5656+ {5757+ .start = CS4_BASE_ADDR,5858+ .end = CS4_BASE_ADDR + 0xffff,5959+ .flags = IORESOURCE_MEM,6060+ },6161+ {6262+ .start = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0),6363+ .end = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0),6464+ .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING,6565+ }6666+};6767+6868+static struct smsc911x_platform_config smsc911x_config = {6969+ .phy_interface = PHY_INTERFACE_MODE_MII,7070+ .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,7171+ .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,7272+ .flags = SMSC911X_USE_32BIT |7373+ SMSC911X_SAVE_MAC_ADDRESS |7474+ SMSC911X_FORCE_INTERNAL_PHY,7575+};7676+7777+static struct platform_device smsc91x_device = {7878+ .name = "smsc911x",7979+ .id = -1,8080+ .num_resources = ARRAY_SIZE(smsc91x_resources),8181+ .resource = smsc91x_resources,8282+ .dev = {8383+ .platform_data = &smsc911x_config,8484+ }8585+};8686+8787+/* NOR flash */8888+static struct physmap_flash_data nor_flash_data = {8989+ .width = 2,9090+};9191+9292+static struct resource nor_flash_resource = {9393+ .start = 0xa0000000,9494+ .end = 0xa1ffffff,9595+ .flags = IORESOURCE_MEM,9696+};9797+9898+static struct platform_device physmap_flash_device = {9999+ .name = "physmap-flash",100100+ .id = 0,101101+ .dev = {102102+ .platform_data = &nor_flash_data,103103+ },104104+ .resource = &nor_flash_resource,105105+ .num_resources = 1,106106+};107107+108108+static struct platform_device *devices[] __initdata = {109109+ &smsc91x_device,110110+ &physmap_flash_device,111111+ &mxc_i2c_device1,112112+};113113+114114+static int mx31lilly_baseboard;115115+core_param(mx31lilly_baseboard, mx31lilly_baseboard, int, 0444);116116+117117+static void __init mx31lilly_board_init(void)118118+{119119+ switch (mx31lilly_baseboard) {120120+ case MX31LILLY_NOBOARD:121121+ break;122122+ case MX31LILLY_DB:123123+ mx31lilly_db_init();124124+ break;125125+ default:126126+ printk(KERN_ERR "Illegal mx31lilly_baseboard type %d\n",127127+ mx31lilly_baseboard);128128+ }129129+130130+ mxc_iomux_alloc_pin(MX31_PIN_CS4__CS4, "Ethernet CS");131131+ mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MOSI__SCL, "I2C SCL");132132+ mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MISO__SDA, "I2C SDA");133133+134134+ platform_add_devices(devices, ARRAY_SIZE(devices));135135+}136136+137137+static void __init mx31lilly_timer_init(void)138138+{139139+ mx31_clocks_init(26000000);140140+}141141+142142+static struct sys_timer mx31lilly_timer = {143143+ .init = mx31lilly_timer_init,144144+};145145+146146+MACHINE_START(LILLY1131, "INCO startec LILLY-1131")147147+ .phys_io = AIPS1_BASE_ADDR,148148+ .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,149149+ .boot_params = PHYS_OFFSET + 0x100,150150+ .map_io = mx31_map_io,151151+ .init_irq = mxc_init_irq,152152+ .init_machine = mx31lilly_board_init,153153+ .timer = &mx31lilly_timer,154154+MACHINE_END155155+
···11+/*22+ * Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved.33+ *44+ * Author: Fabio Estevam <fabio.estevam@freescale.com>55+ *66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License as published by88+ * the Free Software Foundation; either version 2 of the License, or99+ * (at your option) any later version.1010+ *1111+ * This program is distributed in the hope that it will be useful,1212+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1313+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1414+ * GNU General Public License for more details.1515+ *1616+ * You should have received a copy of the GNU General Public License1717+ * along with this program; if not, write to the Free Software1818+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1919+ */2020+2121+#include <linux/types.h>2222+#include <linux/init.h>2323+#include <linux/platform_device.h>2424+#include <linux/memory.h>2525+#include <linux/gpio.h>2626+2727+#include <asm/mach-types.h>2828+#include <asm/mach/arch.h>2929+#include <asm/mach/time.h>3030+#include <asm/mach/map.h>3131+3232+#include <mach/hardware.h>3333+#include <mach/common.h>3434+#include <mach/imx-uart.h>3535+#include <mach/iomux-mx35.h>3636+3737+#include "devices.h"3838+3939+static struct imxuart_platform_data uart_pdata = {4040+ .flags = IMXUART_HAVE_RTSCTS,4141+};4242+4343+static struct platform_device *devices[] __initdata = {4444+ &mxc_fec_device,4545+};4646+4747+static struct pad_desc mx35pdk_pads[] = {4848+ /* UART1 */4949+ MX35_PAD_CTS1__UART1_CTS,5050+ MX35_PAD_RTS1__UART1_RTS,5151+ MX35_PAD_TXD1__UART1_TXD_MUX,5252+ MX35_PAD_RXD1__UART1_RXD_MUX,5353+ /* FEC */5454+ MX35_PAD_FEC_TX_CLK__FEC_TX_CLK,5555+ MX35_PAD_FEC_RX_CLK__FEC_RX_CLK,5656+ MX35_PAD_FEC_RX_DV__FEC_RX_DV,5757+ MX35_PAD_FEC_COL__FEC_COL,5858+ MX35_PAD_FEC_RDATA0__FEC_RDATA_0,5959+ MX35_PAD_FEC_TDATA0__FEC_TDATA_0,6060+ MX35_PAD_FEC_TX_EN__FEC_TX_EN,6161+ MX35_PAD_FEC_MDC__FEC_MDC,6262+ MX35_PAD_FEC_MDIO__FEC_MDIO,6363+ MX35_PAD_FEC_TX_ERR__FEC_TX_ERR,6464+ MX35_PAD_FEC_RX_ERR__FEC_RX_ERR,6565+ MX35_PAD_FEC_CRS__FEC_CRS,6666+ MX35_PAD_FEC_RDATA1__FEC_RDATA_1,6767+ MX35_PAD_FEC_TDATA1__FEC_TDATA_1,6868+ MX35_PAD_FEC_RDATA2__FEC_RDATA_2,6969+ MX35_PAD_FEC_TDATA2__FEC_TDATA_2,7070+ MX35_PAD_FEC_RDATA3__FEC_RDATA_3,7171+ MX35_PAD_FEC_TDATA3__FEC_TDATA_3,7272+};7373+7474+/*7575+ * Board specific initialization.7676+ */7777+static void __init mxc_board_init(void)7878+{7979+ mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads));8080+8181+ platform_add_devices(devices, ARRAY_SIZE(devices));8282+8383+ mxc_register_device(&mxc_uart_device0, &uart_pdata);8484+}8585+8686+static void __init mx35pdk_timer_init(void)8787+{8888+ mx35_clocks_init();8989+}9090+9191+struct sys_timer mx35pdk_timer = {9292+ .init = mx35pdk_timer_init,9393+};9494+9595+MACHINE_START(MX35_3DS, "Freescale MX35PDK")9696+ /* Maintainer: Freescale Semiconductor, Inc */9797+ .phys_io = AIPS1_BASE_ADDR,9898+ .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,9999+ .boot_params = PHYS_OFFSET + 0x100,100100+ .map_io = mx35_map_io,101101+ .init_irq = mxc_init_irq,102102+ .init_machine = mxc_board_init,103103+ .timer = &mx35pdk_timer,104104+MACHINE_END
···11+/*22+ * Copyright 2009 Alberto Panizzo <maramaopercheseimorto@gmail.com>.33+ * All Rights Reserved.44+ */55+66+/*77+ * This program is free software; you can redistribute it and/or modify88+ * it under the terms of the GNU General Public License version 2 as99+ * published by the Free Software Foundation.1010+ */1111+1212+#ifndef __ASM_ARCH_MXC_BOARD_ARMADILLO5X0_H__1313+#define __ASM_ARCH_MXC_BOARD_ARMADILLO5X0_H__1414+1515+#include <mach/hardware.h>1616+1717+/* mandatory for CONFIG_DEBUG_LL */1818+1919+#define MXC_LL_UART_PADDR UART1_BASE_ADDR2020+#define MXC_LL_UART_VADDR AIPS1_IO_ADDRESS(UART1_BASE_ADDR)2121+2222+#endif
+19
arch/arm/plat-mxc/include/mach/board-mx27lite.h
···11+/*22+ * Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_BOARD_MX27LITE_H__1212+#define __ASM_ARCH_MXC_BOARD_MX27LITE_H__1313+1414+/* mandatory for CONFIG_DEBUG_LL */1515+1616+#define MXC_LL_UART_PADDR UART1_BASE_ADDR1717+#define MXC_LL_UART_VADDR AIPS1_IO_ADDRESS(UART1_BASE_ADDR)1818+1919+#endif /* __ASM_ARCH_MXC_BOARD_MX27LITE_H__ */
+46
arch/arm/plat-mxc/include/mach/board-mx31lilly.h
···11+/*22+ * Copyright (C) 2009 Daniel Mack <daniel@caiaq.de>33+ *44+ * Based on code for mobots boards,55+ * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group66+ *77+ * This program is free software; you can redistribute it and/or88+ * modify it under the terms of the GNU General Public License99+ * as published by the Free Software Foundation; either version 21010+ * of the License, or (at your option) any later version.1111+ * This program is distributed in the hope that it will be useful,1212+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1313+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1414+ * GNU General Public License for more details.1515+ *1616+ * You should have received a copy of the GNU General Public License1717+ * along with this program; if not, write to the Free Software1818+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,1919+ * MA 02110-1301, USA.2020+ */2121+2222+#ifndef __ASM_ARCH_MXC_BOARD_MX31LILLY_H__2323+#define __ASM_ARCH_MXC_BOARD_MX31LILLY_H__2424+2525+/* mandatory for CONFIG_LL_DEBUG */2626+2727+#define MXC_LL_UART_PADDR UART1_BASE_ADDR2828+#define MXC_LL_UART_VADDR (AIPI_BASE_ADDR_VIRT + 0x0A000)2929+3030+#ifndef __ASSEMBLY__3131+3232+enum mx31lilly_boards {3333+ MX31LILLY_NOBOARD = 0,3434+ MX31LILLY_DB = 1,3535+};3636+3737+/*3838+ * This CPU module needs a baseboard to work. After basic initializing3939+ * its own devices, it calls baseboard's init function.4040+ */4141+4242+extern void mx31lilly_db_init(void);4343+4444+#endif4545+4646+#endif /* __ASM_ARCH_MXC_BOARD_MX31LILLY_H__ */
+27
arch/arm/plat-mxc/include/mach/board-mx35pdk.h
···11+/*22+ * Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved33+ *44+ * This program is free software; you can redistribute it and/or modify55+ * it under the terms of the GNU General Public License as published by66+ * the Free Software Foundation; either version 2 of the License, or77+ * (at your option) any later version.88+ *99+ * This program is distributed in the hope that it will be useful,1010+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1111+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1212+ * GNU General Public License for more details.1313+ *1414+ * You should have received a copy of the GNU General Public License1515+ * along with this program; if not, write to the Free Software1616+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1717+ */1818+1919+#ifndef __ASM_ARCH_MXC_BOARD_MX35PDK_H__2020+#define __ASM_ARCH_MXC_BOARD_MX35PDK_H__2121+2222+/* mandatory for CONFIG_DEBUG_LL */2323+2424+#define MXC_LL_UART_PADDR UART1_BASE_ADDR2525+#define MXC_LL_UART_VADDR AIPS1_IO_ADDRESS(UART1_BASE_ADDR)2626+2727+#endif /* __ASM_ARCH_MXC_BOARD_MX35PDK_H__ */