[
  [
    "linux-2.6.23.orig/arch/sh/Makefile", 
    "linux-2.6.23/arch/sh/Makefile", 
    [
      "Index: linux-2.6.23/arch/sh/Makefile", 
      "===================================================================", 
      "--- linux-2.6.23.orig/arch/sh/Makefile", 
      "+++ linux-2.6.23/arch/sh/Makefile", 
      "@@ -154,6 +154,7 @@ machdir-$(CONFIG_SH_ST_MB628)\t\t\t+= st/mb", 
      "machdir-$(CONFIG_SH_ST_MB671)\t\t\t+= st/mb671 st/common", 
      "machdir-$(CONFIG_SH_ST_MB680)\t\t\t+= st/mb680 st/common", 
      "machdir-$(CONFIG_SH_ST_MB704)\t\t\t+= st/mb704", 
      "+machdir-$(CONFIG_SH_ST_VIP19X3)                        += st/vip19x3 st/common", 
      "machdir-$(CONFIG_SH_ST_PDK7105)\t\t\t+= st/pdk7105", 
      "machdir-$(CONFIG_SH_ST_MB839)\t\t\t+= st/mb839", 
      ""
    ]
  ], 
  [
    "dev/null", 
    "linux-2.6.23/arch/sh/boards/st/vip19x3/Makefile", 
    [
      "Index: linux-2.6.23/arch/sh/boards/st/vip19x3/Makefile", 
      "===================================================================", 
      "--- dev/null", 
      "+++ linux-2.6.23/arch/sh/boards/st/vip19x3/Makefile", 
      "@@ -0,0 +1,5 @@", 
      "+#", 
      "+# Makefile for Motorola VIP19x3 board", 
      "+#", 
      "+", 
      "+obj-y := setup.o"
    ]
  ], 
  [
    "dev/null", 
    "linux-2.6.23/arch/sh/boards/st/vip19x3/setup.c", 
    [
      "Index: linux-2.6.23/arch/sh/boards/st/vip19x3/setup.c", 
      "===================================================================", 
      "--- dev/null", 
      "+++ linux-2.6.23/arch/sh/boards/st/vip19x3/setup.c", 
      "@@ -0,0 +1,202 @@", 
      "+/*", 
      "+ * arch/sh/boards/st/vip19x3/setup.c", 
      "+ *", 
      "+ * Copyright (C) 2008 STMicroelectronics Limited", 
      "+ * Author: Stuart Menefy (stuart.menefy@st.com)", 
      "+ *", 
      "+ * May be copied or modified under the terms of the GNU General Public", 
      "+ * License.  See linux/COPYING for more information.", 
      "+ *", 
      "+ * Copyright (C) 2008 Motorola, Inc.", 
      "+ * Motorola VIP19x3 board support.", 
      "+ */", 
      "+", 
      "+#include <linux/init.h>", 
      "+#include <linux/platform_device.h>", 
      "+#include <linux/leds.h>", 
      "+#include <linux/stm/pio.h>", 
      "+#include <linux/stm/soc.h>", 
      "+#include <linux/stm/emi.h>", 
      "+#include <linux/stm/pio.h>", 
      "+#include <linux/mtd/mtd.h>", 
      "+#include <linux/mtd/nand.h>", 
      "+#include <linux/stm/nand.h>", 
      "+#include <linux/stm/soc_init.h>", 
      "+#include <linux/mtd/physmap.h>", 
      "+#include <linux/mtd/partitions.h>", 
      "+#include <linux/phy.h>", 
      "+#include <linux/gpio_keys.h>", 
      "+#include <linux/input.h>", 
      "+#include <asm/irq-ilc.h>", 
      "+#include <asm/irl.h>", 
      "+#include <asm/io.h>", 
      "+#include <asm/setup.h>", 
      "+#include \"../common/common.h\"", 
      "+", 
      "+static int ascs[2] __initdata = { 1 | (STASC_FLAG_NORTSCTS << 8),", 
      "+\t\t\t\t  2 | (STASC_FLAG_NORTSCTS << 8) };", 
      "+", 
      "+static void __init vip19x3_setup(char** cmdline_p)", 
      "+{", 
      "+\tchar command_line[COMMAND_LINE_SIZE+1];", 
      "+", 
      "+\tprintk(\"Motorola VIP19x3 board initialisation\\n\");", 
      "+", 
      "+\tmemcpy(command_line, *cmdline_p, COMMAND_LINE_SIZE);", 
      "+\tcommand_line[COMMAND_LINE_SIZE] = '\\0';", 
      "+\tif (NULL != strstr(command_line, \"rbl_mode=2\")) {", 
      "+\t\tascs[0] |= (STASC_FLAG_NORXTX << 8);", 
      "+\t}", 
      "+", 
      "+\tstx7105_early_device_init();", 
      "+\tstx7105_configure_asc(ascs, 2, 0);", 
      "+}", 
      "+", 
      "+static struct plat_stm_pwm_data pwm_private_info = {", 
      "+\t.flags\t\t= PLAT_STM_PWM_OUT0,", 
      "+\t.routing\t= PWM_OUT0_PIO4_4,", 
      "+};", 
      "+", 
      "+static struct plat_ssc_data ssc_private_info = {", 
      "+\t.capability  =", 
      "+\t\tssc0_has(SSC_I2C_CAPABILITY) |", 
      "+\t\tssc1_has(SSC_UNCONFIGURED) |", 
      "+\t\tssc2_has(SSC_UNCONFIGURED) |", 
      "+\t\tssc3_has(SSC_I2C_CAPABILITY),", 
      "+\t.routing =", 
      "+\t\tSSC3_SCLK_PIO3_6 | SSC3_MTSR_PIO3_7 | SSC3_MRST_PIO3_7,", 
      "+};", 
      "+", 
      "+static struct usb_init_data usb_init[2] __initdata = {", 
      "+\t{", 
      "+\t\t.oc_en = 1,", 
      "+\t\t.oc_actlow = 0,", 
      "+\t\t.oc_pinsel = USB0_OC_PIO12_5,", 
      "+\t\t.pwr_en = 0,", 
      "+\t\t.pwr_pinsel = USB0_PWR_PIO12_6,", 
      "+\t}, {", 
      "+\t\t.oc_en = 1,", 
      "+\t\t.oc_actlow = 0,", 
      "+\t\t.oc_pinsel = USB1_OC_PIO14_6,", 
      "+\t\t.pwr_en = 0,", 
      "+\t\t.pwr_pinsel = USB1_PWR_PIO14_7,", 
      "+\t}", 
      "+};", 
      "+", 
      "+static struct mtd_partition nand_partitions[] = {", 
      "+\t{", 
      "+\t\t.name\t= \"NAND home\",", 
      "+\t\t.offset\t= 0,", 
      "+\t\t.size\t= MTDPART_SIZ_FULL", 
      "+\t},", 
      "+};", 
      "+", 
      "+static struct plat_stmnand_data nand_config = {", 
      "+\t/* STM_NAND_EMI data */", 
      "+\t.emi_withinbankoffset\t= 0,", 
      "+\t.rbn_port\t\t= -1,", 
      "+\t.rbn_pin\t\t= -1,", 
      "+", 
      "+\t.timing_data = &(struct nand_timing_data) {", 
      "+\t\t.sig_setup\t= 50,\t\t/* times in ns */", 
      "+\t\t.sig_hold\t= 50,", 
      "+\t\t.CE_deassert\t= 0,", 
      "+\t\t.WE_to_RBn\t= 100,", 
      "+\t\t.wr_on\t\t= 10,", 
      "+\t\t.wr_off\t\t= 40,", 
      "+\t\t.rd_on\t\t= 10,", 
      "+\t\t.rd_off\t\t= 40,", 
      "+\t\t.chip_delay\t= 30,\t\t/* in us */", 
      "+\t},", 
      "+\t.flex_rbn_connected\t= 1,", 
      "+};", 
      "+", 
      "+/* Platform data for STM_NAND_EMI/FLEX/AFM. (bank# may be updated later) */", 
      "+static struct platform_device nand_device =", 
      "+\tSTM_NAND_DEVICE(\"stm-nand-flex\", 1, &nand_config,", 
      "+\t\t\tnand_partitions, ARRAY_SIZE(nand_partitions), NAND_USE_FLASH_BBT);", 
      "+", 
      "+static struct plat_stmmacphy_data phy_private_data = {", 
      "+\t/* Marvell 88E3015 on Motorola VIP1903 */", 
      "+\t.bus_id = 0,", 
      "+\t.phy_addr = 0,", 
      "+\t.phy_mask = 0,", 
      "+\t.interface = PHY_INTERFACE_MODE_MII,", 
      "+};", 
      "+", 
      "+static struct platform_device vip19x3_phy_device = {", 
      "+\t.name\t\t= \"stmmacphy\",", 
      "+\t.id\t\t= 0,", 
      "+\t.num_resources\t= 1,", 
      "+\t.resource\t= (struct resource[]) {", 
      "+\t\t{", 
      "+\t\t\t.name\t= \"phyirq\",", 
      "+\t\t\t.start\t= ILC_EXT_IRQ(6),", 
      "+\t\t\t.end\t= ILC_EXT_IRQ(6),", 
      "+\t\t\t.flags\t= IORESOURCE_IRQ,", 
      "+\t\t},", 
      "+\t},", 
      "+\t.dev = {", 
      "+\t\t.platform_data = &phy_private_data,", 
      "+\t}", 
      "+};", 
      "+", 
      "+static struct platform_device *vip19x3_devices[] __initdata = {", 
      "+\t&vip19x3_phy_device,", 
      "+};", 
      "+", 
      "+/* Configuration based on Futarque-RC signals train. */", 
      "+lirc_scd_t lirc_scd = {", 
      "+\t.code = 0x3FFFC028,", 
      "+\t.codelen = 0x1e,", 
      "+\t.alt_codelen = 0,", 
      "+\t.nomtime = 0x1f4,", 
      "+\t.noiserecov = 0,", 
      "+};", 
      "+", 
      "+static int __init device_init(void)", 
      "+{", 
      "+       struct stpio_pin *pin;", 
      "+", 
      "+\tstx7105_configure_sata();", 
      "+\tstx7105_configure_pwm(&pwm_private_info);", 
      "+\tstx7105_configure_ssc(&ssc_private_info);", 
      "+", 
      "+\tstx7105_configure_usb(0, &usb_init[0]);", 
      "+\tstx7105_configure_usb(1, &usb_init[1]);", 
      "+\tstx7105_configure_ethernet(0, 0, 0, 0, 1, 0);", 
      "+\tstx7105_configure_lirc(&lirc_scd);", 
      "+\tstx7105_configure_audio_pins(0,1,0);", 
      "+\tstx7105_configure_nand(&nand_device);", 
      "+", 
      "+\t/* Enable the PHY */", 
      "+\tpin = stpio_request_pin(14, 4, \"phyreset\", STPIO_OUT);", 
      "+\tstpio_set_pin(pin, 0);", 
      "+", 
      "+\treturn platform_add_devices(vip19x3_devices, ARRAY_SIZE(vip19x3_devices));", 
      "+}", 
      "+arch_initcall(device_init);", 
      "+", 
      "+static void __iomem *vip19x3_ioport_map(unsigned long port, unsigned int size)", 
      "+{", 
      "+\t/* However picking somewhere safe isn't as easy as you might think.", 
      "+\t * I used to use external ROM, but that can cause problems if you are", 
      "+\t * in the middle of updating Flash. So I'm now using the processor core", 
      "+\t * version register, which is guaranted to be available, and non-writable.", 
      "+\t */", 
      "+\treturn (void __iomem *)CCN_PVR;", 
      "+}", 
      "+", 
      "+static void __init vip19x3_init_irq(void)", 
      "+{", 
      "+\t/* Configure PHY interrupt as active low. */", 
      "+\tset_irq_type(ILC_EXT_IRQ(6), IRQ_TYPE_LEVEL_LOW);", 
      "+}", 
      "+", 
      "+struct sh_machine_vector mv_vip19x3 __initmv = {", 
      "+\t.mv_name\t\t= \"vip19x3\",", 
      "+\t.mv_setup\t\t= vip19x3_setup,", 
      "+\t.mv_nr_irqs\t\t= NR_IRQS,", 
      "+\t.mv_init_irq\t\t= vip19x3_init_irq,", 
      "+\t.mv_ioport_map\t\t= vip19x3_ioport_map,", 
      "+};"
    ]
  ]
]