[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.2-62-g502ac7d
Brought to you by:
sszy
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2012-11-25 17:56:48
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 502ac7dc2b57fdfcb5afaa39a9025a22e518ff1d (commit)
via 1aadcf0bd916cd1ebabe50a28f8460f006960fa7 (commit)
via bee7258e681cc650ef6727bd126a6ea09b60325f (commit)
via 900167527b55cc1bd86b0594123a3cbe56ad6865 (commit)
from db67b6beaef7a94b67cd2c0c0aacdcefdca236c3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 502ac7dc2b57fdfcb5afaa39a9025a22e518ff1d
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Nov 25 18:55:49 2012 +0100
[LINUX][3.7] apf9328: add linux 3.7 and 3.7-rc6 kernel config
commit 1aadcf0bd916cd1ebabe50a28f8460f006960fa7
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Nov 25 18:54:40 2012 +0100
[LINUX][3.7] apf9328: fix patch 0029b
commit bee7258e681cc650ef6727bd126a6ea09b60325f
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Nov 25 18:54:01 2012 +0100
[LINUX][3.7] apf9328: correct dma clock shift register
commit 900167527b55cc1bd86b0594123a3cbe56ad6865
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Nov 25 18:52:26 2012 +0100
[LINUX][3.7] apf9328: adapt patches 0021, 0024 from 2.6.38
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf9328/apf9328-linux-3.7-rc6.config | 1 +
...inux-2.6.38.config => apf9328-linux-3.7.config} | 24 +-
.../0021-armadeus-apf9328.patch} | 1225 ++++++++------------
...s-apf9328-add_board_to_linux_build_system.patch | 60 +
.../3.7/0025-armadeus-imx-correct_dma_shift.patch | 18 +
...ofix => 0029b-armadeus-add_csi_registers.patch} | 10 +-
6 files changed, 578 insertions(+), 760 deletions(-)
create mode 120000 buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7-rc6.config
copy buildroot/target/device/armadeus/apf9328/{apf9328-linux-2.6.38.config => apf9328-linux-3.7.config} (92%)
copy patches/linux/{2.6.38/021-armadeus-apf9328.patch => 3.7/0021-armadeus-apf9328.patch} (69%)
create mode 100644 patches/linux/3.7/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
create mode 100644 patches/linux/3.7/0025-armadeus-imx-correct_dma_shift.patch
rename patches/linux/3.7/{0029b-armadeus-add_csi_registers.tofix => 0029b-armadeus-add_csi_registers.patch} (78%)
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7-rc6.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7-rc6.config
new file mode 120000
index 0000000..52e3475
--- /dev/null
+++ b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7-rc6.config
@@ -0,0 +1 @@
+apf9328-linux-3.7.config
\ No newline at end of file
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.config
similarity index 92%
copy from buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.config
copy to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.config
index 420c38a..ee8fc64 100644
--- a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.config
+++ b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.config
@@ -6,15 +6,17 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
-CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
+CONFIG_EMBEDDED=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_BSD_DISKLABEL=y
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_MXC=y
-CONFIG_ARCH_MX1=y
+CONFIG_ARCH_IMX_V4_V5=y
CONFIG_MACH_APF9328=y
CONFIG_IMX_APF9328_FLASH_8MB=y
CONFIG_MXC_PWM=y
@@ -66,8 +68,6 @@ CONFIG_NET_ETHERNET=y
CONFIG_DM9000=y
CONFIG_DM9000_DEBUGLEVEL=2
CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
# CONFIG_WLAN is not set
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=y
@@ -83,21 +83,20 @@ CONFIG_KEYBOARD_SUNKBD=y
CONFIG_KEYBOARD_XTKBD=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_TSC2102=y
CONFIG_SERIO_RAW=y
CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_HW_RANDOM=y
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
+CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
-# CONFIG_MFD_SUPPORT is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
@@ -114,20 +113,22 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
-CONFIG_FONT_6x11=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
CONFIG_FONT_7x14=y
CONFIG_FONT_PEARL_8x8=y
CONFIG_FONT_ACORN_8x8=y
CONFIG_FONT_SUN8x16=y
-CONFIG_FONT_SUN12x22=y
-CONFIG_FONT_10x18=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
CONFIG_HIDRAW=y
CONFIG_HID_PID=y
-# CONFIG_USB_SUPPORT is not set
+CONFIG_USB_GADGET=y
+CONFIG_USB_IMX=y
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
CONFIG_ARMADEUS_DRIVERS=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
@@ -152,7 +153,6 @@ CONFIG_BSD_DISKLABEL=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_ARM_UNWIND is not set
CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/patches/linux/2.6.38/021-armadeus-apf9328.patch b/patches/linux/3.7/0021-armadeus-apf9328.patch
similarity index 69%
copy from patches/linux/2.6.38/021-armadeus-apf9328.patch
copy to patches/linux/3.7/0021-armadeus-apf9328.patch
index 15adb6d..4880ce3 100644
--- a/patches/linux/2.6.38/021-armadeus-apf9328.patch
+++ b/patches/linux/3.7/0021-armadeus-apf9328.patch
@@ -1,597 +1,8 @@
-Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328.c
+Index: linux-3.7-rc6/arch/arm/mach-imx/apf9328_lcd_config.h
===================================================================
--- /dev/null
-+++ linux-2.6.38-rc3/arch/arm/mach-imx/apf9328.c
-@@ -0,0 +1,584 @@
-+/*
-+ * linux/arch/arm/mach-imx/apf9328.c
-+ *
-+ * Copyright (c) 2005-2011 Armadeus systems
-+ * This work is based on scb9328.c from Sascha Hauer
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ */
-+
-+#include <asm/mach/arch.h>
-+#include <asm/mach/time.h>
-+#include <mach/common.h>
-+#include <linux/device.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/physmap.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <linux/serial_8250.h>
-+#include <linux/serial.h>
-+#include <linux/spi/spi.h>
-+
-+#include <asm/system.h>
-+#include <mach/hardware.h>
-+#include <linux/irq.h>
-+#include <asm/pgtable.h>
-+#include <asm/page.h>
-+
-+#include <asm/mach/map.h>
-+#include <asm/mach-types.h>
-+#include <mach/gpio.h>
-+#include <mach/imx-uart.h>
-+#include <mach/mmc.h>
-+#include <mach/usb.h>
-+#include <mach/spi.h>
-+#include <mach/mx1.h> /* mxc_gpio_mode() */
-+#include <linux/spi/max1027.h>
-+#include <mach/ssi.h>
-+#include <mach/dma-mx1-mx2.h>
-+#include "../../../drivers/armadeus/pwm/pwm.h"
-+#include <linux/dm9000.h>
-+#include <mach/iomux-v1.h>
-+#include <mach/iomux-mx1.h>
-+#include <mach/board-apf9328.h>
-+#ifdef CONFIG_MACH_APF9328_FPGA
-+#include "../plat-mxc/include/mach/fpga.h" /* To be removed when MX1 arch is fully integrated */
-+#endif
-+#include <mach/imxfb.h>
-+#include "devices-imx1.h"
-+
-+#define IMX_FB_VIRT 0xF1000000
-+#define IMX_FB_SIZE (256*1024)
-+#ifdef CONFIG_ARMADEUS_MAX1027_MODULE
-+#define CONFIG_ARMADEUS_MAX1027 1
-+#endif
-+#ifdef CONFIG_SPI_IMX_MODULE
-+#define CONFIG_SPI_IMX 1
-+#endif
-+#ifdef CONFIG_SND_IMX_PCM_MODULE
-+#define CONFIG_SND_IMX_PCM 1
-+#endif
-+#ifdef CONFIG_IMX_BACKLIGHT_MODULE
-+#define CONFIG_IMX_BACKLIGHT 1
-+#endif
-+#ifdef CONFIG_ARMADEUS_PWM_DRIVER_MODULE
-+#define CONFIG_PWM
-+#endif
-+#ifdef CONFIG_ARMADEUS_PWM_DRIVER
-+#define CONFIG_PWM
-+#endif
-+
-+
-+static int apf9328_pins[] = {
-+ /* SPI0 */
-+ PC14_PF_SPI1_SCLK,
-+ PC16_PF_SPI1_MISO,
-+ PC17_PF_SPI1_MOSI,
-+};
-+
-+/*
-+ * APF9328 has a DM9000 Ethernet controller
-+ */
-+static struct resource dm9000_resources[] = {
-+ [0] = {
-+ .start = (APF9328_ETH_PHYS + 0),
-+ .end = (APF9328_ETH_PHYS + 1),
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = (APF9328_ETH_PHYS + 2),
-+ .end = (APF9328_ETH_PHYS + 3),
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [2] = {
-+ .start = (APF9328_ETH_IRQ),
-+ .end = (APF9328_ETH_IRQ),
-+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
-+ },
-+};
-+
-+static struct dm9000_plat_data dm9000_setup = {
-+ .flags = DM9000_PLATF_16BITONLY
-+};
-+
-+static struct platform_device dm9000x_device = {
-+ .name = "dm9000",
-+ .id = 0,
-+ .num_resources = ARRAY_SIZE(dm9000_resources),
-+ .resource = dm9000_resources,
-+ .dev = { .platform_data = &dm9000_setup, },
-+};
-+
-+#ifdef CONFIG_MXC_PWM
-+static struct resource pwm_resources[] = {
-+ [0] = {
-+ .start = 0x00208000,
-+ .end = 0x0020800c,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = (MX1_PWM_INT),
-+ .end = (MX1_PWM_INT),
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static int apf9328_pwm_0_init(void)
-+{
-+ /* Init Port PA[2] : PWMO*/
-+ mxc_gpio_mode(PA2_PF_PWM0);
-+ return 0;
-+}
-+
-+static int apf9328_pwm_0_exit(void)
-+{
-+ return 0;
-+}
-+
-+static struct imx_pwm_platform_data apf9328_pwm_0_data = {
-+ .init = apf9328_pwm_0_init,
-+ .exit = apf9328_pwm_0_exit,
-+};
-+
-+static struct platform_device imx_pwm_device = {
-+ .name = "imx-pwm",
-+ .id = 0,
-+ .num_resources = ARRAY_SIZE(pwm_resources),
-+ .resource = pwm_resources,
-+ .dev = {
-+ .platform_data = &apf9328_pwm_0_data,
-+ }
-+};
-+#endif /* CONFIG_MXC_PWM */
-+
-+#ifdef CONFIG_USB_GADGET_IMX
-+static int apf9328_udc_0_init(struct device * dev)
-+{
-+ mxc_gpio_mode(PC3_PF_SSI_RXFS);
-+ mxc_gpio_mode(PB20_PF_USBD_AFE);
-+ mxc_gpio_mode(PB21_PF_USBD_OE);
-+ mxc_gpio_mode(PB22_PF_USBD_RCV);
-+ mxc_gpio_mode(PB23_PF_USBD_SUSPND);
-+ mxc_gpio_mode(PB24_PF_USBD_VP);
-+ mxc_gpio_mode(PB25_PF_USBD_VM);
-+ mxc_gpio_mode(PB26_PF_USBD_VPO);
-+ mxc_gpio_mode(PB27_PF_USBD_VMO);
-+
-+ return 0;
-+}
-+
-+static void apf9328_udc_0_exit(struct device * dev)
-+{
-+}
-+
-+static struct imxusb_platform_data apf9328_udc_0_data = {
-+ .init = apf9328_udc_0_init,
-+ .exit = apf9328_udc_0_exit,
-+};
-+#endif /* CONFIG_USB_GADGET_IMX */
-+
-+// TBD GGM
-+#if 0
-+#if defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE)
-+int apf9328_ssi_gpio_init(struct platform_device *pdev)
-+{
-+ /* Activate SSI on PortC */
-+ mxc_gpio_mode(PC3_PF_SSI_RXFS);
-+ FMCR &= ~(SSI_RXFS_SEL);
-+ mxc_gpio_mode(PC4_PF_SSI_RXCLK);
-+ FMCR &= ~(SSI_RXCLK_SEL);
-+ mxc_gpio_mode(PC5_PF_SSI_RXDAT);
-+ FMCR &= ~(SSI_RXDAT_SEL);
-+ mxc_gpio_mode(PC6_PF_SSI_TXDAT);
-+ mxc_gpio_mode(PC7_PF_SSI_TXFS);
-+ FMCR &= ~(SSI_TXFS_SEL);
-+ mxc_gpio_mode(PC8_PF_SSI_TXCLK);
-+ FMCR &= ~(SSI_TXCLK_SEL);
-+
-+ printk("SSI pins configured\n");
-+ return 0;
-+}
-+
-+static struct imx_ssi_platform_data apf9328_ssi_pdata = {
-+ .init = apf9328_ssi_gpio_init,
-+};
-+
-+static struct resource ssi_resources[] = {
-+ [0] = {
-+ .start = (0x00218000),
-+ .end = (0x00218000 + 0x28),
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = SSI_TX_INT,
-+ .end = SSI_TX_INT,
-+ .flags = IORESOURCE_IRQ
-+ },
-+ [2] = {
-+ .start = SSI_TX_ERR_INT,
-+ .end = SSI_TX_ERR_INT,
-+ .flags = IORESOURCE_IRQ
-+ },
-+ [3] = {
-+ .start = SSI_RX_INT,
-+ .end = SSI_RX_INT,
-+ .flags = IORESOURCE_IRQ
-+ },
-+ [4] = {
-+ .start = SSI_RX_ERR_INT,
-+ .end = SSI_RX_ERR_INT,
-+ .flags = IORESOURCE_IRQ
-+ },
-+ [5] = {
-+ .name = "tx0",
-+ .start = DMA_REQ_SSI_T,
-+ .end = DMA_REQ_SSI_T,
-+ .flags = IORESOURCE_DMA
-+ },
-+ [6] = {
-+ .name = "rx0",
-+ .start = DMA_REQ_SSI_R,
-+ .end = DMA_REQ_SSI_R,
-+ .flags = IORESOURCE_DMA
-+ },
-+};
-+
-+static struct platform_device apf9328_ssi_device = {
-+ .name = "imx-ssi",
-+ .id = 0,
-+ .num_resources = ARRAY_SIZE(ssi_resources),
-+ .resource = ssi_resources,
-+ .dev = {
-+ .platform_data = &apf9328_ssi_pdata,
-+ }
-+};
-+
-+#endif /* defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE) */
-+#endif
-+
-+/* --- SERIAL RESSOURCE --- */
-+static int mxc_uart0_pins[] = {
-+ PC9_PF_UART1_CTS,
-+ PC10_PF_UART1_RTS,
-+ PC11_PF_UART1_TXD,
-+ PC12_PF_UART1_RXD
-+};
-+
-+static int uart_mxc_port0_init(struct platform_device *pdev)
-+{
-+ return mxc_gpio_setup_multiple_pins(mxc_uart0_pins, ARRAY_SIZE(mxc_uart0_pins), "UART1");
-+}
-+
-+static void uart_mxc_port0_exit(struct platform_device *pdev)
-+{
-+ mxc_gpio_release_multiple_pins(mxc_uart0_pins, ARRAY_SIZE(mxc_uart0_pins));
-+}
-+
-+static struct imxuart_platform_data uart0_pdata = {
-+ .init = uart_mxc_port0_init,
-+ .exit = uart_mxc_port0_exit,
-+ .flags = 0,
-+};
-+
-+static int mxc_uart1_pins[] = {
-+ PB28_PF_UART2_CTS,
-+ PB29_PF_UART2_RTS,
-+ PB30_PF_UART2_TXD,
-+ PB31_PF_UART2_RXD
-+};
-+
-+static int uart_mxc_port1_init(struct platform_device *pdev)
-+{
-+ return mxc_gpio_setup_multiple_pins(mxc_uart1_pins, ARRAY_SIZE(mxc_uart1_pins), "UART2");
-+}
-+
-+static void uart_mxc_port1_exit(struct platform_device *pdev)
-+{
-+ mxc_gpio_release_multiple_pins(mxc_uart1_pins, ARRAY_SIZE(mxc_uart1_pins));
-+}
-+
-+static struct imxuart_platform_data uart1_pdata = {
-+ .init = uart_mxc_port1_init,
-+ .exit = uart_mxc_port1_exit,
-+ .flags = IMXUART_HAVE_RTSCTS,
-+};
-+
-+#ifdef CONFIG_SPI_IMX
-+#define SPIDEV_CS (GPIO_PORTB + 18)
-+#define MAX1027_CS (GPIO_PORTC + 15)
-+
-+static int apf9328_spi1_cs[] = {
-+ MAX1027_CS,
-+ SPIDEV_CS,
-+};
-+
-+static const struct spi_imx_master imx_spi1_master_info = {
-+ .chipselect = apf9328_spi1_cs,
-+ .num_chipselect = ARRAY_SIZE(apf9328_spi1_cs),
-+};
-+
-+#define MCP251X_CS (GPIO_PORTB + 19)
-+#define TSC2102_CS (GPIO_PORTB + 17)
-+
-+static int apf9328_spi2_cs[] = {
-+ TSC2102_CS,
-+ MCP251X_CS,
-+};
-+
-+static const struct spi_imx_master imx_spi2_master_info = {
-+ .chipselect = apf9328_spi2_cs,
-+ .num_chipselect = ARRAY_SIZE(apf9328_spi2_cs),
-+};
-+#endif /* CONFIG_SPI_IMX */
-+
-+/*
-+ * APF9328 can have an optionnal MAX1027 ADC
-+ */
-+#ifdef CONFIG_ARMADEUS_MAX1027
-+#define IMX_SPI1_SS_PIN 15
-+#define MAX1027_EOC_INT (GPIO_PORTA | 13)
-+#define MAX1027_CNVST (GPIO_PORTA | 14)
-+
-+static int max1027_init(struct spi_device *spi)
-+{
-+ mxc_gpio_mode(MAX1027_EOC_INT | GPIO_IN | GPIO_GPIO);
-+ mxc_gpio_mode(MAX1027_CNVST | GPIO_OUT | GPIO_GPIO);
-+ return 0;
-+}
-+
-+static int max1027_exit(struct spi_device *spi)
-+{
-+ return 0;
-+}
-+
-+static struct max1027_config apf9328_max1027_config = {
-+ .conv = MAX1027_CONV_DEFAULT,
-+ .setup = MAX1027_SETUP_DEFAULT,
-+ .avg = MAX1027_AVG_DEFAULT,
-+ .cnvst_pin = (int)(MAX1027_CNVST|GPIO_PORTA),
-+ .init = max1027_init,
-+ .exit = max1027_exit
-+};
-+#endif /* CONFIG_ARMADEUS_MAX1027 */
-+
-+
-+#ifdef CONFIG_ARMADEUS_MAX1027
-+static struct spi_board_info spi_board_info[] __initdata = {
-+{
-+ .modalias = "max1027",
-+ .max_speed_hz = 8000000,
-+ .bus_num = 0, /* SPI1 */
-+ .chip_select = 0,
-+ .mode = 0,
-+ .irq = IRQ_GPIOA(MAX1027_EOC_INT),
-+ .platform_data = &apf9328_max1027_config,
-+},
-+};
-+#endif
-+
-+#ifdef CONFIG_IMX_BACKLIGHT
-+static struct imxbl_machinfo imx_bl_machinfo = {
-+ .max_intensity = 0xff,
-+ .default_intensity = 0x90,
-+ .limit_mask = 0x7f, /* When battery is low */
-+/* set_bl_intensity = put a function here if you want to overload default one, */
-+};
-+
-+static struct platform_device imxbl_device = {
-+ .name = "imx-bl",
-+ .dev = {
-+ // .parent = &imxfb_device.dev, crash kernel even if EXPORT_SYMBOL() is done in generic.c
-+ .platform_data = &imx_bl_machinfo,
-+ },
-+ .id = 0,
-+};
-+#endif /* CONFIG_IMX_BACKLIGHT */
-+
-+/*
-+ * The APF9328 can have up to 32MB NOR Flash
-+ */
-+static struct resource flash_resource = {
-+ .start = MX1_CS0_PHYS,
-+ .end = MX1_CS0_PHYS + (32 * 1024 * 1024) - 1,
-+ .flags = IORESOURCE_MEM,
-+};
-+
-+static struct physmap_flash_data apf9328_flash_data = {
-+ .width = 2,
-+};
-+
-+static struct platform_device apf9328_flash_device = {
-+ .name = "physmap-flash",
-+ .id = 0,
-+ .dev = {
-+ .platform_data = &apf9328_flash_data,
-+ },
-+ .resource = &flash_resource,
-+ .num_resources = 1,
-+};
-+
-+/*
-+ * The APF9328 can have an optionnal Xilinx's Spartan3 FPGA
-+ * directly connected to its address/data busses
-+ */
-+#ifdef CONFIG_MACH_APF9328_FPGA
-+static int apf9328_fpga_irq_init(struct platform_device *pdev)
-+{
-+ int res = 0;
-+
-+ /* TODO */
-+ set_irq_type(APF9328_FPGA_IRQ, IRQF_TRIGGER_RISING);
-+
-+ return res;
-+}
-+
-+static void apf9328_fpga_irq_exit(struct platform_device *pdev)
-+{
-+ /* TODO */
-+}
-+
-+struct fpga_irq_mng_platform_data apf9328_fpga_irq = {
-+ .init = apf9328_fpga_irq_init,
-+ .exit = apf9328_fpga_irq_exit,
-+};
-+
-+struct platform_device apf9328_ocore_irq_mng_device = {
-+ .name = "ocore_irq_mng",
-+ .id = 0,
-+ .dev = { .platform_data = &apf9328_fpga_irq, },
-+};
-+#endif /* CONFIG_MACH_APF9328_FPGA */
-+
-+#ifdef CONFIG_I2C_IMX
-+static int mxc_i2c_pins[] = {
-+ PA15_PF_I2C_SDA,
-+ PA16_PF_I2C_SCL,
-+};
-+
-+static int apf9328_i2c_init(struct platform_device *pdev)
-+{
-+ return mxc_gpio_setup_multiple_pins(mxc_i2c_pins,
-+ ARRAY_SIZE(mxc_i2c_pins), "I2C");
-+}
-+
-+static int apf9328_i2c_exit(struct platform_device *pdev)
-+{
-+ mxc_gpio_release_multiple_pins(mxc_i2c_pins, ARRAY_SIZE(mxc_i2c_pins));
-+ return 0;
-+}
-+
-+static const struct imxi2c_platform_data apf9328_i2c_data __initconst = {
-+ .bitrate = 100000,
-+ .init = apf9328_i2c_init,
-+ .exit = apf9328_i2c_exit,
-+};
-+#endif /* CONFIG_I2C_IMX */
-+
-+static struct platform_device *devices[] __initdata = {
-+ &dm9000x_device,
-+#ifdef CONFIG_PWM
-+ &imx_pwm_device,
-+#endif
-+#ifdef CONFIG_IMX_BACKLIGHT
-+ &imxbl_device,
-+#endif
-+#if defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE)
-+ &apf9328_ssi_device,
-+#endif
-+ &apf9328_flash_device,
-+#ifdef CONFIG_MACH_APF9328_FPGA
-+ &apf9328_ocore_irq_mng_device,
-+#endif
-+};
-+
-+static void __init apf9328_init(void)
-+{
-+ mxc_gpio_setup_multiple_pins(apf9328_pins,
-+ ARRAY_SIZE(apf9328_pins), "apf9328");
-+
-+ imx1_add_imx_uart0(&uart0_pdata); /* console */
-+ imx1_add_imx_uart1(&uart1_pdata);
-+
-+#ifdef CONFIG_SPI_IMX
-+#if defined (CONFIG_ARMADEUS_MAX1027) || defined (CONFIG_SPIDEV)
-+ mxc_gpio_mode(GPIO_PORTC | IMX_SPI1_SS_PIN | GPIO_OUT | GPIO_GPIO);
-+ mxc_gpio_mode(GPIO_PORTA | 4 | GPIO_GPIO | GPIO_OUT);
-+#endif
-+ imx1_add_spi_imx0(&imx_spi1_master_info);
-+ imx1_add_spi_imx1(&imx_spi2_master_info);
-+#if defined (CONFIG_ARMADEUS_MAX1027)
-+ spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
-+#endif
-+#endif
-+#ifdef CONFIG_I2C_IMX
-+ imx1_add_i2c_imx(&apf9328_i2c_data);
-+#endif
-+#ifdef CONFIG_USB_GADGET_IMX
-+ mxc_register_device(&imx_usb_device, &apf9328_udc_0_data);
-+#endif
-+ platform_add_devices(devices, ARRAY_SIZE(devices));
-+ apf9328_baseboard_init();
-+}
-+
-+/*
-+ * Register here the memory addresses we want to access from our drivers and
-+ * which are not already registered in generic.c
-+ */
-+
-+static struct map_desc apf9328_io_desc[] __initdata = {
-+#ifdef CONFIG_MACH_APF9328_FPGA
-+ /* FPGA Memory mapping */
-+ {
-+ .virtual = MX1_CS1_VIRT,
-+ .pfn = __phys_to_pfn(MX1_CS1_PHYS),
-+ .length = MX1_CS1_SIZE,
-+ .type = MT_DEVICE
-+ },
-+#endif
-+};
-+
-+void __init apf9328_map_io(void)
-+{
-+ mx1_map_io();
-+ iotable_init(apf9328_io_desc, ARRAY_SIZE(apf9328_io_desc));
-+
-+}
-+
-+static void __init apf9328_init_irq(void)
-+{
-+ /* Init generic IRQs */
-+ mx1_init_irq();
-+
-+ /* Init our custom IRQs (DM9000) */
-+
-+ mxc_gpio_mode(GPIO_PORTB | 14 | GPIO_IN | GPIO_GPIO);
-+ set_irq_type(APF9328_ETH_IRQ, IRQF_TRIGGER_FALLING);
-+}
-+static void __init apf9328_timer_init(void)
-+{
-+ mx1_clocks_init(32768);
-+}
-+static struct sys_timer apf9328_timer = {
-+ .init = apf9328_timer_init,
-+};
-+
-+MACHINE_START(APF9328, "Armadeus APF9328")
-+ /* Maintainer: Julien Boibessot, Armadeus */
-+ .boot_params = MX1_PHYS_OFFSET + 0x100,
-+ .map_io = apf9328_map_io,
-+ .init_irq = apf9328_init_irq,
-+ .timer = &apf9328_timer,
-+ .init_machine = apf9328_init,
-+MACHINE_END
-Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
-===================================================================
---- /dev/null
-+++ linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
-@@ -0,0 +1,348 @@
++++ linux-3.7-rc6/arch/arm/mach-imx/apf9328_lcd_config.h
+@@ -0,0 +1,349 @@
+/*
+ *
+ * Armadeus LCD configuration file
@@ -611,8 +22,9 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
+
+#include <linux/delay.h>
+
-+#include <mach/gpio.h>
-+#include <mach/imxfb.h>
++#include <mach/iomux-v1.h>
++#include <linux/platform_data/video-imxfb.h>
++#include <mach/hardware.h>
+#ifdef CONFIG_ARCH_MX1
+# include <mach/mx1.h>
+# define LCDC_BASE_ADDR MX1_LCDC_BASE_ADDR
@@ -627,15 +39,15 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
+
+#ifdef CONFIG_MACH_APF9328
+# define OPTREX_F51900_POWER_DOWN (GPIO_PORTD | 7) /* PD7_REV */
-+# define SHARP_LQ043_POWER_DOWN (GPIO_PORTD | 12) /* PD12_ACD_OE */
++# define SHARP_LQ043_POWER_DOWN (GPIO_PORTD | 12) /* PD12_ACD_OE */
+# define CONTRAST_LINE (GPIO_PORTD | 11) /* PD11_CONTRAST */
+#elif defined(CONFIG_MACH_APF27)
+# define OPTREX_F51900_POWER_DOWN (GPIO_PORTA | 24) /* PA24_REV */
-+# define SHARP_LQ043_POWER_DOWN (GPIO_PORTA | 31) /* PA31_OE_ACD */
++# define SHARP_LQ043_POWER_DOWN (GPIO_PORTA | 31) /* PA31_OE_ACD */
+# define CONTRAST_LINE (GPIO_PORTA | 30) /* PA30_CONTRAST */
+#endif
+
-+#define DEFAULT_DMA_SETTINGS (DMACR_BURST | DMACR_HM(8) | DMACR_TM(4))
++#define DEFAULT_DMA_SETTINGS (DMACR_BURST | DMACR_HM(8) | DMACR_TM(4))
+
+#ifdef CONFIG_MACH_APF9328
+static int apf9328_fb_init(struct platform_device *pdev);
@@ -654,7 +66,7 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
+{
+ u32 isr;
+
-+ printk(KERN_DEBUG "%s: %s, %s\n", __func__, on ? "on":"off", lcd_name);
++ printk(KERN_DEBUG "%s: %s, %s\n", __func__, on ? "on" : "off", lcd_name);
+ isr = 0;
+
+ if (!strcmp("Optrex-FS1900", lcd_name)) {
@@ -670,7 +82,7 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
+ enabling the display */
+ /* Waits end of current frame */
+ isr = readl(MXC_IO_ADDRESS(LCDC_BASE_ADDR) + 0x40);
-+ printk("isr %08x\n", isr);
++ printk(KERN_DEBUG "isr %08x\n", isr);
+ do {
+ isr = readl(MXC_IO_ADDRESS(LCDC_BASE_ADDR) + 0x40);
+ pr_debug("isr %08x\n", isr);
@@ -904,123 +316,390 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328_lcd_config.h
+ mxc_gpio_mode(PD10_PF_SPL_SPR);
+ }
+
-+ /* GPIO Function for CONTRAST pin */
-+ gpio_set_value(CONTRAST_LINE, 0); /* Initializes it Low */
-+ mxc_gpio_mode(CONTRAST_LINE | GPIO_OUT /*| GPIO_GPIO*/ | 1<<16 | 3<<10);
-+
-+ return 0;
-+}
-+
-+static void apf9328_init_lcd(void)
-+{
-+ char *opt, *name = NULL, *options = NULL;
++ /* GPIO Function for CONTRAST pin */
++ gpio_set_value(CONTRAST_LINE, 0); /* Initializes it Low */
++ mxc_gpio_mode(CONTRAST_LINE | GPIO_OUT /*| GPIO_GPIO*/ | 1<<16 | 3<<10);
++
++ return 0;
++}
++
++static void apf9328_init_lcd(void)
++{
++ char *opt, *name = NULL, *options = NULL;
++
++ if (fb_get_options("imxfb", &options))
++ goto end;
++
++ if (!options || !*options)
++ goto end;
++
++ while ((opt = strsep(&options, ",")) != NULL) {
++ if (!*opt)
++ continue;
++ else
++ name = opt;
++ }
++
++ apf_set_lcd_name(name);
++ apf_fb_set_default_contrast();
++
++ imx1_add_imx_fb(&apf_fb_data);
++end:
++ return;
++}
++#endif /* CONFIG_MACH_APF9328 */
++
++#endif /* CONFIG_FB_IMX */
++
++#endif /* APF_LCD_CONFIG_H */
+Index: linux-3.7-rc6/arch/arm/mach-imx/mach-apf9328.c
+===================================================================
+--- linux-3.7-rc6.orig/arch/arm/mach-imx/mach-apf9328.c
++++ linux-3.7-rc6/arch/arm/mach-imx/mach-apf9328.c
+@@ -20,7 +20,16 @@
+ #include <linux/dm9000.h>
+ #include <linux/gpio.h>
+ #include <linux/i2c.h>
++#include <linux/irq.h>
++#include <linux/serial_8250.h>
++#include <linux/serial.h>
++#include <linux/spi/spi.h>
++
++#include <asm/system.h>
++#include <asm/pgtable.h>
++#include <asm/page.h>
+
++#include <asm/mach/map.h>
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+ #include <asm/mach/time.h>
+@@ -30,6 +39,43 @@
+ #include <mach/iomux-mx1.h>
+
+ #include "devices-imx1.h"
++#include <linux/gpio.h>
++#include <linux/platform_data/serial-imx.h>
++/*#include <mach/mmc.h>
++#include <mach/usb.h>*/
++#include <linux/platform_data/spi-imx.h>
++#include <mach/mx1.h> /* mxc_gpio_mode() */
++//#include <mach/ssi.h>
++//#include <mach/dma-mx1-mx2.h>
++#include "../../../drivers/armadeus/pwm/pwm.h"
++#include <mach/iomux-v1.h>
++#include <mach/board-apf9328.h>
++#include <linux/platform_data/video-imxfb.h>
++
++#define IMX_FB_VIRT 0xF1000000
++#define IMX_FB_SIZE (256*1024)
++#ifdef CONFIG_ARMADEUS_MAX1027_MODULE
++#define CONFIG_ARMADEUS_MAX1027 1
++#endif
++#ifdef CONFIG_SPI_IMX_MODULE
++#define CONFIG_SPI_IMX 1
++#endif
++#ifdef CONFIG_SND_IMX_PCM_MODULE
++#define CONFIG_SND_IMX_PCM 1
++#endif
++#ifdef CONFIG_IMX_BACKLIGHT_MODULE
++#define CONFIG_IMX_BACKLIGHT 1
++#endif
++#ifdef CONFIG_ARMADEUS_PWM_DRIVER_MODULE
++#define CONFIG_PWM
++#endif
++#ifdef CONFIG_ARMADEUS_PWM_DRIVER
++#define CONFIG_PWM
++#endif
++
++#ifdef CONFIG_ARMADEUS_MAX1027
++#include <linux/spi/max1027.h>
++#endif
+
+ static const int apf9328_pins[] __initconst = {
+ /* UART1 */
+@@ -42,10 +88,225 @@ static const int apf9328_pins[] __initco
+ PB29_PF_UART2_RTS,
+ PB30_PF_UART2_TXD,
+ PB31_PF_UART2_RXD,
++#ifdef CONFIG_I2C_IMX
+ /* I2C */
+ PA15_PF_I2C_SDA,
+ PA16_PF_I2C_SCL,
++#endif
++#ifdef CONFIG_MXC_PWM
++ PA2_PF_PWM0,
++#endif
++ /* SPI0 */
++ PC14_PF_SPI1_SCLK,
++ PC16_PF_SPI1_MISO,
++ PC17_PF_SPI1_MOSI,
++/*#ifdef CONFIG_USB_GADGET_IMX
++ PC3_PF_SSI_RXFS,
++ PB20_PF_USBD_AFE,
++ PB21_PF_USBD_OE,
++ PB22_PF_USBD_RCV,
++ PB23_PF_USBD_SUSPND,
++ PB24_PF_USBD_VP,
++ PB25_PF_USBD_VM,
++ PB26_PF_USBD_VPO,
++ PB27_PF_USBD_VMO,
++#endif*/
++};
++
++#ifdef CONFIG_USB_IMX
++static int apf9328_udc_0_init(struct device *dev)
++{
++ mxc_gpio_mode(PC3_PF_SSI_RXFS);
++ mxc_gpio_mode(PB20_PF_USBD_AFE);
++ mxc_gpio_mode(PB21_PF_USBD_OE);
++ mxc_gpio_mode(PB22_PF_USBD_RCV);
++ mxc_gpio_mode(PB23_PF_USBD_SUSPND);
++ mxc_gpio_mode(PB24_PF_USBD_VP);
++ mxc_gpio_mode(PB25_PF_USBD_VM);
++ mxc_gpio_mode(PB26_PF_USBD_VPO);
++ mxc_gpio_mode(PB27_PF_USBD_VMO);
++
++ return 0;
++}
++
++static void apf9328_udc_0_exit(struct device *dev)
++{
++}
++
++static struct imxusb_platform_data apf9328_udc_0_data = {
++ .init = apf9328_udc_0_init,
++ .exit = apf9328_udc_0_exit,
++};
++#endif /* CONFIG_USB_GADGET_IMX */
++
++/* TBD GGM */
++#if 0
++#if defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE)
++int apf9328_ssi_gpio_init(struct platform_device *pdev)
++{
++ /* Activate SSI on PortC */
++ mxc_gpio_mode(PC3_PF_SSI_RXFS);
++ FMCR &= ~(SSI_RXFS_SEL);
++ mxc_gpio_mode(PC4_PF_SSI_RXCLK);
++ FMCR &= ~(SSI_RXCLK_SEL);
++ mxc_gpio_mode(PC5_PF_SSI_RXDAT);
++ FMCR &= ~(SSI_RXDAT_SEL);
++ mxc_gpio_mode(PC6_PF_SSI_TXDAT);
++ mxc_gpio_mode(PC7_PF_SSI_TXFS);
++ FMCR &= ~(SSI_TXFS_SEL);
++ mxc_gpio_mode(PC8_PF_SSI_TXCLK);
++ FMCR &= ~(SSI_TXCLK_SEL);
++
++ printk(KERN_DEBUG "SSI pins configured\n");
++ return 0;
++}
++
++static struct imx_ssi_platform_data apf9328_ssi_pdata = {
++ .init = apf9328_ssi_gpio_init,
++};
++
++static struct resource ssi_resources[] = {
++ [0] = {
++ .start = (0x00218000),
++ .end = (0x00218000 + 0x28),
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = SSI_TX_INT,
++ .end = SSI_TX_INT,
++ .flags = IORESOURCE_IRQ
++ },
++ [2] = {
++ .start = SSI_TX_ERR_INT,
++ .end = SSI_TX_ERR_INT,
++ .flags = IORESOURCE_IRQ
++ },
++ [3] = {
++ .start = SSI_RX_INT,
++ .end = SSI_RX_INT,
++ .flags = IORESOURCE_IRQ
++ },
++ [4] = {
++ .start = SSI_RX_ERR_INT,
++ .end = SSI_RX_ERR_INT,
++ .flags = IORESOURCE_IRQ
++ },
++ [5] = {
++ .name = "tx0",
++ .start = DMA_REQ_SSI_T,
++ .end = DMA_REQ_SSI_T,
++ .flags = IORESOURCE_DMA
++ },
++ [6] = {
++ .name = "rx0",
++ .start = DMA_REQ_SSI_R,
++ .end = DMA_REQ_SSI_R,
++ .flags = IORESOURCE_DMA
++ },
++};
++
++static struct platform_device apf9328_ssi_device = {
++ .name = "imx-ssi",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(ssi_resources),
++ .resource = ssi_resources,
++ .dev = {
++ .platform_data = &apf9328_ssi_pdata,
++ }
++};
++
++#endif /* defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE) */
++#endif
+
-+ if (fb_get_options("imxfb", &options))
-+ goto end;
++#ifdef CONFIG_SPI_IMX
++#define SPIDEV_CS (GPIO_PORTB + 18)
++#define MAX1027_CS (GPIO_PORTC + 15)
+
-+ if (!options || !*options)
-+ goto end;
++static int apf9328_spi1_cs[] = {
++ MAX1027_CS,
++ SPIDEV_CS,
++};
+
-+ while ((opt = strsep(&options, ",")) != NULL) {
-+ if (!*opt)
-+ continue;
-+ else
-+ name = opt;
-+ }
++static const struct spi_imx_master imx_spi1_master_info = {
++ .chipselect = apf9328_spi1_cs,
++ .num_chipselect = ARRAY_SIZE(apf9328_spi1_cs),
++};
+
-+ apf_set_lcd_name(name);
-+ apf_fb_set_default_contrast();
++#define MCP251X_CS (GPIO_PORTB + 19)
++#define TSC2102_CS (GPIO_PORTB + 17)
+
-+ imx1_add_imx_fb(&apf_fb_data);
-+end:
-+ return;
-+}
-+#endif /* CONFIG_MACH_APF9328 */
++static int apf9328_spi2_cs[] = {
++ TSC2102_CS,
++ MCP251X_CS,
++};
+
-+#endif /* CONFIG_FB_IMX */
++static const struct spi_imx_master imx_spi2_master_info = {
++ .chipselect = apf9328_spi2_cs,
++ .num_chipselect = ARRAY_SIZE(apf9328_spi2_cs),
++};
++#endif /* CONFIG_SPI_IMX */
+
-+#endif /* APF_LCD_CONFIG_H */
-Index: linux-2.6.38-rc3/arch/arm/plat-mxc/include/mach/board-apf9328.h
-===================================================================
---- /dev/null
-+++ linux-2.6.38-rc3/arch/arm/plat-mxc/include/mach/board-apf9328.h
-@@ -0,0 +1,71 @@
+/*
-+ * linux/include/asm-arm/arch-imx/apf9328.h
-+ *
-+ * Copyright (c) 2005 Armadeus
-+ * This work is based on scb9328.h from Sascha Hauer
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
++ * APF9328 can have an optionnal MAX1027 ADC
+ */
++#ifdef CONFIG_ARMADEUS_MAX1027
++#define IMX_SPI1_SS_PIN 15
++#define MAX1027_EOC_INT (GPIO_PORTA | 13)
++#define MAX1027_CNVST (GPIO_PORTA | 14)
+
-+#ifndef __ASM_ARCH_APF9328_H
-+#define __ASM_ARCH_APF9328_H
++static int max1027_init(struct spi_device *spi)
++{
++ mxc_gpio_mode(MAX1027_EOC_INT | GPIO_IN | GPIO_GPIO);
++ mxc_gpio_mode(MAX1027_CNVST | GPIO_OUT | GPIO_GPIO);
++ return 0;
++}
+
-+/* ------------------------------------------------------------------------ */
-+/* Memory Map for the APF9328 Board */
-+/* ------------------------------------------------------------------------ */
++static int max1027_exit(struct spi_device *spi)
++{
++ return 0;
++}
+
-+/* Ethernet */
-+#define IMX_CS4_VIRT 0xed000000
-+#define IMX_CS0_VIRT 0xe8000000
-+#define IMX_CS1_VIRT 0xea000000
-+#define APF9328_ETH_VIRT ( IMX_CS4_VIRT + 0x00C00000 )
-+#define APF9328_ETH_PHYS ( MX1_CS4_PHYS + 0x00C00000 )
-+#define APF9328_ETH_IRQ ( IRQ_GPIOB(14) )
++static struct max1027_config apf9328_max1027_config = {
++ .conv = MAX1027_CONV_DEFAULT,
++ .setup = MAX1027_SETUP_DEFAULT,
++ .avg = MAX1027_AVG_DEFAULT,
++ .cnvst_pin = (int)(MAX1027_CNVST|GPIO_PORTA),
++ .init = max1027_init,
++ .exit = max1027_exit
++};
++#endif /* CONFIG_ARMADEUS_MAX1027 */
+
-+/* FLASH */
-+#define APF9328_FLASH_PHYS MX1_CS0_PHYS
-+#ifdef CONFIG_IMX_APF9328_FLASH_8MB
-+# define APF9328_FLASH_SIZE 0x00800000
-+#endif
-+#ifdef CONFIG_IMX_APF9328_FLASH_16MB
-+# define APF9328_FLASH_SIZE 0x01000000
++#ifdef CONFIG_ARMADEUS_MAX1027
++static struct spi_board_info spi_board_info[] __initdata = {
++{
++ .modalias = "max1027",
++ .max_speed_hz = 8000000,
++ .bus_num = 0, /* SPI1 */
++ .chip_select = 0,
++ .mode = 0,
++ .irq = IRQ_GPIOA(MAX1027_EOC_INT),
++ .platform_data = &apf9328_max1027_config,
++},
++};
+#endif
-+#define APF9328_FLASH_BASE IMX_CS0_VIRT
-+
-+/* FPGA */
-+#define ARMADEUS_FPGA_BASE_ADDR_VIRT ( APF9328_FPGA_VIRT )
-+#define ARMADEUS_FPGA_BASE_ADDR_PHYS ( APF9328_FPGA_PHYS )
-+#define ARMADEUS_FPGA_IRQ ( APF9328_FPGA_IRQ )
-+
-+#define APF9328_FPGA_VIRT ( IMX_CS1_VIRT )
-+#define APF9328_FPGA_PHYS ( MX1_CS1_PHYS )
-+#define APF9328_FPGA_IRQ ( IRQ_GPIOA(1) )
-+
-+#define CLK32 32768
+
-+#ifndef __ASSEMBLY__
-+/*
-+ * The APF9328 module needs a baseboard to work. After basic initializing
-+ * its own devices, it calls baseboard's init function.
-+ * TODO: Add your own baseboard init function and call it from
-+ * inside apf9328_init().
-+ *
-+ * This example here is for the DevLight/Full development boards. Refer apf9328-dev.c.
-+ */
++#ifdef CONFIG_IMX_BACKLIGHT
++static struct imxbl_machinfo imx_bl_machinfo = {
++ .max_intensity = 0xff,
++ .default_intensity = 0x90,
++ .limit_mask = 0x7f, /* When battery is low */
++/* set_bl_intensity = put a function here if you want to overload default one, */
++};
+
-+extern void apf9328_baseboard_init(void);
++static struct platform_device imxbl_device = {
++ .name = "imx-bl",
++ .dev = {
++ // .parent = &imxfb_device.dev, crash kernel even if EXPORT_SYMBOL() is done in generic.c
++ .platform_data = &imx_bl_machinfo,
++ },
++ .id = 0,
+ };
++#endif /* CONFIG_IMX_BACKLIGHT */
+
+ /*
+ * The APF9328 can have up to 32MB NOR Flash
+@@ -106,11 +367,19 @@ static const struct imxuart_platform_dat
+ .flags = IMXUART_HAVE_RTSCTS,
+ };
+
++#ifdef CONFIG_I2C_IMX
+ static const struct imxi2c_platform_data apf9328_i2c_data __initconst = {
+ .bitrate = 100000,
+ };
++#endif /* CONFIG_I2C_IMX */
+
+ static struct platform_device *devices[] __initdata = {
++#ifdef CONFIG_IMX_BACKLIGHT
++ &imxbl_device,
+#endif
-+
-+#endif /* __ASM_ARCH_APF9328_H */
-Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
++#if defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE)
++ &apf9328_ssi_device,
++#endif
+ &apf9328_flash_device,
+ &dm9000x_device,
+ };
+@@ -126,11 +395,31 @@ static void __init apf9328_init(void)
+ imx1_add_imx_uart0(NULL);
+ imx1_add_imx_uart1(&uart1_pdata);
+
++#ifdef CONFIG_SPI_IMX
++#if defined(CONFIG_ARMADEUS_MAX1027) || defined(CONFIG_SPIDEV)
++ mxc_gpio_mode(GPIO_PORTC | IMX_SPI1_SS_PIN | GPIO_OUT | GPIO_GPIO);
++ mxc_gpio_mode(GPIO_PORTB | 18 | GPIO_GPIO | GPIO_OUT);
++#endif
++ imx1_add_spi_imx0(&imx_spi1_master_info);
++ imx1_add_spi_imx1(&imx_spi2_master_info);
++#if defined(CONFIG_ARMADEUS_MAX1027)
++ spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
++#endif
++#endif
++#ifdef CONFIG_I2C_IMX
+ imx1_add_imx_i2c(&apf9328_i2c_data);
++#endif
++#ifdef CONFIG_USB_IMX
++ imx1_add_udc(&apf9328_udc_0_data);
++#endif
++/*#ifdef CONFIG_MXC_PWM
++ imx1_add_mxc_pwm();
++#endif*/
+
+ dm9000_resources[2].start = gpio_to_irq(IMX_GPIO_NR(2, 14));
+ dm9000_resources[2].end = gpio_to_irq(IMX_GPIO_NR(2, 14));
+ platform_add_devices(devices, ARRAY_SIZE(devices));
++ apf9328_baseboard_init();
+ }
+
+ static void __init apf9328_timer_init(void)
+Index: linux-3.7-rc6/arch/arm/mach-imx/apf9328-dev.c
===================================================================
--- /dev/null
-+++ linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
-@@ -0,0 +1,325 @@
++++ linux-3.7-rc6/arch/arm/mach-imx/apf9328-dev.c
+@@ -0,0 +1,309 @@
+/*
+ * apf9328-dev.c
+ * Declares hardware present on APF9328_DevLight or DevFull boards
@@ -1050,8 +729,8 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+#include <linux/spi/spi.h>
+#include <linux/spi/spidev.h>
+#include <mach/common.h>
-+#include <mach/gpio.h>
-+#include <linux/spi/tsc2102.h>
++#include <linux/gpio.h>
++/*#include <linux/spi/tsc2102.h>*/
+#include <linux/can/platform/mcp251x.h>
+
+#include <asm/system.h>
@@ -1063,21 +742,20 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+#include <asm/mach/map.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
-+#include <mach/imx-uart.h>
-+#include <mach/mmc.h>
-+#include <mach/usb.h>
-+#include <mach/spi.h>
++#include <linux/platform_data/serial-imx.h>
++//#include <mach/mmc.h>
++//#include <mach/usb.h>
++#include <linux/platform_data/spi-imx.h>
+#include <mach/mx1.h> /* mxc_gpio_mode() */
-+#include <mach/gpio.h>
-+//#include <mach/imx-alsa.h>
-+//#include <linux/usb/isp116x.h>
-+#include <linux/usb/isp1760.h>
-+#include <mach/ssi.h>
++/*#include <mach/imx-alsa.h>
++#include <linux/usb/isp116x.h>
++#include <linux/usb/isp1760.h>*/
++//#include <mach/ssi.h>
+#include <mach/iomux-mx1.h>
+#include <mach/iomux-v1.h>
+#include "devices-imx1.h"
-+#include <mach/imxfb.h>
-+//#include "generic.h"
++#include <linux/platform_data/video-imxfb.h>
++/*#include "generic.h"*/
+
+
+#ifdef CONFIG_SPI_TSC2102_MODULE
@@ -1135,8 +813,8 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_SPI_TSC2102
+#define TSC2102_CS_GPIOB 17
+#define TSC2102_INT_GPIOD 8
-+#define SPI2_RXD_SEL (1<<8)
-+#define FMCR MX1_IO_ADDRESS(MX1_SCM_BASE_ADDR)+4
++#define SPI2_RXD_SEL (1 << 8)
++#define FMCR (MX1_IO_ADDRESS(MX1_SCM_BASE_ADDR)+4)
+static int tsc2102_init_gpio(void)
+{
+ /* Activate SPI2 port ---- */
@@ -1144,13 +822,14 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+ mxc_gpio_mode(PD7_AIN_SPI2_SCLK);
+ mxc_gpio_mode(PD10_AIN_SPI2_TXD);
+ mxc_gpio_mode(PD9_AOUT_SPI2_RXD);
-+ __raw_writel(__raw_readl(FMCR)|SPI2_RXD_SEL,FMCR);
++ __raw_writel(__raw_readl(FMCR)|SPI2_RXD_SEL, FMCR);
+
+ /* PortD 8 is used as PINTDAV interrupt */
+ mxc_gpio_mode(GPIO_PORTD | TSC2102_INT_GPIOD | GPIO_IN | GPIO_GPIO);
-+ set_irq_type(IRQ_GPIOD(TSC2102_INT_GPIOD), IRQF_TRIGGER_FALLING);
++ /*set_irq_type(IRQ_GPIOD(TSC2102_INT_GPIOD), IRQF_TRIGGER_FALLING);*/
++ irq_set_irq_type(IRQ_GPIOD(TSC2102_INT_GPIOD), IRQ_TYPE_EDGE_FALLING);
+
-+ printk("TSC2102 GPIOs initialized\n");
++ printk(KERN_DEBUG "TSC2102 GPIOs initialized\n");
+ return 0;
+}
+
@@ -1191,9 +870,9 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+{
+ /* PortB 19 is used as chip select */
+ if (command == SPI_CS_DEASSERT)
-+ DR(1) |= 1<< CAN_MPC251X_CS_GPIOB;
++ DR(1) |= 1 << CAN_MPC251X_CS_GPIOB;
+ else
-+ DR(1) &= ~(1<< CAN_MPC251X_CS_GPIOB);
++ DR(1) &= ~(1 << CAN_MPC251X_CS_GPIOB);
+}
+
+static struct spi_imx_chip mcp251X_hw = {
@@ -1222,38 +901,22 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+ .oscillator_frequency = 16000000,
+ .model = CAN_MCP251X_MCP2515,
+ .board_specific_setup = NULL,
-+ //.device_reset = NULL,
++ /*.device_reset = NULL,*/
+ .transceiver_enable = NULL,
+};
+
+#endif /* CONFIG_CAN_MCP251X */
+
-+/*
-+ * APF9328 CONFIG SPIDEV
-+ */
-+#ifdef CONFIG_SPI_SPIDEV
-+static int spidev_init_gpio(void)
-+{
-+ return 0;
-+}
-+
-+static struct spidev_platform_data apf9328_spidev_config = {
-+ .init = spidev_init_gpio,
-+};
-+
-+#endif /* CONFIG_SPI_SPIDEV */
-+
-+
+static struct spi_board_info spi_dev_board_info[] __initdata = {
+#ifdef CONFIG_SPI_TSC2102
+{
+ .modalias = "tsc210x",
-+// .controller_data= &tsc2102_hw,
++/* .controller_data= &tsc2102_hw,*/
+ .max_speed_hz = 8000000,
+ .bus_num = 1, /* SPI2 */
+ .irq = IRQ_GPIOD(TSC2102_INT_GPIOD),
+ .chip_select = 0,
-+ .mode = 0,
++ .mode = 0,
+ .platform_data = &apf9328_tsc2102_config,
+},
+#endif
@@ -1261,11 +924,11 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+{
+ .modalias = "mcp251x",
+ .max_speed_hz = 8000000, /* 8MHz */
-+ //.controller_data= &mcp251X_hw,
++ /*.controller_data= &mcp251X_hw,*/
+ .bus_num = 1,
+ .mode = SPI_MODE_0,
+ .chip_select = 1,
-+ .irq = IRQ_GPIOC( CAN_MPC251X_INT_GPIOC ),
++ .irq = IRQ_GPIOC(CAN_MPC251X_INT_GPIOC),
+ .platform_data = &apf9328_mcp251x_config,
+},
+#endif
@@ -1276,7 +939,6 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+ .bus_num = 0, /* SPI1 */
+ .mode = SPI_MODE_0,
+ .chip_select = 1,
-+ .platform_data = &apf9328_spidev_config,
+},
+#endif /* CONFIG_SPI_SPIDEV */
+};
@@ -1315,7 +977,7 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+
+void __init apf9328_baseboard_init(void)
+{
-+ printk(" APF9328_Dev\n");
++ printk(KERN_INFO " APF9328_Dev\n");
+
+ /* Initializes serial port 2 GPIOs */
+ mxc_gpio_mode(PB30_PF_UART2_TXD);
@@ -1330,19 +992,96 @@ Index: linux-2.6.38-rc3/arch/arm/mach-imx/apf9328-dev.c
+ mcp251X_init_gpio();
+#endif
+#ifdef CONFIG_I2C
-+ i2c_register_board_info(0,apf9328_i2c_devices_bus0,
++ i2c_register_board_info(0, apf9328_i2c_devices_bus0,
+ ARRAY_SIZE(apf9328_i2c_devices_bus0));
+#endif
+#ifdef CONFIG_ARMADEUS_ISP1761
+ mxc_gpio_mode(ISP1761_GPIO_IRQ | GPIO_IN | GPIO_GPIO);
-+ set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
++ /*set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);*/
++ irq_set_irq_type(ISP1761_IRQ, IRQ_TYPE_EDGE_FALLING);
+#endif
+ platform_add_devices(devices, ARRAY_SIZE(devices));
+
-+#if defined (CONFIG_SPI_TSC2102) || defined (CONFIG_CAN_MCP251X) || defined(CONFIG_SPI_SPIDEV)
++#if defined(CONFIG_SPI_TSC2102) || defined(CONFIG_CAN_MCP251X) || defined(CONFIG_SPI_SPIDEV)
+ mxc_gpio_mode(GPIO_PORTB | 19 | GPIO_GPIO | GPIO_OUT);
+ mxc_gpio_mode(GPIO_PORTB | 17 | GPIO_GPIO | GPIO_OUT);
+ spi_register_board_info(spi_dev_board_info, ARRAY_SIZE(spi_dev_board_info));
+#endif
+}
+
+Index: linux-3.7-rc6/arch/arm/plat-mxc/include/mach/board-apf9328.h
+===================================================================
+--- /dev/null
++++ linux-3.7-rc6/arch/arm/plat-mxc/include/mach/board-apf9328.h
+@@ -0,0 +1,71 @@
++/*
++ * linux/include/asm-arm/arch-imx/apf9328.h
++ *
++ * Copyright (c) 2005 Armadeus
++ * This work is based on scb9328.h from Sascha Hauer
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#ifndef __ASM_ARCH_APF9328_H
++#define __ASM_ARCH_APF9328_H
++
++/* ------------------------------------------------------------------------ */
++/* Memory Map for the APF9328 Board */
++/* ------------------------------------------------------------------------ */
++
++/* Ethernet */
++#define IMX_CS4_VIRT 0xed000000
++#define IMX_CS0_VIRT 0xe8000000
++#define IMX_CS1_VIRT 0xea000000
++#define APF9328_ETH_VIRT (IMX_CS4_VIRT + 0x00C00000)
++#define APF9328_ETH_PHYS (MX1_CS4_PHYS + 0x00C00000)
++#define APF9328_ETH_IRQ (IRQ_GPIOB(14))
++
++/* FLASH */
++#define APF9328_FLASH_PHYS MX1_CS0_PHYS
++#ifdef CONFIG_IMX_APF9328_FLASH_8MB
++# define APF9328_FLASH_SIZE 0x00800000
++#endif
++#ifdef CONFIG_IMX_APF9328_FLASH_16MB
++# define APF9328_FLASH_SIZE 0x01000000
++#endif
++#define APF9328_FLASH_BASE IMX_CS0_VIRT
++
++/* FPGA */
++#define ARMADEUS_FPGA_BASE_ADDR_VIRT (APF9328_FPGA_VIRT)
++#define ARMADEUS_FPGA_BASE_ADDR_PHYS (APF9328_FPGA_PHYS)
++#define ARMADEUS_FPGA_IRQ (APF9328_FPGA_IRQ)
++
++#define APF9328_FPGA_VIRT (IMX_CS1_VIRT)
++#define APF9328_FPGA_PHYS (MX1_CS1_PHYS)
++#define APF9328_FPGA_IRQ (IRQ_GPIOA(1))
++
++#define CLK32 32768
++
++#ifndef __ASSEMBLY__
++/*
++ * The APF9328 module needs a baseboard to work. After basic initializing
++ * its own devices, it calls baseboard's init function.
++ * TODO: Add your own baseboard init function and call it from
++ * inside apf9328_init().
++ *
++ * This example here is for the DevLight/Full development boards. Refer apf9328-dev.c.
++ */
++
++extern void apf9328_baseboard_init(void);
++#endif
++
++#endif /* __ASM_ARCH_APF9328_H */
diff --git a/patches/linux/3.7/0024-armadeus-apf9328-add_board_to_linux_build_system.patch b/patches/linux/3.7/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
new file mode 100644
index 0000000..15f3b75
--- /dev/null
+++ b/patches/linux/3.7/0024-armadeus-apf9328-add_board_to_linux_build_system.patch
@@ -0,0 +1,60 @@
+Index: linux-3.7-rc6/arch/arm/mach-imx/Kconfig
+===================================================================
+--- linux-3.7-rc6.orig/arch/arm/mach-imx/Kconfig
++++ linux-3.7-rc6/arch/arm/mach-imx/Kconfig
+@@ -129,10 +129,43 @@ config MACH_APF9328
+ bool "APF9328"
+ select IMX_HAVE_PLATFORM_IMX_I2C
+ select IMX_HAVE_PLATFORM_IMX_UART
++ select IMX_HAVE_PLATFORM_SPI_IMX
++ select IMX_HAVE_PLATFORM_IMX_FB
++ select IMX_HAVE_PLATFORM_MXC_PWM
++ select IMX_HAVE_PLATFORM_IMX_UDC
++ select SERIAL_IMX_UART1
+ select SOC_IMX1
+ help
+ Say Yes here if you are using the Armadeus APF9328 development board
+
++choice
++ prompt "Flash available on board"
++ depends on MACH_APF9328
++ default IMX_APF9328_FLASH_16MB
++
++config IMX_APF9328_FLASH_8MB
++ bool "8MB"
++
++config IMX_APF9328_FLASH_16MB
++ bool "16MB"
++
++endchoice
++
++choice
++ prompt "Baseboard"
++ depends on MACH_APF9328
++ default MACH_APF9328_DEV
++
++config MACH_APF9328_DEV
++ prompt "DevLight/DevFull"
++ bool
++ help
++ This selects the APF9328_DevLight/DevFull as baseboard. You have
++ to manually activates the devices you want to use if you have a
++ DevFull.
++
++endchoice
++
+ comment "MX21 platforms:"
+
+ config MACH_MX21ADS
+Index: linux-3.7-rc6/arch/arm/mach-imx/Makefile
+===================================================================
+--- linux-3.7-rc6.orig/arch/arm/mach-imx/Makefile
++++ linux-3.7-rc6/arch/arm/mach-imx/Makefile
+@@ -22,6 +22,7 @@ obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fi
+ obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o
+ obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
+ obj-$(CONFIG_MACH_APF9328) += mach-apf9328.o
++obj-$(CONFIG_MACH_APF9328_DEV) += apf9328-dev.o
+
+ # i.MX21 based machines
+ obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o
diff --git a/patches/linux/3.7/0025-armadeus-imx-correct_dma_shift.patch b/patches/linux/3.7/0025-armadeus-imx-correct_dma_shift.patch
new file mode 100644
index 0000000..1c9a4e0
--- /dev/null
+++ b/patches/linux/3.7/0025-armadeus-imx-correct_dma_shift.patch
@@ -0,0 +1,18 @@
+DMA clock is enabled by setting GCCR bit 3 instead of 4
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+
+Index: linux-3.7-rc6/arch/arm/mach-imx/clk-imx1.c
+===================================================================
+--- linux-3.7-rc6.orig/arch/arm/mach-imx/clk-imx1.c
++++ linux-3.7-rc6/arch/arm/mach-imx/clk-imx1.c
+@@ -72,7 +72,7 @@ int __init mx1_clocks_init(unsigned long
+ clk[per3] = imx_clk_divider("per3", "spll", CCM_PCDR, 16, 7);
+ clk[clko] = imx_clk_mux("clko", CCM_CSCR, 29, 3, clko_sel_clks,
+ ARRAY_SIZE(clko_sel_clks));
+- clk[dma_gate] = imx_clk_gate("dma_gate", "hclk", SCM_GCCR, 4);
++ clk[dma_gate] = imx_clk_gate("dma_gate", "hclk", SCM_GCCR, 3);
+ clk[csi_gate] = imx_clk_gate("csi_gate", "hclk", SCM_GCCR, 2);
+ clk[mma_gate] = imx_clk_gate("mma_gate", "hclk", SCM_GCCR, 1);
+ clk[usbd_gate] = imx_clk_gate("usbd_gate", "clk48m", SCM_GCCR, 0);
diff --git a/patches/linux/3.7/0029b-armadeus-add_csi_registers.tofix b/patches/linux/3.7/0029b-armadeus-add_csi_registers.patch
similarity index 78%
rename from patches/linux/3.7/0029b-armadeus-add_csi_registers.tofix
rename to patches/linux/3.7/0029b-armadeus-add_csi_registers.patch
index 7b19c47..7f3b277 100644
--- a/patches/linux/3.7/0029b-armadeus-add_csi_registers.tofix
+++ b/patches/linux/3.7/0029b-armadeus-add_csi_registers.patch
@@ -1,8 +1,8 @@
-Index: linux-3.3.5/drivers/media/video/mx1_camera.c
+Index: linux-3.7-rc6/drivers/media/platform/soc_camera/mx1_camera.c
===================================================================
---- linux-3.3.5.orig/drivers/media/video/mx1_camera.c
-+++ linux-3.3.5/drivers/media/video/mx1_camera.c
-@@ -49,9 +49,13 @@
+--- linux-3.7-rc6.orig/drivers/media/platform/soc_camera/mx1_camera.c
++++ linux-3.7-rc6/drivers/media/platform/soc_camera/mx1_camera.c
+@@ -50,9 +50,13 @@
* CSI registers
*/
#define CSICR1 0x00 /* CSI Control Register 1 */
@@ -16,7 +16,7 @@ Index: linux-3.3.5/drivers/media/video/mx1_camera.c
#define CSICR1_RXFF_LEVEL(x) (((x) & 0x3) << 19)
#define CSICR1_SOF_POL (1 << 17)
#define CSICR1_SOF_INTEN (1 << 16)
-@@ -59,8 +63,10 @@
+@@ -60,8 +64,10 @@
#define CSICR1_MCLKEN (1 << 9)
#define CSICR1_FCC (1 << 8)
#define CSICR1_BIG_ENDIAN (1 << 7)
hooks/post-receive
--
armadeus
|