Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Paul Mundt [Mon, 16 Aug 2010 04:32:24 +0000 (13:32 +0900)]
Conflicts:
arch/sh/include/asm/Kbuild
drivers/Makefile

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

47 files changed:
arch/sh/Kconfig
arch/sh/boards/Kconfig
arch/sh/boards/Makefile
arch/sh/boards/board-sh2007.c [new file with mode: 0644]
arch/sh/boards/board-sh7757lcr.c [new file with mode: 0644]
arch/sh/configs/sh2007_defconfig [new file with mode: 0644]
arch/sh/configs/sh7757lcr_defconfig [new file with mode: 0644]
arch/sh/drivers/dma/dma-api.c
arch/sh/drivers/pci/pci-sh7751.c
arch/sh/drivers/pci/pci-sh7780.c
arch/sh/drivers/pci/pcie-sh7786.c
arch/sh/include/asm/Kbuild
arch/sh/include/asm/elf.h
arch/sh/include/asm/fixmap.h
arch/sh/include/asm/irq.h
arch/sh/include/asm/kprobes.h
arch/sh/include/asm/processor_32.h
arch/sh/include/asm/processor_64.h
arch/sh/include/asm/ptrace.h
arch/sh/include/asm/ptrace_32.h [new file with mode: 0644]
arch/sh/include/asm/ptrace_64.h [new file with mode: 0644]
arch/sh/include/asm/system_32.h
arch/sh/include/asm/tlbflush.h
arch/sh/include/cpu-sh4/cpu/sh7757.h
arch/sh/include/mach-common/mach/sh2007.h [new file with mode: 0644]
arch/sh/kernel/Makefile
arch/sh/kernel/cpu/sh4/probe.c
arch/sh/kernel/cpu/sh4a/clock-sh7757.c
arch/sh/kernel/cpu/sh4a/pinmux-sh7757.c
arch/sh/kernel/cpu/sh4a/setup-sh7724.c
arch/sh/kernel/cpu/sh4a/setup-sh7757.c
arch/sh/kernel/kprobes.c
arch/sh/kernel/ptrace.c [new file with mode: 0644]
arch/sh/kernel/ptrace_32.c
arch/sh/kernel/ptrace_64.c
arch/sh/kernel/reboot.c
arch/sh/mm/consistent.c
arch/sh/mm/init.c
arch/sh/mm/tlbflush_32.c
arch/sh/mm/tlbflush_64.c
arch/sh/tools/mach-types
drivers/Makefile
drivers/clocksource/sh_cmt.c
drivers/i2c/busses/i2c-sh_mobile.c
drivers/serial/sh-sci.h
drivers/sh/clk.c
sound/soc/sh/siu_pcm.c

index 33990fa..b2b90ee 100644 (file)
@@ -23,6 +23,7 @@ config SUPERH
        select HAVE_KERNEL_LZMA
        select HAVE_KERNEL_LZO
        select HAVE_SYSCALL_TRACEPOINTS
+       select HAVE_REGS_AND_STACK_ACCESS_API
        select RTC_LIB
        select GENERIC_ATOMIC64
        help
@@ -569,7 +570,7 @@ config SH_CLK_CPG
 config SH_CLK_CPG_LEGACY
        depends on SH_CLK_CPG
        def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
-                     !CPU_SUBTYPE_SH7786
+                     !CPU_SUBTYPE_SH7786 && !CPU_SUBTYPE_SH7757
 
 config SH_CLK_MD
        int "CPU Mode Pin Setting"
index 07b35ca..90ed1ec 100644 (file)
@@ -165,6 +165,11 @@ config SH_HIGHLANDER
        select SYS_SUPPORTS_PCI
        select IO_TRAPPED if MMU
 
+config SH_SH7757LCR
+       bool "SH7757LCR"
+       depends on CPU_SUBTYPE_SH7757
+       select ARCH_REQUIRE_GPIOLIB
+
 config SH_SH7785LCR
        bool "SH7785LCR"
        depends on CPU_SUBTYPE_SH7785
@@ -309,6 +314,17 @@ config SH_POLARIS
        help
          Select if configuring for an SMSC Polaris development board
 
+config SH_SH2007
+       bool "SH-2007 board"
+       select NO_IOPORT
+       depends on CPU_SUBTYPE_SH7780
+       help
+         SH-2007 is a single-board computer based around SH7780 chip
+         intended for embedded applications.
+         It has an Ethernet interface (SMC9118), direct connected
+         Compact Flash socket, two serial ports and PC-104 bus.
+         More information at <http://sh2000.sh-linux.org>.
+
 endmenu
 
 source "arch/sh/boards/mach-r2d/Kconfig"
index 4f90f9b..38ef655 100644 (file)
@@ -2,6 +2,7 @@
 # Specific board support, not covered by a mach group.
 #
 obj-$(CONFIG_SH_MAGIC_PANEL_R2)        += board-magicpanelr2.o
+obj-$(CONFIG_SH_SH2007)                += board-sh2007.o
 obj-$(CONFIG_SH_SH7785LCR)     += board-sh7785lcr.o
 obj-$(CONFIG_SH_URQUELL)       += board-urquell.o
 obj-$(CONFIG_SH_SHMIN)         += board-shmin.o
@@ -9,3 +10,4 @@ obj-$(CONFIG_SH_EDOSK7760)     += board-edosk7760.o
 obj-$(CONFIG_SH_ESPT)          += board-espt.o
 obj-$(CONFIG_SH_POLARIS)       += board-polaris.o
 obj-$(CONFIG_SH_TITAN)         += board-titan.o
+obj-$(CONFIG_SH_SH7757LCR)     += board-sh7757lcr.o
diff --git a/arch/sh/boards/board-sh2007.c b/arch/sh/boards/board-sh2007.c
new file mode 100644 (file)
index 0000000..b90b78f
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * SH-2007 board support.
+ *
+ * Copyright (C) 2003, 2004  SUGIOKA Toshinobu
+ * Copyright (C) 2010  Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
+ */
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/smsc911x.h>
+#include <linux/platform_device.h>
+#include <linux/ata_platform.h>
+#include <linux/io.h>
+#include <asm/machvec.h>
+#include <mach/sh2007.h>
+
+struct smsc911x_platform_config smc911x_info = {
+       .flags          = SMSC911X_USE_32BIT,
+       .irq_polarity   = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+       .irq_type       = SMSC911X_IRQ_TYPE_PUSH_PULL,
+};
+
+static struct resource smsc9118_0_resources[] = {
+       [0] = {
+               .start  = SMC0_BASE,
+               .end    = SMC0_BASE + 0xff,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = evt2irq(0x240),
+               .end    = evt2irq(0x240),
+               .flags  = IORESOURCE_IRQ,
+       }
+};
+
+static struct resource smsc9118_1_resources[] = {
+       [0] = {
+               .start  = SMC1_BASE,
+               .end    = SMC1_BASE + 0xff,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = evt2irq(0x280),
+               .end    = evt2irq(0x280),
+               .flags  = IORESOURCE_IRQ,
+       }
+};
+
+static struct platform_device smsc9118_0_device = {
+       .name           = "smsc911x",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(smsc9118_0_resources),
+       .resource       = smsc9118_0_resources,
+       .dev = {
+               .platform_data = &smc911x_info,
+       },
+};
+
+static struct platform_device smsc9118_1_device = {
+       .name           = "smsc911x",
+       .id             = 1,
+       .num_resources  = ARRAY_SIZE(smsc9118_1_resources),
+       .resource       = smsc9118_1_resources,
+       .dev = {
+               .platform_data = &smc911x_info,
+       },
+};
+
+static struct resource cf_resources[] = {
+       [0] = {
+               .start  = CF_BASE + CF_OFFSET,
+               .end    = CF_BASE + CF_OFFSET + 0x0f,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = CF_BASE + CF_OFFSET + 0x206,
+               .end    = CF_BASE + CF_OFFSET + 0x20f,
+               .flags  = IORESOURCE_MEM,
+       },
+       [2] = {
+               .start  = evt2irq(0x2c0),
+               .end    = evt2irq(0x2c0),
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct platform_device cf_device  = {
+       .name           = "pata_platform",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(cf_resources),
+       .resource       = cf_resources,
+};
+
+static struct platform_device *sh2007_devices[] __initdata = {
+       &smsc9118_0_device,
+       &smsc9118_1_device,
+       &cf_device,
+};
+
+static int __init sh2007_io_init(void)
+{
+       platform_add_devices(sh2007_devices, ARRAY_SIZE(sh2007_devices));
+       return 0;
+}
+subsys_initcall(sh2007_io_init);
+
+static void __init sh2007_init_irq(void)
+{
+       plat_irq_setup_pins(IRQ_MODE_IRQ);
+}
+
+/*
+ * Initialize the board
+ */
+static void __init sh2007_setup(char **cmdline_p)
+{
+       printk(KERN_INFO "SH-2007 Setup...");
+
+       /* setup wait control registers for area 5 */
+       __raw_writel(CS5BCR_D, CS5BCR);
+       __raw_writel(CS5WCR_D, CS5WCR);
+       __raw_writel(CS5PCR_D, CS5PCR);
+
+       printk(KERN_INFO " done.\n");
+}
+
+/*
+ * The Machine Vector
+ */
+struct sh_machine_vector mv_sh2007 __initmv = {
+       .mv_setup               = sh2007_setup,
+       .mv_name                = "sh2007",
+       .mv_init_irq            = sh2007_init_irq,
+};
diff --git a/arch/sh/boards/board-sh7757lcr.c b/arch/sh/boards/board-sh7757lcr.c
new file mode 100644 (file)
index 0000000..c475f10
--- /dev/null
@@ -0,0 +1,374 @@
+/*
+ * Renesas R0P7757LC0012RL Support.
+ *
+ * Copyright (C) 2009 - 2010  Renesas Solutions Corp.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/gpio.h>
+#include <linux/irq.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
+#include <linux/io.h>
+#include <cpu/sh7757.h>
+#include <asm/sh_eth.h>
+#include <asm/heartbeat.h>
+
+static struct resource heartbeat_resource = {
+       .start  = 0xffec005c,   /* PUDR */
+       .end    = 0xffec005c,
+       .flags  = IORESOURCE_MEM | IORESOURCE_MEM_8BIT,
+};
+
+static unsigned char heartbeat_bit_pos[] = { 0, 1, 2, 3 };
+
+static struct heartbeat_data heartbeat_data = {
+       .bit_pos        = heartbeat_bit_pos,
+       .nr_bits        = ARRAY_SIZE(heartbeat_bit_pos),
+       .flags          = HEARTBEAT_INVERTED,
+};
+
+static struct platform_device heartbeat_device = {
+       .name           = "heartbeat",
+       .id             = -1,
+       .dev    = {
+               .platform_data  = &heartbeat_data,
+       },
+       .num_resources  = 1,
+       .resource       = &heartbeat_resource,
+};
+
+/* Fast Ethernet */
+static struct resource sh_eth0_resources[] = {
+       {
+               .start  = 0xfef00000,
+               .end    = 0xfef001ff,
+               .flags  = IORESOURCE_MEM,
+       }, {
+               .start  = 84,
+               .end    = 84,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct sh_eth_plat_data sh7757_eth0_pdata = {
+       .phy = 1,
+       .edmac_endian = EDMAC_LITTLE_ENDIAN,
+};
+
+static struct platform_device sh7757_eth0_device = {
+       .name           = "sh-eth",
+       .resource       = sh_eth0_resources,
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(sh_eth0_resources),
+       .dev            = {
+               .platform_data = &sh7757_eth0_pdata,
+       },
+};
+
+static struct resource sh_eth1_resources[] = {
+       {
+               .start  = 0xfef00800,
+               .end    = 0xfef009ff,
+               .flags  = IORESOURCE_MEM,
+       }, {
+               .start  = 84,
+               .end    = 84,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct sh_eth_plat_data sh7757_eth1_pdata = {
+       .phy = 1,
+       .edmac_endian = EDMAC_LITTLE_ENDIAN,
+};
+
+static struct platform_device sh7757_eth1_device = {
+       .name           = "sh-eth",
+       .resource       = sh_eth1_resources,
+       .id             = 1,
+       .num_resources  = ARRAY_SIZE(sh_eth1_resources),
+       .dev            = {
+               .platform_data = &sh7757_eth1_pdata,
+       },
+};
+
+static struct platform_device *sh7757lcr_devices[] __initdata = {
+       &heartbeat_device,
+       &sh7757_eth0_device,
+       &sh7757_eth1_device,
+};
+
+static int __init sh7757lcr_devices_setup(void)
+{
+       /* RGMII (PTA) */
+       gpio_request(GPIO_FN_ET0_MDC, NULL);
+       gpio_request(GPIO_FN_ET0_MDIO, NULL);
+       gpio_request(GPIO_FN_ET1_MDC, NULL);
+       gpio_request(GPIO_FN_ET1_MDIO, NULL);
+
+       /* ONFI (PTB, PTZ) */
+       gpio_request(GPIO_FN_ON_NRE, NULL);
+       gpio_request(GPIO_FN_ON_NWE, NULL);
+       gpio_request(GPIO_FN_ON_NWP, NULL);
+       gpio_request(GPIO_FN_ON_NCE0, NULL);
+       gpio_request(GPIO_FN_ON_R_B0, NULL);
+       gpio_request(GPIO_FN_ON_ALE, NULL);
+       gpio_request(GPIO_FN_ON_CLE, NULL);
+
+       gpio_request(GPIO_FN_ON_DQ7, NULL);
+       gpio_request(GPIO_FN_ON_DQ6, NULL);
+       gpio_request(GPIO_FN_ON_DQ5, NULL);
+       gpio_request(GPIO_FN_ON_DQ4, NULL);
+       gpio_request(GPIO_FN_ON_DQ3, NULL);
+       gpio_request(GPIO_FN_ON_DQ2, NULL);
+       gpio_request(GPIO_FN_ON_DQ1, NULL);
+       gpio_request(GPIO_FN_ON_DQ0, NULL);
+
+       /* IRQ8 to 0 (PTB, PTC) */
+       gpio_request(GPIO_FN_IRQ8, NULL);
+       gpio_request(GPIO_FN_IRQ7, NULL);
+       gpio_request(GPIO_FN_IRQ6, NULL);
+       gpio_request(GPIO_FN_IRQ5, NULL);
+       gpio_request(GPIO_FN_IRQ4, NULL);
+       gpio_request(GPIO_FN_IRQ3, NULL);
+       gpio_request(GPIO_FN_IRQ2, NULL);
+       gpio_request(GPIO_FN_IRQ1, NULL);
+       gpio_request(GPIO_FN_IRQ0, NULL);
+
+       /* SPI0 (PTD) */
+       gpio_request(GPIO_FN_SP0_MOSI, NULL);
+       gpio_request(GPIO_FN_SP0_MISO, NULL);
+       gpio_request(GPIO_FN_SP0_SCK, NULL);
+       gpio_request(GPIO_FN_SP0_SCK_FB, NULL);
+       gpio_request(GPIO_FN_SP0_SS0, NULL);
+       gpio_request(GPIO_FN_SP0_SS1, NULL);
+       gpio_request(GPIO_FN_SP0_SS2, NULL);
+       gpio_request(GPIO_FN_SP0_SS3, NULL);
+
+       /* RMII 0/1 (PTE, PTF) */
+       gpio_request(GPIO_FN_RMII0_CRS_DV, NULL);
+       gpio_request(GPIO_FN_RMII0_TXD1, NULL);
+       gpio_request(GPIO_FN_RMII0_TXD0, NULL);
+       gpio_request(GPIO_FN_RMII0_TXEN, NULL);
+       gpio_request(GPIO_FN_RMII0_REFCLK, NULL);
+       gpio_request(GPIO_FN_RMII0_RXD1, NULL);
+       gpio_request(GPIO_FN_RMII0_RXD0, NULL);
+       gpio_request(GPIO_FN_RMII0_RX_ER, NULL);
+       gpio_request(GPIO_FN_RMII1_CRS_DV, NULL);
+       gpio_request(GPIO_FN_RMII1_TXD1, NULL);
+       gpio_request(GPIO_FN_RMII1_TXD0, NULL);
+       gpio_request(GPIO_FN_RMII1_TXEN, NULL);
+       gpio_request(GPIO_FN_RMII1_REFCLK, NULL);
+       gpio_request(GPIO_FN_RMII1_RXD1, NULL);
+       gpio_request(GPIO_FN_RMII1_RXD0, NULL);
+       gpio_request(GPIO_FN_RMII1_RX_ER, NULL);
+
+       /* eMMC (PTG) */
+       gpio_request(GPIO_FN_MMCCLK, NULL);
+       gpio_request(GPIO_FN_MMCCMD, NULL);
+       gpio_request(GPIO_FN_MMCDAT7, NULL);
+       gpio_request(GPIO_FN_MMCDAT6, NULL);
+       gpio_request(GPIO_FN_MMCDAT5, NULL);
+       gpio_request(GPIO_FN_MMCDAT4, NULL);
+       gpio_request(GPIO_FN_MMCDAT3, NULL);
+       gpio_request(GPIO_FN_MMCDAT2, NULL);
+       gpio_request(GPIO_FN_MMCDAT1, NULL);
+       gpio_request(GPIO_FN_MMCDAT0, NULL);
+
+       /* LPC (PTG, PTH, PTQ, PTU) */
+       gpio_request(GPIO_FN_SERIRQ, NULL);
+       gpio_request(GPIO_FN_LPCPD, NULL);
+       gpio_request(GPIO_FN_LDRQ, NULL);
+       gpio_request(GPIO_FN_WP, NULL);
+       gpio_request(GPIO_FN_FMS0, NULL);
+       gpio_request(GPIO_FN_LAD3, NULL);
+       gpio_request(GPIO_FN_LAD2, NULL);
+       gpio_request(GPIO_FN_LAD1, NULL);
+       gpio_request(GPIO_FN_LAD0, NULL);
+       gpio_request(GPIO_FN_LFRAME, NULL);
+       gpio_request(GPIO_FN_LRESET, NULL);
+       gpio_request(GPIO_FN_LCLK, NULL);
+       gpio_request(GPIO_FN_LGPIO7, NULL);
+       gpio_request(GPIO_FN_LGPIO6, NULL);
+       gpio_request(GPIO_FN_LGPIO5, NULL);
+       gpio_request(GPIO_FN_LGPIO4, NULL);
+
+       /* SPI1 (PTH) */
+       gpio_request(GPIO_FN_SP1_MOSI, NULL);
+       gpio_request(GPIO_FN_SP1_MISO, NULL);
+       gpio_request(GPIO_FN_SP1_SCK, NULL);
+       gpio_request(GPIO_FN_SP1_SCK_FB, NULL);
+       gpio_request(GPIO_FN_SP1_SS0, NULL);
+       gpio_request(GPIO_FN_SP1_SS1, NULL);
+
+       /* SDHI (PTI) */
+       gpio_request(GPIO_FN_SD_WP, NULL);
+       gpio_request(GPIO_FN_SD_CD, NULL);
+       gpio_request(GPIO_FN_SD_CLK, NULL);
+       gpio_request(GPIO_FN_SD_CMD, NULL);
+       gpio_request(GPIO_FN_SD_D3, NULL);
+       gpio_request(GPIO_FN_SD_D2, NULL);
+       gpio_request(GPIO_FN_SD_D1, NULL);
+       gpio_request(GPIO_FN_SD_D0, NULL);
+
+       /* SCIF3/4 (PTJ, PTW) */
+       gpio_request(GPIO_FN_RTS3, NULL);
+       gpio_request(GPIO_FN_CTS3, NULL);
+       gpio_request(GPIO_FN_TXD3, NULL);
+       gpio_request(GPIO_FN_RXD3, NULL);
+       gpio_request(GPIO_FN_RTS4, NULL);
+       gpio_request(GPIO_FN_RXD4, NULL);
+       gpio_request(GPIO_FN_TXD4, NULL);
+       gpio_request(GPIO_FN_CTS4, NULL);
+
+       /* SERMUX (PTK, PTL, PTO, PTV) */
+       gpio_request(GPIO_FN_COM2_TXD, NULL);
+       gpio_request(GPIO_FN_COM2_RXD, NULL);
+       gpio_request(GPIO_FN_COM2_RTS, NULL);
+       gpio_request(GPIO_FN_COM2_CTS, NULL);
+       gpio_request(GPIO_FN_COM2_DTR, NULL);
+       gpio_request(GPIO_FN_COM2_DSR, NULL);
+       gpio_request(GPIO_FN_COM2_DCD, NULL);
+       gpio_request(GPIO_FN_COM2_RI, NULL);
+       gpio_request(GPIO_FN_RAC_RXD, NULL);
+       gpio_request(GPIO_FN_RAC_RTS, NULL);
+       gpio_request(GPIO_FN_RAC_CTS, NULL);
+       gpio_request(GPIO_FN_RAC_DTR, NULL);
+       gpio_request(GPIO_FN_RAC_DSR, NULL);
+       gpio_request(GPIO_FN_RAC_DCD, NULL);
+       gpio_request(GPIO_FN_RAC_TXD, NULL);
+       gpio_request(GPIO_FN_COM1_TXD, NULL);
+       gpio_request(GPIO_FN_COM1_RXD, NULL);
+       gpio_request(GPIO_FN_COM1_RTS, NULL);
+       gpio_request(GPIO_FN_COM1_CTS, NULL);
+
+       writeb(0x10, 0xfe470000);       /* SMR0: SerMux mode 0 */
+
+       /* IIC (PTM, PTR, PTS) */
+       gpio_request(GPIO_FN_SDA7, NULL);
+       gpio_request(GPIO_FN_SCL7, NULL);
+       gpio_request(GPIO_FN_SDA6, NULL);
+       gpio_request(GPIO_FN_SCL6, NULL);
+       gpio_request(GPIO_FN_SDA5, NULL);
+       gpio_request(GPIO_FN_SCL5, NULL);
+       gpio_request(GPIO_FN_SDA4, NULL);
+       gpio_request(GPIO_FN_SCL4, NULL);
+       gpio_request(GPIO_FN_SDA3, NULL);
+       gpio_request(GPIO_FN_SCL3, NULL);
+       gpio_request(GPIO_FN_SDA2, NULL);
+       gpio_request(GPIO_FN_SCL2, NULL);
+       gpio_request(GPIO_FN_SDA1, NULL);
+       gpio_request(GPIO_FN_SCL1, NULL);
+       gpio_request(GPIO_FN_SDA0, NULL);
+       gpio_request(GPIO_FN_SCL0, NULL);
+
+       /* USB (PTN) */
+       gpio_request(GPIO_FN_VBUS_EN, NULL);
+       gpio_request(GPIO_FN_VBUS_OC, NULL);
+
+       /* SGPIO1/0 (PTN, PTO) */
+       gpio_request(GPIO_FN_SGPIO1_CLK, NULL);
+       gpio_request(GPIO_FN_SGPIO1_LOAD, NULL);
+       gpio_request(GPIO_FN_SGPIO1_DI, NULL);
+       gpio_request(GPIO_FN_SGPIO1_DO, NULL);
+       gpio_request(GPIO_FN_SGPIO0_CLK, NULL);
+       gpio_request(GPIO_FN_SGPIO0_LOAD, NULL);
+       gpio_request(GPIO_FN_SGPIO0_DI, NULL);
+       gpio_request(GPIO_FN_SGPIO0_DO, NULL);
+
+       /* WDT (PTN) */
+       gpio_request(GPIO_FN_SUB_CLKIN, NULL);
+
+       /* System (PTT) */
+       gpio_request(GPIO_FN_STATUS1, NULL);
+       gpio_request(GPIO_FN_STATUS0, NULL);
+
+       /* PWMX (PTT) */
+       gpio_request(GPIO_FN_PWMX1, NULL);
+       gpio_request(GPIO_FN_PWMX0, NULL);
+
+       /* R-SPI (PTV) */
+       gpio_request(GPIO_FN_R_SPI_MOSI, NULL);
+       gpio_request(GPIO_FN_R_SPI_MISO, NULL);
+       gpio_request(GPIO_FN_R_SPI_RSPCK, NULL);
+       gpio_request(GPIO_FN_R_SPI_SSL0, NULL);
+       gpio_request(GPIO_FN_R_SPI_SSL1, NULL);
+
+       /* EVC (PTV, PTW) */
+       gpio_request(GPIO_FN_EVENT7, NULL);
+       gpio_request(GPIO_FN_EVENT6, NULL);
+       gpio_request(GPIO_FN_EVENT5, NULL);
+       gpio_request(GPIO_FN_EVENT4, NULL);
+       gpio_request(GPIO_FN_EVENT3, NULL);
+       gpio_request(GPIO_FN_EVENT2, NULL);
+       gpio_request(GPIO_FN_EVENT1, NULL);
+       gpio_request(GPIO_FN_EVENT0, NULL);
+
+       /* LED for heartbeat */
+       gpio_request(GPIO_PTU3, NULL);
+       gpio_direction_output(GPIO_PTU3, 1);
+       gpio_request(GPIO_PTU2, NULL);
+       gpio_direction_output(GPIO_PTU2, 1);
+       gpio_request(GPIO_PTU1, NULL);
+       gpio_direction_output(GPIO_PTU1, 1);
+       gpio_request(GPIO_PTU0, NULL);
+       gpio_direction_output(GPIO_PTU0, 1);
+
+       /* control for MDIO of Gigabit Ethernet */
+       gpio_request(GPIO_PTT4, NULL);
+       gpio_direction_output(GPIO_PTT4, 1);
+
+       /* control for eMMC */
+       gpio_request(GPIO_PTT7, NULL);          /* eMMC_RST# */
+       gpio_direction_output(GPIO_PTT7, 0);
+       gpio_request(GPIO_PTT6, NULL);          /* eMMC_INDEX# */
+       gpio_direction_output(GPIO_PTT6, 0);
+       gpio_request(GPIO_PTT5, NULL);          /* eMMC_PRST# */
+       gpio_direction_output(GPIO_PTT5, 1);
+
+       /* General platform */
+       return platform_add_devices(sh7757lcr_devices,
+                                   ARRAY_SIZE(sh7757lcr_devices));
+}
+arch_initcall(sh7757lcr_devices_setup);
+
+/* Initialize IRQ setting */
+void __init init_sh7757lcr_IRQ(void)
+{
+       plat_irq_setup_pins(IRQ_MODE_IRQ7654);
+       plat_irq_setup_pins(IRQ_MODE_IRQ3210);
+}
+
+/* Initialize the board */
+static void __init sh7757lcr_setup(char **cmdline_p)
+{
+       printk(KERN_INFO "Renesas R0P7757LC0012RL support.\n");
+}
+
+static int sh7757lcr_mode_pins(void)
+{
+       int value = 0;
+
+       /* These are the factory default settings of S3 (Low active).
+        * If you change these dip switches then you will need to
+        * adjust the values below as well.
+        */
+       value |= MODE_PIN0;     /* Clock Mode: 1 */
+
+       return value;
+}
+
+/* The Machine Vector */
+static struct sh_machine_vector mv_sh7757lcr __initmv = {
+       .mv_name                = "SH7757LCR",
+       .mv_setup               = sh7757lcr_setup,
+       .mv_init_irq            = init_sh7757lcr_IRQ,
+       .mv_mode_pins           = sh7757lcr_mode_pins,
+};
+
diff --git a/arch/sh/configs/sh2007_defconfig b/arch/sh/configs/sh2007_defconfig
new file mode 100644 (file)
index 0000000..adf7a6b
--- /dev/null
@@ -0,0 +1,1357 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.35-rc2
+# Fri Jun 18 19:46:14 2010
+#
+CONFIG_SUPERH=y
+CONFIG_SUPERH32=y
+# CONFIG_SUPERH64 is not set
+CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYS_SUPPORTS_TMU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_NO_IOPORT=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+# CONFIG_MODULES is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_FREEZER is not set
+
+#
+# System type
+#
+CONFIG_CPU_SH4=y
+CONFIG_CPU_SH4A=y
+# CONFIG_CPU_SUBTYPE_SH7619 is not set
+# CONFIG_CPU_SUBTYPE_SH7201 is not set
+# CONFIG_CPU_SUBTYPE_SH7203 is not set
+# CONFIG_CPU_SUBTYPE_SH7206 is not set
+# CONFIG_CPU_SUBTYPE_SH7263 is not set
+# CONFIG_CPU_SUBTYPE_MXG is not set
+# CONFIG_CPU_SUBTYPE_SH7705 is not set
+# CONFIG_CPU_SUBTYPE_SH7706 is not set
+# CONFIG_CPU_SUBTYPE_SH7707 is not set
+# CONFIG_CPU_SUBTYPE_SH7708 is not set
+# CONFIG_CPU_SUBTYPE_SH7709 is not set
+# CONFIG_CPU_SUBTYPE_SH7710 is not set
+# CONFIG_CPU_SUBTYPE_SH7712 is not set
+# CONFIG_CPU_SUBTYPE_SH7720 is not set
+# CONFIG_CPU_SUBTYPE_SH7721 is not set
+# CONFIG_CPU_SUBTYPE_SH7750 is not set
+# CONFIG_CPU_SUBTYPE_SH7091 is not set
+# CONFIG_CPU_SUBTYPE_SH7750R is not set
+# CONFIG_CPU_SUBTYPE_SH7750S is not set
+# CONFIG_CPU_SUBTYPE_SH7751 is not set
+# CONFIG_CPU_SUBTYPE_SH7751R is not set
+# CONFIG_CPU_SUBTYPE_SH7760 is not set
+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
+# CONFIG_CPU_SUBTYPE_SH7723 is not set
+# CONFIG_CPU_SUBTYPE_SH7724 is not set
+# CONFIG_CPU_SUBTYPE_SH7757 is not set
+# CONFIG_CPU_SUBTYPE_SH7763 is not set
+# CONFIG_CPU_SUBTYPE_SH7770 is not set
+CONFIG_CPU_SUBTYPE_SH7780=y
+# CONFIG_CPU_SUBTYPE_SH7785 is not set
+# CONFIG_CPU_SUBTYPE_SH7786 is not set
+# CONFIG_CPU_SUBTYPE_SHX3 is not set
+# CONFIG_CPU_SUBTYPE_SH7343 is not set
+# CONFIG_CPU_SUBTYPE_SH7722 is not set
+# CONFIG_CPU_SUBTYPE_SH7366 is not set
+
+#
+# Memory management options
+#
+CONFIG_QUICKLIST=y
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_MEMORY_START=0x08000000
+CONFIG_MEMORY_SIZE=0x08000000
+CONFIG_29BIT=y
+# CONFIG_PMB is not set
+# CONFIG_VSYSCALL is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_MAX_ACTIVE_REGIONS=1
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_UNCACHED_MAPPING=y
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_NR_QUICK=1
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+
+#
+# Cache configuration
+#
+CONFIG_CACHE_WRITEBACK=y
+# CONFIG_CACHE_WRITETHROUGH is not set
+# CONFIG_CACHE_OFF is not set
+
+#
+# Processor features
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_SH_FPU=y
+# CONFIG_SH_STORE_QUEUES is not set
+# CONFIG_SPECULATIVE_EXECUTION is not set
+CONFIG_CPU_HAS_INTEVT=y
+CONFIG_CPU_HAS_SR_RB=y
+CONFIG_CPU_HAS_FPU=y
+
+#
+# Board support
+#
+# CONFIG_SH_7780_SOLUTION_ENGINE is not set
+# CONFIG_SH_SDK7780 is not set
+# CONFIG_SH_HIGHLANDER is not set
+CONFIG_SH_SH2007=y
+
+#
+# Timer and clock configuration
+#
+CONFIG_SH_TIMER_TMU=y
+CONFIG_SH_PCLK_FREQ=50000000
+CONFIG_SH_CLK_CPG=y
+CONFIG_SH_CLK_CPG_LEGACY=y
+CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# DMA support
+#
+CONFIG_SH_DMA=y
+CONFIG_SH_DMA_IRQ_MULTI=y
+CONFIG_SH_DMA_API=y
+CONFIG_NR_ONCHIP_DMA_CHANNELS=12
+CONFIG_NR_DMA_CHANNELS_BOOL=y
+CONFIG_NR_DMA_CHANNELS=12
+
+#
+# Companion Chips
+#
+
+#
+# Additional SuperH Device Drivers
+#
+# CONFIG_HEARTBEAT is not set
+# CONFIG_PUSH_SWITCH is not set
+
+#
+# Kernel features
+#
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_SECCOMP is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_GUSA=y
+# CONFIG_INTC_USERIMASK is not set
+
+#
+# Boot options
+#
+CONFIG_ZERO_PAGE_OFFSET=0x00001000
+CONFIG_BOOT_LINK_OFFSET=0x00800000
+CONFIG_ENTRY_OFFSET=0x00001000
+CONFIG_CMDLINE_OVERWRITE=y
+# CONFIG_CMDLINE_EXTEND is not set
+CONFIG_CMDLINE="console=ttySC1,115200 ip=dhcp root=/dev/nfs rw nfsroot=/nfs/rootfs,rsize=1024,wsize=1024 earlyprintk=sh-sci.1"
+
+#
+# Bus options
+#
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_PCCARD=y
+CONFIG_PCMCIA=y
+CONFIG_PCMCIA_LOAD_CIS=y
+
+#
+# PC-card bridges
+#
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+
+#
+# Power management options (EXPERIMENTAL)
+#
+# CONFIG_PM is not set
+# CONFIG_CPU_IDLE is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=y
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=y
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+CONFIG_NETWORK_SECMARK=y
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+# CONFIG_LIB80211 is not set
+
+#
+# CFG80211 needs to be enabled for MAC80211
+#
+
+#
+# Some wireless drivers require a rate control algorithm
+#
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+
+#
+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
+#
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MISC_DEVICES is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=y
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=y
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=y
+# CONFIG_SCSI_SAS_LIBSAS is not set
+CONFIG_SCSI_SRP_ATTRS=y
+# CONFIG_SCSI_SRP_TGT_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+CONFIG_EQUALIZER=y
+CONFIG_TUN=y
+CONFIG_VETH=y
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_STNIC is not set
+# CONFIG_SMC91X is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+CONFIG_SMSC911X=y
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_NET_PCMCIA is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=2
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_IPWIRELESS is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_RAMOOPS is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_SH_WDT=y
+# CONFIG_SH_WDT_MMAP is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_MFD_SUPPORT=y
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SH_MOBILE_SDHI is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_SH_MOBILE_LCDC is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_SUPERH_MONO=y
+CONFIG_LOGO_SUPERH_VGA16=y
+CONFIG_LOGO_SUPERH_CLUT224=y
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_MON=y
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+# CONFIG_USB_STORAGE is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_SH is not set
+# CONFIG_RTC_DRV_GENERIC is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_TIMB_DMA=y
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+# CONFIG_NET_DMA is not set
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=y
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=932
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=y
+# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=y
+CONFIG_NLS_CODEPAGE_775=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=y
+CONFIG_NLS_CODEPAGE_855=y
+CONFIG_NLS_CODEPAGE_857=y
+CONFIG_NLS_CODEPAGE_860=y
+CONFIG_NLS_CODEPAGE_861=y
+CONFIG_NLS_CODEPAGE_862=y
+CONFIG_NLS_CODEPAGE_863=y
+CONFIG_NLS_CODEPAGE_864=y
+CONFIG_NLS_CODEPAGE_865=y
+CONFIG_NLS_CODEPAGE_866=y
+CONFIG_NLS_CODEPAGE_869=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_CODEPAGE_950=y
+CONFIG_NLS_CODEPAGE_932=y
+CONFIG_NLS_CODEPAGE_949=y
+CONFIG_NLS_CODEPAGE_874=y
+CONFIG_NLS_ISO8859_8=y
+CONFIG_NLS_CODEPAGE_1250=y
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_NLS_ISO8859_4=y
+CONFIG_NLS_ISO8859_5=y
+CONFIG_NLS_ISO8859_6=y
+CONFIG_NLS_ISO8859_7=y
+CONFIG_NLS_ISO8859_9=y
+CONFIG_NLS_ISO8859_13=y
+CONFIG_NLS_ISO8859_14=y
+CONFIG_NLS_ISO8859_15=y
+CONFIG_NLS_KOI8_R=y
+CONFIG_NLS_KOI8_U=y
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DETECT_SOFTLOCKUP is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_LKDTM is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_KSYM_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_SH_STANDARD_BIOS=y
+# CONFIG_STACK_DEBUG is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DUMP_CODE=y
+# CONFIG_DWARF_UNWINDER is not set
+# CONFIG_SH_NO_BSS_INIT is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_PCBC=y
+CONFIG_CRYPTO_XTS=y
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=y
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_GHASH is not set
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_ANUBIS=y
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_CAST5=y
+CONFIG_CRYPTO_CAST6=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=y
+CONFIG_CRYPTO_KHAZAD=y
+# CONFIG_CRYPTO_SALSA20 is not set
+CONFIG_CRYPTO_SEED=y
+CONFIG_CRYPTO_SERPENT=y
+CONFIG_CRYPTO_TEA=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_VIRTUALIZATION is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
+CONFIG_HAVE_LMB=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7757lcr_defconfig b/arch/sh/configs/sh7757lcr_defconfig
new file mode 100644 (file)
index 0000000..635933e
--- /dev/null
@@ -0,0 +1,1126 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.35-rc3
+# Mon Jul  5 20:42:01 2010
+#
+CONFIG_SUPERH=y
+CONFIG_SUPERH32=y
+# CONFIG_SUPERH64 is not set
+CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYS_SUPPORTS_TMU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_FREEZER is not set
+
+#
+# System type
+#
+CONFIG_CPU_SH4=y
+CONFIG_CPU_SH4A=y
+CONFIG_CPU_SHX2=y
+# CONFIG_CPU_SUBTYPE_SH7619 is not set
+# CONFIG_CPU_SUBTYPE_SH7201 is not set
+# CONFIG_CPU_SUBTYPE_SH7203 is not set
+# CONFIG_CPU_SUBTYPE_SH7206 is not set
+# CONFIG_CPU_SUBTYPE_SH7263 is not set
+# CONFIG_CPU_SUBTYPE_MXG is not set
+# CONFIG_CPU_SUBTYPE_SH7705 is not set
+# CONFIG_CPU_SUBTYPE_SH7706 is not set
+# CONFIG_CPU_SUBTYPE_SH7707 is not set
+# CONFIG_CPU_SUBTYPE_SH7708 is not set
+# CONFIG_CPU_SUBTYPE_SH7709 is not set
+# CONFIG_CPU_SUBTYPE_SH7710 is not set
+# CONFIG_CPU_SUBTYPE_SH7712 is not set
+# CONFIG_CPU_SUBTYPE_SH7720 is not set
+# CONFIG_CPU_SUBTYPE_SH7721 is not set
+# CONFIG_CPU_SUBTYPE_SH7750 is not set
+# CONFIG_CPU_SUBTYPE_SH7091 is not set
+# CONFIG_CPU_SUBTYPE_SH7750R is not set
+# CONFIG_CPU_SUBTYPE_SH7750S is not set
+# CONFIG_CPU_SUBTYPE_SH7751 is not set
+# CONFIG_CPU_SUBTYPE_SH7751R is not set
+# CONFIG_CPU_SUBTYPE_SH7760 is not set
+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
+# CONFIG_CPU_SUBTYPE_SH7723 is not set
+# CONFIG_CPU_SUBTYPE_SH7724 is not set
+CONFIG_CPU_SUBTYPE_SH7757=y
+# CONFIG_CPU_SUBTYPE_SH7763 is not set
+# CONFIG_CPU_SUBTYPE_SH7770 is not set
+# CONFIG_CPU_SUBTYPE_SH7780 is not set
+# CONFIG_CPU_SUBTYPE_SH7785 is not set
+# CONFIG_CPU_SUBTYPE_SH7786 is not set
+# CONFIG_CPU_SUBTYPE_SHX3 is not set
+# CONFIG_CPU_SUBTYPE_SH7343 is not set
+# CONFIG_CPU_SUBTYPE_SH7722 is not set
+# CONFIG_CPU_SUBTYPE_SH7366 is not set
+
+#
+# Memory management options
+#
+CONFIG_QUICKLIST=y
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_MEMORY_START=0x40000000
+CONFIG_MEMORY_SIZE=0x0f000000
+# CONFIG_29BIT is not set
+CONFIG_32BIT=y
+CONFIG_PMB=y
+CONFIG_X2TLB=y
+CONFIG_VSYSCALL=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_MAX_ACTIVE_REGIONS=1
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_IOREMAP_FIXED=y
+CONFIG_UNCACHED_MAPPING=y
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_NR_QUICK=1
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+
+#
+# Cache configuration
+#
+CONFIG_CACHE_WRITEBACK=y
+# CONFIG_CACHE_WRITETHROUGH is not set
+# CONFIG_CACHE_OFF is not set
+
+#
+# Processor features
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_SH_FPU=y
+# CONFIG_SH_STORE_QUEUES is not set
+CONFIG_CPU_HAS_INTEVT=y
+CONFIG_CPU_HAS_SR_RB=y
+CONFIG_CPU_HAS_FPU=y
+
+#
+# Board support
+#
+CONFIG_SH_SH7757LCR=y
+
+#
+# Timer and clock configuration
+#
+CONFIG_SH_TIMER_TMU=y
+CONFIG_SH_CLK_CPG=y
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# DMA support
+#
+# CONFIG_SH_DMA is not set
+
+#
+# Companion Chips
+#
+
+#
+# Additional SuperH Device Drivers
+#
+CONFIG_HEARTBEAT=y
+# CONFIG_PUSH_SWITCH is not set
+
+#
+# Kernel features
+#
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_SECCOMP=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_GUSA=y
+# CONFIG_INTC_USERIMASK is not set
+
+#
+# Boot options
+#
+CONFIG_ZERO_PAGE_OFFSET=0x00001000
+CONFIG_BOOT_LINK_OFFSET=0x00800000
+CONFIG_ENTRY_OFFSET=0x00001000
+CONFIG_CMDLINE_OVERWRITE=y
+# CONFIG_CMDLINE_EXTEND is not set
+CONFIG_CMDLINE="console=ttySC2,115200 root=/dev/nfs ip=dhcp"
+
+#
+# Bus options
+#
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options (EXPERIMENTAL)
+#
+# CONFIG_PM is not set
+# CONFIG_CPU_IDLE is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+
+#
+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
+#
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+CONFIG_VITESSE_PHY=y
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=y
+# CONFIG_MDIO_GPIO is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_STNIC is not set
+CONFIG_SH_ETH=y
+# CONFIG_SMC91X is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_SH_KEYSC is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=3
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_RAMOOPS is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+# CONFIG_GPIO_IT8761E is not set
+
+#
+# I2C GPIO expanders:
+#
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_MFD_SUPPORT=y
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SH_MOBILE_SDHI is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_HID_PID is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_USB_SUPPORT is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_XATTRS is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=y
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+CONFIG_NLS_CODEPAGE_932=y
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DETECT_SOFTLOCKUP is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_SH_STANDARD_BIOS is not set
+# CONFIG_STACK_DEBUG is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_4KSTACKS is not set
+# CONFIG_DUMP_CODE is not set
+# CONFIG_DWARF_UNWINDER is not set
+# CONFIG_SH_NO_BSS_INIT is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_MANAGER2 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_VIRTUALIZATION is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_HAVE_LMB=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
index 4a27722..f46848f 100644 (file)
@@ -412,8 +412,8 @@ EXPORT_SYMBOL(unregister_dmac);
 static int __init dma_api_init(void)
 {
        printk(KERN_NOTICE "DMA: Registering DMA API.\n");
-       create_proc_read_entry("dma", 0, 0, dma_read_proc, 0);
-       return 0;
+       return create_proc_read_entry("dma", 0, 0, dma_read_proc, 0)
+                   ? 0 : -ENOMEM;
 }
 subsys_initcall(dma_api_init);
 
index f98141b..86adb1e 100644 (file)
@@ -81,7 +81,7 @@ static int __init sh7751_pci_init(void)
        unsigned int id;
        u32 word, reg;
 
-       printk(KERN_NOTICE "PCI: Starting intialization.\n");
+       printk(KERN_NOTICE "PCI: Starting initialization.\n");
 
        chan->reg_base = 0xfe200000;
 
index ffdcbf1..edb7cca 100644 (file)
@@ -246,7 +246,7 @@ static int __init sh7780_pci_init(void)
        const char *type;
        int ret, i;
 
-       printk(KERN_NOTICE "PCI: Starting intialization.\n");
+       printk(KERN_NOTICE "PCI: Starting initialization.\n");
 
        chan->reg_base = 0xfe040000;
 
index 68cb9b0..78f3787 100644 (file)
@@ -392,7 +392,7 @@ static int __init sh7786_pcie_init(void)
 {
        int ret = 0, i;
 
-       printk(KERN_NOTICE "PCI: Starting intialization.\n");
+       printk(KERN_NOTICE "PCI: Starting initialization.\n");
 
        sh7786_pcie_hwops = &sh7786_65nm_pcie_hwops;
 
index 0eed47b..7beb423 100644 (file)
@@ -5,5 +5,7 @@ header-y += cpu-features.h
 header-y += hw_breakpoint.h
 header-y += posix_types_32.h
 header-y += posix_types_64.h
+header-y += ptrace_32.h
+header-y += ptrace_64.h
 header-y += unistd_32.h
 header-y += unistd_64.h
index ce830fa..f38112b 100644 (file)
 #define        R_SH_GOTPC              167
 
 /* FDPIC relocs */
-#define R_SH_GOT20             70
-#define R_SH_GOTOFF20          71
-#define R_SH_GOTFUNCDESC       72
-#define R_SH_GOTFUNCDESC20     73
-#define R_SH_GOTOFFFUNCDESC    74
-#define R_SH_GOTOFFFUNCDESC20  75
-#define R_SH_FUNCDESC          76
-#define R_SH_FUNCDESC_VALUE    77
-
-#if 0 /* XXX - later .. */
-#define R_SH_GOT20             198
-#define R_SH_GOTOFF20          199
-#define R_SH_GOTFUNCDESC       200
-#define R_SH_GOTFUNCDESC20     201
-#define R_SH_GOTOFFFUNCDESC    202
-#define R_SH_GOTOFFFUNCDESC20  203
-#define R_SH_FUNCDESC          204
-#define R_SH_FUNCDESC_VALUE    205
-#endif
+#define R_SH_GOT20             201
+#define R_SH_GOTOFF20          202
+#define R_SH_GOTFUNCDESC       203
+#define R_SH_GOTFUNCDESC20     204
+#define R_SH_GOTOFFFUNCDESC    205
+#define R_SH_GOTOFFFUNCDESC20  206
+#define R_SH_FUNCDESC          207
+#define R_SH_FUNCDESC_VALUE    208
 
 /* SHmedia relocs */
 #define R_SH_IMM_LOW16         246
index 6e7cea4..bd7e79a 100644 (file)
@@ -58,7 +58,7 @@ enum fixed_addresses {
 
 #ifdef CONFIG_HIGHMEM
        FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
-       FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
+       FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_TYPE_NR * NR_CPUS) - 1,
 #endif
 
 #ifdef CONFIG_IOREMAP_FIXED
@@ -69,7 +69,7 @@ enum fixed_addresses {
         */
 #define FIX_N_IOREMAPS 32
        FIX_IOREMAP_BEGIN,
-       FIX_IOREMAP_END = FIX_IOREMAP_BEGIN + FIX_N_IOREMAPS,
+       FIX_IOREMAP_END = FIX_IOREMAP_BEGIN + FIX_N_IOREMAPS - 1,
 #endif
 
        __end_of_fixed_addresses
index 02c2f01..45d08b6 100644 (file)
@@ -9,7 +9,7 @@
  * advised to cap this at the hard limit that they're interested in
  * through the machvec.
  */
-#define NR_IRQS                        256
+#define NR_IRQS                        512
 #define NR_IRQS_LEGACY         8       /* Legacy external IRQ0-7 */
 
 /*
index 036c331..134f398 100644 (file)
@@ -16,7 +16,6 @@ typedef insn_size_t kprobe_opcode_t;
        ? (MAX_STACK_SIZE) \
        : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR)))
 
-#define regs_return_value(_regs)               ((_regs)->regs[0])
 #define flush_insn_slot(p)             do { } while (0)
 #define kretprobe_blacklist_size       0
 
index 61a445d..46d5179 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/linkage.h>
 #include <asm/page.h>
 #include <asm/types.h>
-#include <asm/ptrace.h>
 #include <asm/hw_breakpoint.h>
 
 /*
@@ -194,8 +193,6 @@ extern unsigned long get_wchan(struct task_struct *p);
 #define KSTK_EIP(tsk)  (task_pt_regs(tsk)->pc)
 #define KSTK_ESP(tsk)  (task_pt_regs(tsk)->regs[15])
 
-#define user_stack_pointer(_regs)      ((_regs)->regs[15])
-
 #if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
 #define PREFETCH_STRIDE                L1_CACHE_BYTES
 #define ARCH_HAS_PREFETCH
index 621bc46..2a541dd 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/compiler.h>
 #include <asm/page.h>
 #include <asm/types.h>
-#include <asm/ptrace.h>
 #include <cpu/registers.h>
 
 /*
@@ -231,7 +230,5 @@ extern unsigned long get_wchan(struct task_struct *p);
 #define KSTK_EIP(tsk)  ((tsk)->thread.pc)
 #define KSTK_ESP(tsk)  ((tsk)->thread.sp)
 
-#define user_stack_pointer(_regs)      ((_regs)->regs[15])
-
 #endif /* __ASSEMBLY__ */
 #endif /* __ASM_SH_PROCESSOR_64_H */
index 2168fde..f6edc10 100644 (file)
@@ -3,90 +3,7 @@
 
 /*
  * Copyright (C) 1999, 2000  Niibe Yutaka
- *
- */
-#if defined(__SH5__)
-struct pt_regs {
-       unsigned long long pc;
-       unsigned long long sr;
-       long long syscall_nr;
-       unsigned long long regs[63];
-       unsigned long long tregs[8];
-       unsigned long long pad[2];
-};
-#else
-/*
- * GCC defines register number like this:
- * -----------------------------
- *      0 - 15 are integer registers
- *     17 - 22 are control/special registers
- *     24 - 39 fp registers
- *     40 - 47 xd registers
- *     48 -    fpscr register
- * -----------------------------
- *
- * We follows above, except:
- *     16 --- program counter (PC)
- *     22 --- syscall #
- *     23 --- floating point communication register
  */
-#define REG_REG0        0
-#define REG_REG15      15
-
-#define REG_PC         16
-
-#define REG_PR         17
-#define REG_SR         18
-#define REG_GBR                19
-#define REG_MACH       20
-#define REG_MACL       21
-
-#define REG_SYSCALL    22
-
-#define REG_FPREG0     23
-#define REG_FPREG15    38
-#define REG_XFREG0     39
-#define REG_XFREG15    54
-
-#define REG_FPSCR      55
-#define REG_FPUL       56
-
-/*
- * This struct defines the way the registers are stored on the
- * kernel stack during a system call or other kernel entry.
- */
-struct pt_regs {
-       unsigned long regs[16];
-       unsigned long pc;
-       unsigned long pr;
-       unsigned long sr;
-       unsigned long gbr;
-       unsigned long mach;
-       unsigned long macl;
-       long tra;
-};
-
-/*
- * This struct defines the way the DSP registers are stored on the
- * kernel stack during a system call or other kernel entry.
- */
-struct pt_dspregs {
-       unsigned long   a1;
-       unsigned long   a0g;
-       unsigned long   a1g;
-       unsigned long   m0;
-       unsigned long   m1;
-       unsigned long   a0;
-       unsigned long   x0;
-       unsigned long   x1;
-       unsigned long   y0;
-       unsigned long   y1;
-       unsigned long   dsr;
-       unsigned long   rs;
-       unsigned long   re;
-       unsigned long   mod;
-};
-#endif
 
 #define PTRACE_GETREGS         12      /* General registers */
 #define PTRACE_SETREGS         13
@@ -107,22 +24,102 @@ struct pt_dspregs {
 #define PT_DATA_ADDR           248     /* &(struct user)->start_data */
 #define PT_TEXT_LEN            252
 
+#if defined(__SH5__) || defined(CONFIG_CPU_SH5)
+#include "ptrace_64.h"
+#else
+#include "ptrace_32.h"
+#endif
+
 #ifdef __KERNEL__
+
+#include <linux/stringify.h>
+#include <linux/stddef.h>
+#include <linux/thread_info.h>
 #include <asm/addrspace.h>
 #include <asm/page.h>
 #include <asm/system.h>
 
 #define user_mode(regs)                        (((regs)->sr & 0x40000000)==0)
+#define user_stack_pointer(regs)       ((unsigned long)(regs)->regs[15])
+#define kernel_stack_pointer(regs)     ((unsigned long)(regs)->regs[15])
 #define instruction_pointer(regs)      ((unsigned long)(regs)->pc)
 
 extern void show_regs(struct pt_regs *);
 
+#define arch_has_single_step() (1)
+
 /*
- * These are defined as per linux/ptrace.h.
+ * kprobe-based event tracer support
  */
-struct task_struct;
+struct pt_regs_offset {
+       const char *name;
+       int offset;
+};
 
-#define arch_has_single_step() (1)
+#define REG_OFFSET_NAME(r) {.name = #r, .offset = offsetof(struct pt_regs, r)}
+#define REGS_OFFSET_NAME(num)  \
+       {.name = __stringify(r##num), .offset = offsetof(struct pt_regs, regs[num])}
+#define TREGS_OFFSET_NAME(num) \
+       {.name = __stringify(tr##num), .offset = offsetof(struct pt_regs, tregs[num])}
+#define REG_OFFSET_END {.name = NULL, .offset = 0}
+
+/* Query offset/name of register from its name/offset */
+extern int regs_query_register_offset(const char *name);
+extern const char *regs_query_register_name(unsigned int offset);
+
+extern const struct pt_regs_offset regoffset_table[];
+
+/**
+ * regs_get_register() - get register value from its offset
+ * @regs:      pt_regs from which register value is gotten.
+ * @offset:    offset number of the register.
+ *
+ * regs_get_register returns the value of a register. The @offset is the
+ * offset of the register in struct pt_regs address which specified by @regs.
+ * If @offset is bigger than MAX_REG_OFFSET, this returns 0.
+ */
+static inline unsigned long regs_get_register(struct pt_regs *regs,
+                                             unsigned int offset)
+{
+       if (unlikely(offset > MAX_REG_OFFSET))
+               return 0;
+       return *(unsigned long *)((unsigned long)regs + offset);
+}
+
+/**
+ * regs_within_kernel_stack() - check the address in the stack
+ * @regs:      pt_regs which contains kernel stack pointer.
+ * @addr:      address which is checked.
+ *
+ * regs_within_kernel_stack() checks @addr is within the kernel stack page(s).
+ * If @addr is within the kernel stack, it returns true. If not, returns false.
+ */
+static inline int regs_within_kernel_stack(struct pt_regs *regs,
+                                          unsigned long addr)
+{
+       return ((addr & ~(THREAD_SIZE - 1))  ==
+               (kernel_stack_pointer(regs) & ~(THREAD_SIZE - 1)));
+}
+
+/**
+ * regs_get_kernel_stack_nth() - get Nth entry of the stack
+ * @regs:      pt_regs which contains kernel stack pointer.
+ * @n:         stack entry number.
+ *
+ * regs_get_kernel_stack_nth() returns @n th entry of the kernel stack which
+ * is specified by @regs. If the @n th entry is NOT in the kernel stack,
+ * this returns 0.
+ */
+static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
+                                                     unsigned int n)
+{
+       unsigned long *addr = (unsigned long *)kernel_stack_pointer(regs);
+       addr += n;
+       if (regs_within_kernel_stack(regs, (unsigned long)addr))
+               return *addr;
+       else
+               return 0;
+}
 
 struct perf_event;
 struct perf_sample_data;
diff --git a/arch/sh/include/asm/ptrace_32.h b/arch/sh/include/asm/ptrace_32.h
new file mode 100644 (file)
index 0000000..35d9e25
--- /dev/null
@@ -0,0 +1,83 @@
+#ifndef __ASM_SH_PTRACE_32_H
+#define __ASM_SH_PTRACE_32_H
+
+/*
+ * GCC defines register number like this:
+ * -----------------------------
+ *      0 - 15 are integer registers
+ *     17 - 22 are control/special registers
+ *     24 - 39 fp registers
+ *     40 - 47 xd registers
+ *     48 -    fpscr register
+ * -----------------------------
+ *
+ * We follows above, except:
+ *     16 --- program counter (PC)
+ *     22 --- syscall #
+ *     23 --- floating point communication register
+ */
+#define REG_REG0        0
+#define REG_REG15      15
+
+#define REG_PC         16
+
+#define REG_PR         17
+#define REG_SR         18
+#define REG_GBR                19
+#define REG_MACH       20
+#define REG_MACL       21
+
+#define REG_SYSCALL    22
+
+#define REG_FPREG0     23
+#define REG_FPREG15    38
+#define REG_XFREG0     39
+#define REG_XFREG15    54
+
+#define REG_FPSCR      55
+#define REG_FPUL       56
+
+/*
+ * This struct defines the way the registers are stored on the
+ * kernel stack during a system call or other kernel entry.
+ */
+struct pt_regs {
+       unsigned long regs[16];
+       unsigned long pc;
+       unsigned long pr;
+       unsigned long sr;
+       unsigned long gbr;
+       unsigned long mach;
+       unsigned long macl;
+       long tra;
+};
+
+/*
+ * This struct defines the way the DSP registers are stored on the
+ * kernel stack during a system call or other kernel entry.
+ */
+struct pt_dspregs {
+       unsigned long   a1;
+       unsigned long   a0g;
+       unsigned long   a1g;
+       unsigned long   m0;
+       unsigned long   m1;
+       unsigned long   a0;
+       unsigned long   x0;
+       unsigned long   x1;
+       unsigned long   y0;
+       unsigned long   y1;
+       unsigned long   dsr;
+       unsigned long   rs;
+       unsigned long   re;
+       unsigned long   mod;
+};
+
+#ifdef __KERNEL__
+
+#define MAX_REG_OFFSET         offsetof(struct pt_regs, tra)
+#define regs_return_value(regs)        ((regs)->regs[0])
+
+#endif /* __KERNEL__ */
+
+#endif /* __ASM_SH_PTRACE_32_H */
diff --git a/arch/sh/include/asm/ptrace_64.h b/arch/sh/include/asm/ptrace_64.h
new file mode 100644 (file)
index 0000000..d43c1cb
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef __ASM_SH_PTRACE_64_H
+#define __ASM_SH_PTRACE_64_H
+
+struct pt_regs {
+       unsigned long long pc;
+       unsigned long long sr;
+       long long syscall_nr;
+       unsigned long long regs[63];
+       unsigned long long tregs[8];
+       unsigned long long pad[2];
+};
+
+#ifdef __KERNEL__
+
+#define MAX_REG_OFFSET         offsetof(struct pt_regs, tregs[7])
+#define regs_return_value(regs)        ((regs)->regs[3])
+
+#endif /* __KERNEL__ */
+
+#endif /* __ASM_SH_PTRACE_64_H */
index 51296b3..9bd2684 100644 (file)
@@ -216,13 +216,12 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
 
 static inline void trigger_address_error(void)
 {
-       if (__in_29bit_mode())
-               __asm__ __volatile__ (
-                       "ldc %0, sr\n\t"
-                       "mov.l @%1, %0"
-                       :
-                       : "r" (0x10000000), "r" (0x80000001)
-               );
+       __asm__ __volatile__ (
+               "ldc %0, sr\n\t"
+               "mov.l @%1, %0"
+               :
+               : "r" (0x10000000), "r" (0x80000001)
+       );
 }
 
 asmlinkage void do_address_error(struct pt_regs *regs,
index e0ac972..0df66f0 100644 (file)
@@ -21,6 +21,8 @@ extern void local_flush_tlb_kernel_range(unsigned long start,
                                         unsigned long end);
 extern void local_flush_tlb_one(unsigned long asid, unsigned long page);
 
+extern void __flush_tlb_global(void);
+
 #ifdef CONFIG_SMP
 
 extern void flush_tlb_all(void);
index f4d267e..15f3de1 100644 (file)
 
 enum {
        /* PTA */
-       GPIO_PTA7, GPIO_PTA6, GPIO_PTA5, GPIO_PTA4,
-       GPIO_PTA3, GPIO_PTA2, GPIO_PTA1, GPIO_PTA0,
+       GPIO_PTA0, GPIO_PTA1, GPIO_PTA2, GPIO_PTA3,
+       GPIO_PTA4, GPIO_PTA5, GPIO_PTA6, GPIO_PTA7,
 
        /* PTB */
-       GPIO_PTB7, GPIO_PTB6, GPIO_PTB5, GPIO_PTB4,
-       GPIO_PTB3, GPIO_PTB2, GPIO_PTB1, GPIO_PTB0,
+       GPIO_PTB0, GPIO_PTB1, GPIO_PTB2, GPIO_PTB3,
+       GPIO_PTB4, GPIO_PTB5, GPIO_PTB6, GPIO_PTB7,
 
        /* PTC */
-       GPIO_PTC7, GPIO_PTC6, GPIO_PTC5, GPIO_PTC4,
-       GPIO_PTC3, GPIO_PTC2, GPIO_PTC1, GPIO_PTC0,
+       GPIO_PTC0, GPIO_PTC1, GPIO_PTC2, GPIO_PTC3,
+       GPIO_PTC4, GPIO_PTC5, GPIO_PTC6, GPIO_PTC7,
 
        /* PTD */
-       GPIO_PTD7, GPIO_PTD6, GPIO_PTD5, GPIO_PTD4,
-       GPIO_PTD3, GPIO_PTD2, GPIO_PTD1, GPIO_PTD0,
+       GPIO_PTD0, GPIO_PTD1, GPIO_PTD2, GPIO_PTD3,
+       GPIO_PTD4, GPIO_PTD5, GPIO_PTD6, GPIO_PTD7,
 
        /* PTE */
-       GPIO_PTE7, GPIO_PTE6, GPIO_PTE5, GPIO_PTE4,
-       GPIO_PTE3, GPIO_PTE2, GPIO_PTE1, GPIO_PTE0,
+       GPIO_PTE0, GPIO_PTE1, GPIO_PTE2, GPIO_PTE3,
+       GPIO_PTE4, GPIO_PTE5, GPIO_PTE6, GPIO_PTE7,
 
        /* PTF */
-       GPIO_PTF7, GPIO_PTF6, GPIO_PTF5, GPIO_PTF4,
-       GPIO_PTF3, GPIO_PTF2, GPIO_PTF1, GPIO_PTF0,
+       GPIO_PTF0, GPIO_PTF1, GPIO_PTF2, GPIO_PTF3,
+       GPIO_PTF4, GPIO_PTF5, GPIO_PTF6, GPIO_PTF7,
 
        /* PTG */
-       GPIO_PTG7, GPIO_PTG6, GPIO_PTG5, GPIO_PTG4,
-       GPIO_PTG3, GPIO_PTG2, GPIO_PTG1, GPIO_PTG0,
+       GPIO_PTG0, GPIO_PTG1, GPIO_PTG2, GPIO_PTG3,
+       GPIO_PTG4, GPIO_PTG5, GPIO_PTG6, GPIO_PTG7,
 
        /* PTH */
-       GPIO_PTH7, GPIO_PTH6, GPIO_PTH5, GPIO_PTH4,
-       GPIO_PTH3, GPIO_PTH2, GPIO_PTH1, GPIO_PTH0,
+       GPIO_PTH0, GPIO_PTH1, GPIO_PTH2, GPIO_PTH3,
+       GPIO_PTH4, GPIO_PTH5, GPIO_PTH6, GPIO_PTH7,
 
        /* PTI */
-       GPIO_PTI7, GPIO_PTI6, GPIO_PTI5, GPIO_PTI4,
-       GPIO_PTI3, GPIO_PTI2, GPIO_PTI1, GPIO_PTI0,
+       GPIO_PTI0, GPIO_PTI1, GPIO_PTI2, GPIO_PTI3,
+       GPIO_PTI4, GPIO_PTI5, GPIO_PTI6, GPIO_PTI7,
 
        /* PTJ */
-       GPIO_PTJ7, GPIO_PTJ6, GPIO_PTJ5, GPIO_PTJ4,
-       GPIO_PTJ3, GPIO_PTJ2, GPIO_PTJ1, GPIO_PTJ0,
+       GPIO_PTJ0, GPIO_PTJ1, GPIO_PTJ2, GPIO_PTJ3,
+       GPIO_PTJ4, GPIO_PTJ5, GPIO_PTJ6, GPIO_PTJ7_RESV,
 
        /* PTK */
-       GPIO_PTK7, GPIO_PTK6, GPIO_PTK5, GPIO_PTK4,
-       GPIO_PTK3, GPIO_PTK2, GPIO_PTK1, GPIO_PTK0,
+       GPIO_PTK0, GPIO_PTK1, GPIO_PTK2, GPIO_PTK3,
+       GPIO_PTK4, GPIO_PTK5, GPIO_PTK6, GPIO_PTK7,
 
        /* PTL */
-       GPIO_PTL7, GPIO_PTL6, GPIO_PTL5, GPIO_PTL4,
-       GPIO_PTL3, GPIO_PTL2, GPIO_PTL1, GPIO_PTL0,
+       GPIO_PTL0, GPIO_PTL1, GPIO_PTL2, GPIO_PTL3,
+       GPIO_PTL4, GPIO_PTL5, GPIO_PTL6, GPIO_PTL7_RESV,
 
        /* PTM */
-                  GPIO_PTM6, GPIO_PTM5, GPIO_PTM4,
-       GPIO_PTM3, GPIO_PTM2, GPIO_PTM1, GPIO_PTM0,
+       GPIO_PTM0, GPIO_PTM1, GPIO_PTM2, GPIO_PTM3,
+       GPIO_PTM4, GPIO_PTM5, GPIO_PTM6, GPIO_PTM7,
 
        /* PTN */
-       GPIO_PTN7, GPIO_PTN6, GPIO_PTN5, GPIO_PTN4,
-       GPIO_PTN3, GPIO_PTN2, GPIO_PTN1, GPIO_PTN0,
+       GPIO_PTN0, GPIO_PTN1, GPIO_PTN2, GPIO_PTN3,
+       GPIO_PTN4, GPIO_PTN5, GPIO_PTN6, GPIO_PTN7_RESV,
 
        /* PTO */
-       GPIO_PTO7, GPIO_PTO6, GPIO_PTO5, GPIO_PTO4,
-       GPIO_PTO3, GPIO_PTO2, GPIO_PTO1, GPIO_PTO0,
+       GPIO_PTO0, GPIO_PTO1, GPIO_PTO2, GPIO_PTO3,
+       GPIO_PTO4, GPIO_PTO5, GPIO_PTO6, GPIO_PTO7,
 
        /* PTP */
-                  GPIO_PTP6, GPIO_PTP5, GPIO_PTP4,
-       GPIO_PTP3, GPIO_PTP2, GPIO_PTP1, GPIO_PTP0,
+       GPIO_PTP0, GPIO_PTP1, GPIO_PTP2, GPIO_PTP3,
+       GPIO_PTP4, GPIO_PTP5, GPIO_PTP6, GPIO_PTP7,
 
        /* PTQ */
-                  GPIO_PTQ6, GPIO_PTQ5, GPIO_PTQ4,
-       GPIO_PTQ3, GPIO_PTQ2, GPIO_PTQ1, GPIO_PTQ0,
+       GPIO_PTQ0, GPIO_PTQ1, GPIO_PTQ2, GPIO_PTQ3,
+       GPIO_PTQ4, GPIO_PTQ5, GPIO_PTQ6, GPIO_PTQ7_RESV,
 
        /* PTR */
-       GPIO_PTR7, GPIO_PTR6, GPIO_PTR5, GPIO_PTR4,
-       GPIO_PTR3, GPIO_PTR2, GPIO_PTR1, GPIO_PTR0,
+       GPIO_PTR0, GPIO_PTR1, GPIO_PTR2, GPIO_PTR3,
+       GPIO_PTR4, GPIO_PTR5, GPIO_PTR6, GPIO_PTR7,
 
        /* PTS */
-       GPIO_PTS7, GPIO_PTS6, GPIO_PTS5, GPIO_PTS4,
-       GPIO_PTS3, GPIO_PTS2, GPIO_PTS1, GPIO_PTS0,
+       GPIO_PTS0, GPIO_PTS1, GPIO_PTS2, GPIO_PTS3,
+       GPIO_PTS4, GPIO_PTS5, GPIO_PTS6, GPIO_PTS7,
 
        /* PTT */
-                             GPIO_PTT5, GPIO_PTT4,
-       GPIO_PTT3, GPIO_PTT2, GPIO_PTT1, GPIO_PTT0,
+       GPIO_PTT0, GPIO_PTT1, GPIO_PTT2, GPIO_PTT3,
+       GPIO_PTT4, GPIO_PTT5, GPIO_PTT6, GPIO_PTT7,
 
        /* PTU */
-       GPIO_PTU7, GPIO_PTU6, GPIO_PTU5, GPIO_PTU4,
-       GPIO_PTU3, GPIO_PTU2, GPIO_PTU1, GPIO_PTU0,
+       GPIO_PTU0, GPIO_PTU1, GPIO_PTU2, GPIO_PTU3,
+       GPIO_PTU4, GPIO_PTU5, GPIO_PTU6, GPIO_PTU7,
 
        /* PTV */
-       GPIO_PTV7, GPIO_PTV6, GPIO_PTV5, GPIO_PTV4,
-       GPIO_PTV3, GPIO_PTV2, GPIO_PTV1, GPIO_PTV0,
+       GPIO_PTV0, GPIO_PTV1, GPIO_PTV2, GPIO_PTV3,
+       GPIO_PTV4, GPIO_PTV5, GPIO_PTV6, GPIO_PTV7,
 
        /* PTW */
-       GPIO_PTW7, GPIO_PTW6, GPIO_PTW5, GPIO_PTW4,
-       GPIO_PTW3, GPIO_PTW2, GPIO_PTW1, GPIO_PTW0,
+       GPIO_PTW0, GPIO_PTW1, GPIO_PTW2, GPIO_PTW3,
+       GPIO_PTW4, GPIO_PTW5, GPIO_PTW6, GPIO_PTW7,
 
        /* PTX */
-       GPIO_PTX7, GPIO_PTX6, GPIO_PTX5, GPIO_PTX4,
-       GPIO_PTX3, GPIO_PTX2, GPIO_PTX1, GPIO_PTX0,
+       GPIO_PTX0, GPIO_PTX1, GPIO_PTX2, GPIO_PTX3,
+       GPIO_PTX4, GPIO_PTX5, GPIO_PTX6, GPIO_PTX7,
 
        /* PTY */
-       GPIO_PTY7, GPIO_PTY6, GPIO_PTY5, GPIO_PTY4,
-       GPIO_PTY3, GPIO_PTY2, GPIO_PTY1, GPIO_PTY0,
+       GPIO_PTY0, GPIO_PTY1, GPIO_PTY2, GPIO_PTY3,
+       GPIO_PTY4, GPIO_PTY5, GPIO_PTY6, GPIO_PTY7,
 
        /* PTZ */
-       GPIO_PTZ7, GPIO_PTZ6, GPIO_PTZ5, GPIO_PTZ4,
-       GPIO_PTZ3, GPIO_PTZ2, GPIO_PTZ1, GPIO_PTZ0,
+       GPIO_PTZ0, GPIO_PTZ1, GPIO_PTZ2, GPIO_PTZ3,
+       GPIO_PTZ4, GPIO_PTZ5, GPIO_PTZ6, GPIO_PTZ7,
 
 
-       /* PTA (mobule: LBSC, CPG, LPC) */
+       /* PTA (mobule: LBSC, RGMII) */
        GPIO_FN_BS,     GPIO_FN_RDWR,   GPIO_FN_WE1,    GPIO_FN_RDY,
-       GPIO_FN_MD10,   GPIO_FN_MD9,    GPIO_FN_MD8,
-       GPIO_FN_LGPIO7, GPIO_FN_LGPIO6, GPIO_FN_LGPIO5, GPIO_FN_LGPIO4,
-       GPIO_FN_LGPIO3, GPIO_FN_LGPIO2, GPIO_FN_LGPIO1, GPIO_FN_LGPIO0,
-
-       /* PTB (mobule: LBSC, EtherC, SIM, LPC) */
-       GPIO_FN_D15,    GPIO_FN_D14,    GPIO_FN_D13,    GPIO_FN_D12,
-       GPIO_FN_D11,    GPIO_FN_D10,    GPIO_FN_D9,     GPIO_FN_D8,
-       GPIO_FN_ET0_MDC,                GPIO_FN_ET0_MDIO,
-       GPIO_FN_ET1_MDC,                GPIO_FN_ET1_MDIO,
-       GPIO_FN_SIM_D,  GPIO_FN_SIM_CLK,                GPIO_FN_SIM_RST,
-       GPIO_FN_WPSZ1,  GPIO_FN_WPSZ0,  GPIO_FN_FWID,   GPIO_FN_FLSHSZ,
-       GPIO_FN_LPC_SPIEN,              GPIO_FN_BASEL,
+       GPIO_FN_ET0_MDC,        GPIO_FN_ET0_MDIO,
+       GPIO_FN_ET1_MDC,        GPIO_FN_ET1_MDIO,
 
-       /* PTC (mobule: SD) */
-       GPIO_FN_SD_WP,  GPIO_FN_SD_CD,  GPIO_FN_SD_CLK, GPIO_FN_SD_CMD,
-       GPIO_FN_SD_D3,  GPIO_FN_SD_D2,  GPIO_FN_SD_D1,  GPIO_FN_SD_D0,
+       /* PTB (mobule: INTC, ONFI, TMU) */
+       GPIO_FN_IRQ15,  GPIO_FN_IRQ14,  GPIO_FN_IRQ13,  GPIO_FN_IRQ12,
+       GPIO_FN_IRQ11,  GPIO_FN_IRQ10,  GPIO_FN_IRQ9,   GPIO_FN_IRQ8,
+       GPIO_FN_ON_NRE, GPIO_FN_ON_NWE, GPIO_FN_ON_NWP, GPIO_FN_ON_NCE0,
+       GPIO_FN_ON_R_B0,        GPIO_FN_ON_ALE, GPIO_FN_ON_CLE,
+       GPIO_FN_TCLK,
 
-       /* PTD (mobule: INTC, SPI0, LBSC, CPG, ADC) */
+       /* PTC (mobule: IRQ, PWMU) */
        GPIO_FN_IRQ7,   GPIO_FN_IRQ6,   GPIO_FN_IRQ5,   GPIO_FN_IRQ4,
        GPIO_FN_IRQ3,   GPIO_FN_IRQ2,   GPIO_FN_IRQ1,   GPIO_FN_IRQ0,
-       GPIO_FN_MD6,    GPIO_FN_MD5,    GPIO_FN_MD3,    GPIO_FN_MD2,
-       GPIO_FN_MD1,    GPIO_FN_MD0,    GPIO_FN_ADTRG1, GPIO_FN_ADTRG0,
-
-       /* PTE (mobule: EtherC) */
-       GPIO_FN_ET0_CRS_DV,             GPIO_FN_ET0_TXD1,
-       GPIO_FN_ET0_TXD0,               GPIO_FN_ET0_TX_EN,
-       GPIO_FN_ET0_REF_CLK,            GPIO_FN_ET0_RXD1,
-       GPIO_FN_ET0_RXD0,               GPIO_FN_ET0_RX_ER,
-
-       /* PTF (mobule: EtherC) */
-       GPIO_FN_ET1_CRS_DV,             GPIO_FN_ET1_TXD1,
-       GPIO_FN_ET1_TXD0,               GPIO_FN_ET1_TX_EN,
-       GPIO_FN_ET1_REF_CLK,            GPIO_FN_ET1_RXD1,
-       GPIO_FN_ET1_RXD0,               GPIO_FN_ET1_RX_ER,
-
-       /* PTG (mobule: SYSTEM, PWMX, LPC) */
-       GPIO_FN_STATUS0,                GPIO_FN_STATUS1,
-       GPIO_FN_PWX0,   GPIO_FN_PWX1,   GPIO_FN_PWX2,   GPIO_FN_PWX3,
-       GPIO_FN_SERIRQ, GPIO_FN_CLKRUN, GPIO_FN_LPCPD,  GPIO_FN_LDRQ,
-
-       /* PTH (mobule: TMU, SCIF234, SPI1, SPI0) */
-       GPIO_FN_TCLK,   GPIO_FN_RXD4,   GPIO_FN_TXD4,
+       GPIO_FN_PWMU0,  GPIO_FN_PWMU1,  GPIO_FN_PWMU2,  GPIO_FN_PWMU3,
+       GPIO_FN_PWMU4,  GPIO_FN_PWMU5,
+
+       /* PTD (mobule: SPI0, DMAC) */
+       GPIO_FN_SP0_MOSI,       GPIO_FN_SP0_MISO,       GPIO_FN_SP0_SCK,
+       GPIO_FN_SP0_SCK_FB,     GPIO_FN_SP0_SS0,        GPIO_FN_SP0_SS1,
+       GPIO_FN_SP0_SS2,        GPIO_FN_SP0_SS3,        GPIO_FN_DREQ0,
+       GPIO_FN_DACK0,          GPIO_FN_TEND0,
+
+       /* PTE (mobule: RMII) */
+       GPIO_FN_RMII0_CRS_DV,   GPIO_FN_RMII0_TXD1,     GPIO_FN_RMII0_TXD0,
+       GPIO_FN_RMII0_TXEN,     GPIO_FN_RMII0_REFCLK,   GPIO_FN_RMII0_RXD1,
+       GPIO_FN_RMII0_RXD0,     GPIO_FN_RMII0_RX_ER,
+
+       /* PTF (mobule: RMII, SerMux) */
+       GPIO_FN_RMII1_CRS_DV,   GPIO_FN_RMII1_TXD1,     GPIO_FN_RMII1_TXD0,
+       GPIO_FN_RMII1_TXEN,     GPIO_FN_RMII1_REFCLK,   GPIO_FN_RMII1_RXD1,
+       GPIO_FN_RMII1_RXD0,     GPIO_FN_RMII1_RX_ER,    GPIO_FN_RAC_RI,
+
+       /* PTG (mobule: system, LBSC, LPC, WDT, LPC, eMMC) */
+       GPIO_FN_BOOTFMS,                GPIO_FN_BOOTWP,
+       GPIO_FN_A25,    GPIO_FN_A24,    GPIO_FN_SERIRQ, GPIO_FN_WDTOVF,
+       GPIO_FN_LPCPD,  GPIO_FN_LDRQ,   GPIO_FN_MMCCLK, GPIO_FN_MMCCMD,
+
+       /* PTH (mobule: SPI1, LPC, DMAC, ADC) */
        GPIO_FN_SP1_MOSI,               GPIO_FN_SP1_MISO,
        GPIO_FN_SP1_SCK,                GPIO_FN_SP1_SCK_FB,
        GPIO_FN_SP1_SS0,                GPIO_FN_SP1_SS1,
-       GPIO_FN_SP0_SS1,
-
-       /* PTI (mobule: INTC) */
-       GPIO_FN_IRQ15,  GPIO_FN_IRQ14,  GPIO_FN_IRQ13,  GPIO_FN_IRQ12,
-       GPIO_FN_IRQ11,  GPIO_FN_IRQ10,  GPIO_FN_IRQ9,   GPIO_FN_IRQ8,
-
-       /* PTJ (mobule: SCIF234, SERMUX) */
-       GPIO_FN_RXD3,   GPIO_FN_TXD3,   GPIO_FN_RXD2,   GPIO_FN_TXD2,
-       GPIO_FN_COM1_TXD,               GPIO_FN_COM1_RXD,
-       GPIO_FN_COM1_RTS,               GPIO_FN_COM1_CTS,
-
-       /* PTK (mobule: SERMUX) */
-       GPIO_FN_COM2_TXD,               GPIO_FN_COM2_RXD,
-       GPIO_FN_COM2_RTS,               GPIO_FN_COM2_CTS,
-       GPIO_FN_COM2_DTR,               GPIO_FN_COM2_DSR,
-       GPIO_FN_COM2_DCD,               GPIO_FN_COM2_RI,
+       GPIO_FN_WP,     GPIO_FN_FMS0,   GPIO_FN_TEND1,  GPIO_FN_DREQ1,
+       GPIO_FN_DACK1,  GPIO_FN_ADTRG1, GPIO_FN_ADTRG0,
 
-       /* PTL (mobule: SERMUX) */
-       GPIO_FN_RAC_TXD,                GPIO_FN_RAC_RXD,
-       GPIO_FN_RAC_RTS,                GPIO_FN_RAC_CTS,
-       GPIO_FN_RAC_DTR,                GPIO_FN_RAC_DSR,
-       GPIO_FN_RAC_DCD,                GPIO_FN_RAC_RI,
+       /* PTI (mobule: LBSC, SDHI) */
+       GPIO_FN_D15,    GPIO_FN_D14,    GPIO_FN_D13,    GPIO_FN_D12,
+       GPIO_FN_D11,    GPIO_FN_D10,    GPIO_FN_D9,     GPIO_FN_D8,
+       GPIO_FN_SD_WP,  GPIO_FN_SD_CD,  GPIO_FN_SD_CLK, GPIO_FN_SD_CMD,
+       GPIO_FN_SD_D3,  GPIO_FN_SD_D2,  GPIO_FN_SD_D1,  GPIO_FN_SD_D0,
 
-       /* PTM (mobule: IIC, LPC) */
+       /* PTJ (mobule: SCIF234) */
+       GPIO_FN_RTS3,   GPIO_FN_CTS3,   GPIO_FN_TXD3,   GPIO_FN_RXD3,
+       GPIO_FN_RTS4,   GPIO_FN_RXD4,   GPIO_FN_TXD4,
+
+       /* PTK (mobule: SERMUX, LBSC, SCIF) */
+       GPIO_FN_COM2_TXD,       GPIO_FN_COM2_RXD,       GPIO_FN_COM2_RTS,
+       GPIO_FN_COM2_CTS,       GPIO_FN_COM2_DTR,       GPIO_FN_COM2_DSR,
+       GPIO_FN_COM2_DCD,       GPIO_FN_CLKOUT,
+       GPIO_FN_SCK2,           GPIO_FN_SCK4,   GPIO_FN_SCK3,
+
+       /* PTL (mobule: SERMUX, SCIF, LBSC, AUD) */
+       GPIO_FN_RAC_RXD,        GPIO_FN_RAC_RTS,        GPIO_FN_RAC_CTS,
+       GPIO_FN_RAC_DTR,        GPIO_FN_RAC_DSR,        GPIO_FN_RAC_DCD,
+       GPIO_FN_RAC_TXD,        GPIO_FN_RXD2,           GPIO_FN_CS5,
+       GPIO_FN_CS6,            GPIO_FN_AUDSYNC,        GPIO_FN_AUDCK,
+       GPIO_FN_TXD2,
+
+       /* PTM (mobule: LBSC, IIC) */
+       GPIO_FN_CS4,    GPIO_FN_RD,     GPIO_FN_WE0,    GPIO_FN_CS0,
        GPIO_FN_SDA6,   GPIO_FN_SCL6,   GPIO_FN_SDA7,   GPIO_FN_SCL7,
-       GPIO_FN_WP,     GPIO_FN_FMS0,   GPIO_FN_FMS1,
-
-       /* PTN (mobule: SCIF234, EVC) */
-       GPIO_FN_SCK2,   GPIO_FN_RTS4,   GPIO_FN_RTS3,   GPIO_FN_RTS2,
-       GPIO_FN_CTS4,   GPIO_FN_CTS3,   GPIO_FN_CTS2,
-       GPIO_FN_EVENT7, GPIO_FN_EVENT6, GPIO_FN_EVENT5, GPIO_FN_EVENT4,
-       GPIO_FN_EVENT3, GPIO_FN_EVENT2, GPIO_FN_EVENT1, GPIO_FN_EVENT0,
 
-       /* PTO (mobule: SGPIO) */
-       GPIO_FN_SGPIO0_CLK,             GPIO_FN_SGPIO0_LOAD,
-       GPIO_FN_SGPIO0_DI,              GPIO_FN_SGPIO0_DO,
-       GPIO_FN_SGPIO1_CLK,             GPIO_FN_SGPIO1_LOAD,
-       GPIO_FN_SGPIO1_DI,              GPIO_FN_SGPIO1_DO,
+       /* PTN (mobule: USB, JMC, SGPIO, WDT) */
+       GPIO_FN_VBUS_EN,        GPIO_FN_VBUS_OC,        GPIO_FN_JMCTCK,
+       GPIO_FN_JMCTMS,         GPIO_FN_JMCTDO,         GPIO_FN_JMCTDI,
+       GPIO_FN_JMCTRST,
+       GPIO_FN_SGPIO1_CLK,     GPIO_FN_SGPIO1_LOAD,    GPIO_FN_SGPIO1_DI,
+       GPIO_FN_SGPIO1_DO,      GPIO_FN_SUB_CLKIN,
 
-       /* PTP (mobule: JMC, SCIF234) */
-       GPIO_FN_JMCTCK, GPIO_FN_JMCTMS, GPIO_FN_JMCTDO, GPIO_FN_JMCTDI,
-       GPIO_FN_JMCRST, GPIO_FN_SCK4,   GPIO_FN_SCK3,
+       /* PTO (mobule: SGPIO, SerMux) */
+       GPIO_FN_SGPIO0_CLK,     GPIO_FN_SGPIO0_LOAD,    GPIO_FN_SGPIO0_DI,
+       GPIO_FN_SGPIO0_DO,      GPIO_FN_SGPIO2_CLK,     GPIO_FN_SGPIO2_LOAD,
+       GPIO_FN_SGPIO2_DI,      GPIO_FN_SGPIO2_DO,      GPIO_FN_COM1_TXD,
+       GPIO_FN_COM1_RXD,       GPIO_FN_COM1_RTS,       GPIO_FN_COM1_CTS,
 
        /* PTQ (mobule: LPC) */
        GPIO_FN_LAD3,   GPIO_FN_LAD2,   GPIO_FN_LAD1,   GPIO_FN_LAD0,
        GPIO_FN_LFRAME, GPIO_FN_LRESET, GPIO_FN_LCLK,
 
        /* PTR (mobule: GRA, IIC) */
-       GPIO_FN_DDC3,   GPIO_FN_DDC2,
-       GPIO_FN_SDA8,   GPIO_FN_SCL8,   GPIO_FN_SDA2,   GPIO_FN_SCL2,
+       GPIO_FN_DDC3,   GPIO_FN_DDC2,   GPIO_FN_SDA2,   GPIO_FN_SCL2,
        GPIO_FN_SDA1,   GPIO_FN_SCL1,   GPIO_FN_SDA0,   GPIO_FN_SCL0,
+       GPIO_FN_SDA8,   GPIO_FN_SCL8,
 
        /* PTS (mobule: GRA, IIC) */
-       GPIO_FN_DDC1,   GPIO_FN_DDC0,
-       GPIO_FN_SDA9,   GPIO_FN_SCL9,   GPIO_FN_SDA5,   GPIO_FN_SCL5,
+       GPIO_FN_DDC1,   GPIO_FN_DDC0,   GPIO_FN_SDA5,   GPIO_FN_SCL5,
        GPIO_FN_SDA4,   GPIO_FN_SCL4,   GPIO_FN_SDA3,   GPIO_FN_SCL3,
+       GPIO_FN_SDA9,   GPIO_FN_SCL9,
 
-       /* PTT (mobule: SYSTEM, PWMX) */
-       GPIO_FN_AUDSYNC,                GPIO_FN_AUDCK,
-       GPIO_FN_AUDATA3,                GPIO_FN_AUDATA2,
-       GPIO_FN_AUDATA1,                GPIO_FN_AUDATA0,
-       GPIO_FN_PWX7,   GPIO_FN_PWX6,   GPIO_FN_PWX5,   GPIO_FN_PWX4,
+       /* PTT (mobule: PWMX, AUD) */
+       GPIO_FN_PWMX7,  GPIO_FN_PWMX6,  GPIO_FN_PWMX5,  GPIO_FN_PWMX4,
+       GPIO_FN_PWMX3,  GPIO_FN_PWMX2,  GPIO_FN_PWMX1,  GPIO_FN_PWMX0,
+       GPIO_FN_AUDATA3,        GPIO_FN_AUDATA2,        GPIO_FN_AUDATA1,
+       GPIO_FN_AUDATA0,        GPIO_FN_STATUS1,        GPIO_FN_STATUS0,
 
-       /* PTU (mobule: LBSC, DMAC) */
-       GPIO_FN_CS6,    GPIO_FN_CS5,    GPIO_FN_CS4,    GPIO_FN_CS0,
-       GPIO_FN_RD,     GPIO_FN_WE0,    GPIO_FN_A25,    GPIO_FN_A24,
-       GPIO_FN_DREQ0,  GPIO_FN_DACK0,
+       /* PTU (mobule: LPC, APM) */
+       GPIO_FN_LGPIO7, GPIO_FN_LGPIO6, GPIO_FN_LGPIO5, GPIO_FN_LGPIO4,
+       GPIO_FN_LGPIO3, GPIO_FN_LGPIO2, GPIO_FN_LGPIO1, GPIO_FN_LGPIO0,
+       GPIO_FN_APMONCTL_O,     GPIO_FN_APMPWBTOUT_O,   GPIO_FN_APMSCI_O,
+       GPIO_FN_APMVDDON,       GPIO_FN_APMSLPBTN,      GPIO_FN_APMPWRBTN,
+       GPIO_FN_APMS5N,         GPIO_FN_APMS3N,
 
-       /* PTV (mobule: LBSC, DMAC) */
+       /* PTV (mobule: LBSC, SerMux, R-SPI, EVC, GRA) */
        GPIO_FN_A23,    GPIO_FN_A22,    GPIO_FN_A21,    GPIO_FN_A20,
        GPIO_FN_A19,    GPIO_FN_A18,    GPIO_FN_A17,    GPIO_FN_A16,
-       GPIO_FN_TEND0,  GPIO_FN_DREQ1,  GPIO_FN_DACK1,  GPIO_FN_TEND1,
+       GPIO_FN_COM2_RI,        GPIO_FN_R_SPI_MOSI,     GPIO_FN_R_SPI_MISO,
+       GPIO_FN_R_SPI_RSPCK,    GPIO_FN_R_SPI_SSL0,     GPIO_FN_R_SPI_SSL1,
+       GPIO_FN_EVENT7,         GPIO_FN_EVENT6,         GPIO_FN_VBIOS_DI,
+       GPIO_FN_VBIOS_DO,       GPIO_FN_VBIOS_CLK,      GPIO_FN_VBIOS_CS,
 
-       /* PTW (mobule: LBSC) */
+       /* PTW (mobule: LBSC, EVC, SCIF) */
        GPIO_FN_A15,    GPIO_FN_A14,    GPIO_FN_A13,    GPIO_FN_A12,
        GPIO_FN_A11,    GPIO_FN_A10,    GPIO_FN_A9,     GPIO_FN_A8,
+       GPIO_FN_EVENT5, GPIO_FN_EVENT4, GPIO_FN_EVENT3, GPIO_FN_EVENT2,
+       GPIO_FN_EVENT1, GPIO_FN_EVENT0, GPIO_FN_CTS4,   GPIO_FN_CTS2,
 
-       /* PTX (mobule: LBSC) */
+       /* PTX (mobule: LBSC, SCIF, SIM) */
        GPIO_FN_A7,     GPIO_FN_A6,     GPIO_FN_A5,     GPIO_FN_A4,
        GPIO_FN_A3,     GPIO_FN_A2,     GPIO_FN_A1,     GPIO_FN_A0,
+       GPIO_FN_RTS2,   GPIO_FN_SIM_D,  GPIO_FN_SIM_CLK, GPIO_FN_SIM_RST,
 
        /* PTY (mobule: LBSC) */
        GPIO_FN_D7,     GPIO_FN_D6,     GPIO_FN_D5,     GPIO_FN_D4,
        GPIO_FN_D3,     GPIO_FN_D2,     GPIO_FN_D1,     GPIO_FN_D0,
+
+       /* PTZ (mobule: eMMC, ONFI) */
+       GPIO_FN_MMCDAT7,        GPIO_FN_MMCDAT6,        GPIO_FN_MMCDAT5,
+       GPIO_FN_MMCDAT4,        GPIO_FN_MMCDAT3,        GPIO_FN_MMCDAT2,
+       GPIO_FN_MMCDAT1,        GPIO_FN_MMCDAT0,
+       GPIO_FN_ON_DQ7, GPIO_FN_ON_DQ6, GPIO_FN_ON_DQ5, GPIO_FN_ON_DQ4,
+       GPIO_FN_ON_DQ3, GPIO_FN_ON_DQ2, GPIO_FN_ON_DQ1, GPIO_FN_ON_DQ0,
 };
 
 #endif /* __ASM_SH7757_H__ */
diff --git a/arch/sh/include/mach-common/mach/sh2007.h b/arch/sh/include/mach-common/mach/sh2007.h
new file mode 100644 (file)
index 0000000..48180b9
--- /dev/null
@@ -0,0 +1,117 @@
+#ifndef __MACH_SH2007_H
+#define __MACH_SH2007_H
+
+#define CS5BCR         0xff802050
+#define CS5WCR         0xff802058
+#define CS5PCR         0xff802070
+
+#define BUS_SZ8                1
+#define BUS_SZ16       2
+#define BUS_SZ32       3
+
+#define PCMCIA_IODYN   1
+#define PCMCIA_ATA     0
+#define PCMCIA_IO8     2
+#define PCMCIA_IO16    3
+#define PCMCIA_COMM8   4
+#define PCMCIA_COMM16  5
+#define PCMCIA_ATTR8   6
+#define PCMCIA_ATTR16  7
+
+#define TYPE_SRAM      0
+#define TYPE_PCMCIA    4
+
+/* write-read/write-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWW5           0
+#define IWW6           3
+/* different area, read-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRWD5         2
+#define IWRWD6         2
+/* same area, read-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRWS5         2
+#define IWRWS6         2
+/* different area, read-read delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRRD5         2
+#define IWRRD6         2
+/* same area, read-read delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRRS5         0
+#define IWRRS6         2
+/* burst count (0-3:4,8,16,32) */
+#define BST5           0
+#define BST6           0
+/* bus size */
+#define SZ5            BUS_SZ16
+#define SZ6            BUS_SZ16
+/* RD hold for SRAM (0-1:0,1) */
+#define RDSPL5         0
+#define RDSPL6         0
+/* Burst pitch (0-7:0,1,2,3,4,5,6,7) */
+#define BW5            0
+#define BW6            0
+/* Multiplex (0-1:0,1) */
+#define MPX5           0
+#define MPX6           0
+/* device type */
+#define TYPE5          TYPE_PCMCIA
+#define TYPE6          TYPE_PCMCIA
+/* address setup before assert CSn for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define ADS5           0
+#define ADS6           0
+/* address hold after negate CSn for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define ADH5           0
+#define ADH6           0
+/* CSn assert to RD assert delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define RDS5           0
+#define RDS6           0
+/* RD negate to CSn negate delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define RDH5           0
+#define RDH6           0
+/* CSn assert to WE assert delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define WTS5           0
+#define WTS6           0
+/* WE negate to CSn negate delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define WTH5           0
+#define WTH6           0
+/* BS hold (0-1:1,2) */
+#define BSH5           0
+#define BSH6           0
+/* wait cycle (0-15:0,1,2,3,4,5,6,7,8,9,11,13,15,17,21,25) */
+#define IW5            6       /* 60ns PIO mode 4 */
+#define IW6            15      /* 250ns */
+
+#define SAA5           PCMCIA_IODYN    /* IDE area b4000000-b5ffffff */
+#define SAB5           PCMCIA_IODYN    /* CF  area b6000000-b7ffffff */
+#define PCWA5          0       /* additional wait A (0-3:0,15,30,50) */
+#define PCWB5          0       /* additional wait B (0-3:0,15,30,50) */
+/* wait B (0-15:0,1,2,3,4,5,6,7,8,9,11,13,15,17,21,25) */
+#define PCIW5          12
+/* Address->OE/WE assert delay A (0-7:0,1,2,3,6,9,12,15) */
+#define TEDA5          2
+/* Address->OE/WE assert delay B (0-7:0,1,2,3,6,9,12,15) */
+#define TEDB5          4
+/* OE/WE negate->Address delay A (0-7:0,1,2,3,6,9,12,15) */
+#define TEHA5          2
+/* OE/WE negate->Address delay B (0-7:0,1,2,3,6,9,12,15) */
+#define TEHB5          3
+
+#define CS5BCR_D       ((IWW5<<28)|(IWRWD5<<24)|(IWRWS5<<20)|          \
+                       (IWRRD5<<16)|(IWRRS5<<12)|(BST5<<10)|           \
+                       (SZ5<<8)|(RDSPL5<<7)|(BW5<<4)|(MPX5<<3)|TYPE5)
+#define CS5WCR_D       ((ADS5<<28)|(ADH5<<24)|(RDS5<<20)|      \
+                       (RDH5<<16)|(WTS5<<12)|(WTH5<<8)|(BSH5<<4)|IW5)
+#define CS5PCR_D       ((SAA5<<28)|(SAB5<<24)|(PCWA5<<22)|             \
+                       (PCWB5<<20)|(PCIW5<<16)|(TEDA5<<12)|            \
+                       (TEDB5<<8)|(TEHA5<<4)|TEHB5)
+
+#define SMC0_BASE       0xb0800000      /* eth0 */
+#define SMC1_BASE       0xb0900000      /* eth1 */
+#define CF_BASE         0xb6100000      /* Compact Flash (I/O area) */
+#define IDE_BASE        0xb4000000      /* IDE */
+#define PC104_IO_BASE   0xb8000000
+#define PC104_MEM_BASE  0xba000000
+#define SMC_IO_SIZE     0x100
+
+#define CF_OFFSET       0x1f0
+#define IDE_OFFSET      0x170
+
+#endif /* __MACH_SH2007_H */
index e25f3c6..1086ba1 100644 (file)
@@ -14,7 +14,7 @@ CFLAGS_REMOVE_return_address.o = -pg
 obj-y  := clkdev.o debugtraps.o dma-nommu.o dumpstack.o                \
           idle.o io.o irq.o                                            \
           irq_$(BITS).o machvec.o nmi_debug.o process.o                \
-          process_$(BITS).o ptrace_$(BITS).o                           \
+          process_$(BITS).o ptrace.o ptrace_$(BITS).o                  \
           reboot.o return_address.o                                    \
           setup.o signal_$(BITS).o sys_sh.o sys_sh$(BITS).o            \
           syscalls_$(BITS).o time.o topology.o traps.o                 \
index d180f16..b93458f 100644 (file)
@@ -150,7 +150,7 @@ void __cpuinit cpu_probe(void)
                        boot_cpu_data.type = CPU_SH7724;
                        boot_cpu_data.flags |= CPU_HAS_L2_CACHE;
                        break;
-               case 0x50:
+               case 0x10:
                        boot_cpu_data.type = CPU_SH7757;
                        break;
                }
index 0a752bd..ce39a2a 100644 (file)
@@ -3,7 +3,7 @@
  *
  * SH7757 support for the clock framework
  *
- *  Copyright (C) 2009  Renesas Solutions Corp.
+ *  Copyright (C) 2009-2010  Renesas Solutions Corp.
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
 #include <asm/clock.h>
 #include <asm/freq.h>
 
-static int ifc_divisors[] = { 2, 1, 4, 1, 1, 8, 1, 1,
-                             16, 1, 1, 32, 1, 1, 1, 1 };
-static int sfc_divisors[] = { 2, 1, 4, 1, 1, 8, 1, 1,
-                             16, 1, 1, 32, 1, 1, 1, 1 };
-static int bfc_divisors[] = { 2, 1, 4, 1, 1, 8, 1, 1,
-                             16, 1, 1, 32, 1, 1, 1, 1 };
-static int p1fc_divisors[] = { 2, 1, 4, 1, 1, 8, 1, 1,
-                              16, 1, 1, 32, 1, 1, 1, 1 };
+/*
+ * Default rate for the root input clock, reset this with clk_set_rate()
+ * from the platform code.
+ */
+static struct clk extal_clk = {
+       .rate           = 48000000,
+};
 
-static void master_clk_init(struct clk *clk)
+static unsigned long pll_recalc(struct clk *clk)
 {
-       clk->rate = CONFIG_SH_PCLK_FREQ * 16;
-}
+       int multiplier;
 
-static struct clk_ops sh7757_master_clk_ops = {
-       .init           = master_clk_init,
-};
+       multiplier = test_mode_pin(MODE_PIN0) ? 24 : 16;
 
-static void module_clk_recalc(struct clk *clk)
-{
-       int idx = __raw_readl(FRQCR) & 0x0000000f;
-       clk->rate = clk->parent->rate / p1fc_divisors[idx];
+       return clk->parent->rate * multiplier;
 }
 
-static struct clk_ops sh7757_module_clk_ops = {
-       .recalc         = module_clk_recalc,
+static struct clk_ops pll_clk_ops = {
+       .recalc         = pll_recalc,
 };
 
-static void bus_clk_recalc(struct clk *clk)
-{
-       int idx = (__raw_readl(FRQCR) >> 8) & 0x0000000f;
-       clk->rate = clk->parent->rate / bfc_divisors[idx];
-}
+static struct clk pll_clk = {
+       .ops            = &pll_clk_ops,
+       .parent         = &extal_clk,
+       .flags          = CLK_ENABLE_ON_INIT,
+};
 
-static struct clk_ops sh7757_bus_clk_ops = {
-       .recalc         = bus_clk_recalc,
+static struct clk *clks[] = {
+       &extal_clk,
+       &pll_clk,
 };
 
-static void cpu_clk_recalc(struct clk *clk)
-{
-       int idx = (__raw_readl(FRQCR) >> 20) & 0x0000000f;
-       clk->rate = clk->parent->rate / ifc_divisors[idx];
-}
+static unsigned int div2[] = { 1, 1, 2, 1, 1, 4, 1, 6,
+                              1, 1, 1, 16, 1, 24, 1, 1 };
 
-static struct clk_ops sh7757_cpu_clk_ops = {
-       .recalc         = cpu_clk_recalc,
+static struct clk_div_mult_table div4_div_mult_table = {
+       .divisors = div2,
+       .nr_divisors = ARRAY_SIZE(div2),
 };
 
-static struct clk_ops *sh7757_clk_ops[] = {
-       &sh7757_master_clk_ops,
-       &sh7757_module_clk_ops,
-       &sh7757_bus_clk_ops,
-       &sh7757_cpu_clk_ops,
+static struct clk_div4_table div4_table = {
+       .div_mult_table = &div4_div_mult_table,
 };
 
-void __init arch_init_clk_ops(struct clk_ops **ops, int idx)
-{
-       if (idx < ARRAY_SIZE(sh7757_clk_ops))
-               *ops = sh7757_clk_ops[idx];
-}
+enum { DIV4_I, DIV4_SH, DIV4_P, DIV4_NR };
 
-static void shyway_clk_recalc(struct clk *clk)
-{
-       int idx = (__raw_readl(FRQCR) >> 12) & 0x0000000f;
-       clk->rate = clk->parent->rate / sfc_divisors[idx];
-}
-
-static struct clk_ops sh7757_shyway_clk_ops = {
-       .recalc         = shyway_clk_recalc,
-};
+#define DIV4(_bit, _mask, _flags) \
+  SH_CLK_DIV4(&pll_clk, FRQCR, _bit, _mask, _flags)
 
-static struct clk sh7757_shyway_clk = {
-       .flags          = CLK_ENABLE_ON_INIT,
-       .ops            = &sh7757_shyway_clk_ops,
+struct clk div4_clks[DIV4_NR] = {
+       /*
+        * P clock is always enable, because some P clock modules is used
+        * by Host PC.
+        */
+       [DIV4_P] = DIV4(0, 0x2800, CLK_ENABLE_ON_INIT),
+       [DIV4_SH] = DIV4(12, 0x00a0, CLK_ENABLE_ON_INIT),
+       [DIV4_I] = DIV4(20, 0x0004, CLK_ENABLE_ON_INIT),
 };
 
-/*
- * Additional sh7757-specific on-chip clocks that aren't already part of the
- * clock framework
- */
-static struct clk *sh7757_onchip_clocks[] = {
-       &sh7757_shyway_clk,
+#define MSTPCR0                0xffc80030
+#define MSTPCR1                0xffc80034
+
+enum { MSTP004, MSTP000, MSTP114, MSTP113, MSTP112,
+       MSTP111, MSTP110, MSTP103, MSTP102,
+       MSTP_NR };
+
+static struct clk mstp_clks[MSTP_NR] = {
+       /* MSTPCR0 */
+       [MSTP004] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR0, 4, 0),
+       [MSTP000] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR0, 0, 0),
+
+       /* MSTPCR1 */
+       [MSTP114] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 14, 0),
+       [MSTP113] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 13, 0),
+       [MSTP112] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 12, 0),
+       [MSTP111] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 11, 0),
+       [MSTP110] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 10, 0),
+       [MSTP103] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 3, 0),
+       [MSTP102] = SH_CLK_MSTP32(&div4_clks[DIV4_P], MSTPCR1, 2, 0),
 };
 
 #define CLKDEV_CON_ID(_id, _clk) { .con_id = _id, .clk = _clk }
 
 static struct clk_lookup lookups[] = {
        /* main clocks */
-       CLKDEV_CON_ID("shyway_clk", &sh7757_shyway_clk),
+       CLKDEV_CON_ID("extal", &extal_clk),
+       CLKDEV_CON_ID("pll_clk", &pll_clk),
+
+       /* DIV4 clocks */
+       CLKDEV_CON_ID("peripheral_clk", &div4_clks[DIV4_P]),
+       CLKDEV_CON_ID("shyway_clk", &div4_clks[DIV4_SH]),
+       CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]),
+
+       /* MSTP32 clocks */
+       CLKDEV_CON_ID("sdhi0", &mstp_clks[MSTP004]),
+       CLKDEV_CON_ID("riic", &mstp_clks[MSTP000]),
+       {
+               /* TMU0 */
+               .dev_id         = "sh_tmu.0",
+               .con_id         = "tmu_fck",
+               .clk            = &mstp_clks[MSTP113],
+       }, {
+               /* TMU1 */
+               .dev_id         = "sh_tmu.1",
+               .con_id         = "tmu_fck",
+               .clk            = &mstp_clks[MSTP114],
+       },
+       {
+               /* SCIF4 (But, ID is 2) */
+               .dev_id         = "sh-sci.2",
+               .con_id         = "sci_fck",
+               .clk            = &mstp_clks[MSTP112],
+       }, {
+               /* SCIF3 */
+               .dev_id         = "sh-sci.1",
+               .con_id         = "sci_fck",
+               .clk            = &mstp_clks[MSTP111],
+       }, {
+               /* SCIF2 */
+               .dev_id         = "sh-sci.0",
+               .con_id         = "sci_fck",
+               .clk            = &mstp_clks[MSTP110],
+       },
+       CLKDEV_CON_ID("usb0", &mstp_clks[MSTP102]),
 };
 
-static int __init sh7757_clk_init(void)
+int __init arch_clk_init(void)
 {
-       struct clk *clk = clk_get(NULL, "master_clk");
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(sh7757_onchip_clocks); i++) {
-               struct clk *clkp = sh7757_onchip_clocks[i];
+       int i, ret = 0;
 
-               clkp->parent = clk;
-               clk_register(clkp);
-               clk_enable(clkp);
-       }
+       for (i = 0; i < ARRAY_SIZE(clks); i++)
+               ret |= clk_register(clks[i]);
+       for (i = 0; i < ARRAY_SIZE(lookups); i++)
+               clkdev_add(&lookups[i]);
 
-       /*
-        * Now that we have the rest of the clocks registered, we need to
-        * force the parent clock to propagate so that these clocks will
-        * automatically figure out their rate. We cheat by handing the
-        * parent clock its current rate and forcing child propagation.
-        */
-       clk_set_rate(clk, clk_get_rate(clk));
+       if (!ret)
+               ret = sh_clk_div4_register(div4_clks, ARRAY_SIZE(div4_clks),
+                                          &div4_table);
+       if (!ret)
+               ret = sh_clk_mstp32_register(mstp_clks, MSTP_NR);
 
-       clk_put(clk);
-
-       clkdev_add_table(lookups, ARRAY_SIZE(lookups));
-
-       return 0;
+       return ret;
 }
 
-arch_initcall(sh7757_clk_init);
-
index ed23b15..4c74bd0 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * SH7757 (A0 step) Pinmux
+ * SH7757 (B0 step) Pinmux
  *
- *  Copyright (C) 2009  Renesas Solutions Corp.
+ *  Copyright (C) 2009-2010  Renesas Solutions Corp.
  *
  *  Author : Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
  *
- * Based on SH7757 Pinmux
+ * Based on SH7723 Pinmux
  *  Copyright (C) 2008  Magnus Damm
  *
  * This file is subject to the terms and conditions of the GNU General Public
@@ -40,27 +40,27 @@ enum {
        PTH3_DATA, PTH2_DATA, PTH1_DATA, PTH0_DATA,
        PTI7_DATA, PTI6_DATA, PTI5_DATA, PTI4_DATA,
        PTI3_DATA, PTI2_DATA, PTI1_DATA, PTI0_DATA,
-       PTJ7_DATA, PTJ6_DATA, PTJ5_DATA, PTJ4_DATA,
+                  PTJ6_DATA, PTJ5_DATA, PTJ4_DATA,
        PTJ3_DATA, PTJ2_DATA, PTJ1_DATA, PTJ0_DATA,
        PTK7_DATA, PTK6_DATA, PTK5_DATA, PTK4_DATA,
        PTK3_DATA, PTK2_DATA, PTK1_DATA, PTK0_DATA,
-       PTL7_DATA, PTL6_DATA, PTL5_DATA, PTL4_DATA,
+                  PTL6_DATA, PTL5_DATA, PTL4_DATA,
        PTL3_DATA, PTL2_DATA, PTL1_DATA, PTL0_DATA,
-       PTM6_DATA, PTM5_DATA, PTM4_DATA,
+       PTM7_DATA, PTM6_DATA, PTM5_DATA, PTM4_DATA,
        PTM3_DATA, PTM2_DATA, PTM1_DATA, PTM0_DATA,
-       PTN7_DATA, PTN6_DATA, PTN5_DATA, PTN4_DATA,
+                  PTN6_DATA, PTN5_DATA, PTN4_DATA,
        PTN3_DATA, PTN2_DATA, PTN1_DATA, PTN0_DATA,
        PTO7_DATA, PTO6_DATA, PTO5_DATA, PTO4_DATA,
        PTO3_DATA, PTO2_DATA, PTO1_DATA, PTO0_DATA,
-       PTP6_DATA, PTP5_DATA, PTP4_DATA,
+       PTP7_DATA, PTP6_DATA, PTP5_DATA, PTP4_DATA,
        PTP3_DATA, PTP2_DATA, PTP1_DATA, PTP0_DATA,
-       PTQ6_DATA, PTQ5_DATA, PTQ4_DATA,
+                  PTQ6_DATA, PTQ5_DATA, PTQ4_DATA,
        PTQ3_DATA, PTQ2_DATA, PTQ1_DATA, PTQ0_DATA,
        PTR7_DATA, PTR6_DATA, PTR5_DATA, PTR4_DATA,
        PTR3_DATA, PTR2_DATA, PTR1_DATA, PTR0_DATA,
        PTS7_DATA, PTS6_DATA, PTS5_DATA, PTS4_DATA,
        PTS3_DATA, PTS2_DATA, PTS1_DATA, PTS0_DATA,
-       PTT5_DATA, PTT4_DATA,
+       PTT7_DATA, PTT6_DATA, PTT5_DATA, PTT4_DATA,
        PTT3_DATA, PTT2_DATA, PTT1_DATA, PTT0_DATA,
        PTU7_DATA, PTU6_DATA, PTU5_DATA, PTU4_DATA,
        PTU3_DATA, PTU2_DATA, PTU1_DATA, PTU0_DATA,
@@ -95,27 +95,27 @@ enum {
        PTH3_IN, PTH2_IN, PTH1_IN, PTH0_IN,
        PTI7_IN, PTI6_IN, PTI5_IN, PTI4_IN,
        PTI3_IN, PTI2_IN, PTI1_IN, PTI0_IN,
-       PTJ7_IN, PTJ6_IN, PTJ5_IN, PTJ4_IN,
+                PTJ6_IN, PTJ5_IN, PTJ4_IN,
        PTJ3_IN, PTJ2_IN, PTJ1_IN, PTJ0_IN,
        PTK7_IN, PTK6_IN, PTK5_IN, PTK4_IN,
        PTK3_IN, PTK2_IN, PTK1_IN, PTK0_IN,
-       PTL7_IN, PTL6_IN, PTL5_IN, PTL4_IN,
+                PTL6_IN, PTL5_IN, PTL4_IN,
        PTL3_IN, PTL2_IN, PTL1_IN, PTL0_IN,
-       PTM6_IN, PTM5_IN, PTM4_IN,
+       PTM7_IN, PTM6_IN, PTM5_IN, PTM4_IN,
        PTM3_IN, PTM2_IN, PTM1_IN, PTM0_IN,
-       PTN7_IN, PTN6_IN, PTN5_IN, PTN4_IN,
+                PTN6_IN, PTN5_IN, PTN4_IN,
        PTN3_IN, PTN2_IN, PTN1_IN, PTN0_IN,
        PTO7_IN, PTO6_IN, PTO5_IN, PTO4_IN,
        PTO3_IN, PTO2_IN, PTO1_IN, PTO0_IN,
-       PTP6_IN, PTP5_IN, PTP4_IN,
+       PTP7_IN, PTP6_IN, PTP5_IN, PTP4_IN,
        PTP3_IN, PTP2_IN, PTP1_IN, PTP0_IN,
-       PTQ6_IN, PTQ5_IN, PTQ4_IN,
+                PTQ6_IN, PTQ5_IN, PTQ4_IN,
        PTQ3_IN, PTQ2_IN, PTQ1_IN, PTQ0_IN,
        PTR7_IN, PTR6_IN, PTR5_IN, PTR4_IN,
        PTR3_IN, PTR2_IN, PTR1_IN, PTR0_IN,
        PTS7_IN, PTS6_IN, PTS5_IN, PTS4_IN,
        PTS3_IN, PTS2_IN, PTS1_IN, PTS0_IN,
-       PTT5_IN, PTT4_IN,
+       PTT7_IN, PTT6_IN, PTT5_IN, PTT4_IN,
        PTT3_IN, PTT2_IN, PTT1_IN, PTT0_IN,
        PTU7_IN, PTU6_IN, PTU5_IN, PTU4_IN,
        PTU3_IN, PTU2_IN, PTU1_IN, PTU0_IN,
@@ -132,16 +132,43 @@ enum {
        PINMUX_INPUT_END,
 
        PINMUX_INPUT_PULLUP_BEGIN,
+       PTA7_IN_PU, PTA6_IN_PU, PTA5_IN_PU, PTA4_IN_PU,
+       PTA3_IN_PU, PTA2_IN_PU, PTA1_IN_PU, PTA0_IN_PU,
+       PTD7_IN_PU, PTD6_IN_PU, PTD5_IN_PU, PTD4_IN_PU,
+       PTD3_IN_PU, PTD2_IN_PU, PTD1_IN_PU, PTD0_IN_PU,
+       PTE7_IN_PU, PTE6_IN_PU, PTE5_IN_PU, PTE4_IN_PU,
+       PTE3_IN_PU, PTE2_IN_PU, PTE1_IN_PU, PTE0_IN_PU,
+       PTF7_IN_PU, PTF6_IN_PU, PTF5_IN_PU, PTF4_IN_PU,
+       PTF3_IN_PU, PTF2_IN_PU, PTF1_IN_PU, PTF0_IN_PU,
+       PTG7_IN_PU, PTG6_IN_PU,             PTG4_IN_PU,
+       PTH7_IN_PU, PTH6_IN_PU, PTH5_IN_PU, PTH4_IN_PU,
+       PTH3_IN_PU, PTH2_IN_PU, PTH1_IN_PU, PTH0_IN_PU,
+       PTI7_IN_PU, PTI6_IN_PU,             PTI4_IN_PU,
+       PTI3_IN_PU, PTI2_IN_PU, PTI1_IN_PU, PTI0_IN_PU,
+                   PTJ6_IN_PU, PTJ5_IN_PU, PTJ4_IN_PU,
+       PTJ3_IN_PU, PTJ2_IN_PU, PTJ1_IN_PU, PTJ0_IN_PU,
+       PTK7_IN_PU, PTK6_IN_PU, PTK5_IN_PU, PTK4_IN_PU,
+       PTK3_IN_PU, PTK2_IN_PU, PTK1_IN_PU, PTK0_IN_PU,
+                   PTL6_IN_PU, PTL5_IN_PU, PTL4_IN_PU,
+       PTL3_IN_PU, PTL2_IN_PU, PTL1_IN_PU, PTL0_IN_PU,
+       PTM7_IN_PU, PTM6_IN_PU, PTM5_IN_PU, PTM4_IN_PU,
+                                           PTN4_IN_PU,
+       PTN3_IN_PU, PTN2_IN_PU, PTN1_IN_PU, PTN0_IN_PU,
+       PTO7_IN_PU, PTO6_IN_PU, PTO5_IN_PU, PTO4_IN_PU,
+       PTO3_IN_PU, PTO2_IN_PU, PTO1_IN_PU, PTO0_IN_PU,
+       PTT7_IN_PU, PTT6_IN_PU, PTT5_IN_PU, PTT4_IN_PU,
+       PTT3_IN_PU, PTT2_IN_PU, PTT1_IN_PU, PTT0_IN_PU,
        PTU7_IN_PU, PTU6_IN_PU, PTU5_IN_PU, PTU4_IN_PU,
        PTU3_IN_PU, PTU2_IN_PU, PTU1_IN_PU, PTU0_IN_PU,
        PTV7_IN_PU, PTV6_IN_PU, PTV5_IN_PU, PTV4_IN_PU,
-       PTV3_IN_PU, PTV2_IN_PU, PTV1_IN_PU, PTV0_IN_PU,
-       PTW7_IN_PU, PTW6_IN_PU, PTW5_IN_PU, PTW4_IN_PU,
-       PTW3_IN_PU, PTW2_IN_PU, PTW1_IN_PU, PTW0_IN_PU,
+       PTV3_IN_PU, PTV2_IN_PU,
+                               PTW1_IN_PU, PTW0_IN_PU,
        PTX7_IN_PU, PTX6_IN_PU, PTX5_IN_PU, PTX4_IN_PU,
        PTX3_IN_PU, PTX2_IN_PU, PTX1_IN_PU, PTX0_IN_PU,
        PTY7_IN_PU, PTY6_IN_PU, PTY5_IN_PU, PTY4_IN_PU,
        PTY3_IN_PU, PTY2_IN_PU, PTY1_IN_PU, PTY0_IN_PU,
+       PTZ7_IN_PU, PTZ6_IN_PU, PTZ5_IN_PU, PTZ4_IN_PU,
+       PTZ3_IN_PU, PTZ2_IN_PU, PTZ1_IN_PU, PTZ0_IN_PU,
        PINMUX_INPUT_PULLUP_END,
 
        PINMUX_OUTPUT_BEGIN,
@@ -163,27 +190,27 @@ enum {
        PTH3_OUT, PTH2_OUT, PTH1_OUT, PTH0_OUT,
        PTI7_OUT, PTI6_OUT, PTI5_OUT, PTI4_OUT,
        PTI3_OUT, PTI2_OUT, PTI1_OUT, PTI0_OUT,
-       PTJ7_OUT, PTJ6_OUT, PTJ5_OUT, PTJ4_OUT,
+                 PTJ6_OUT, PTJ5_OUT, PTJ4_OUT,
        PTJ3_OUT, PTJ2_OUT, PTJ1_OUT, PTJ0_OUT,
        PTK7_OUT, PTK6_OUT, PTK5_OUT, PTK4_OUT,
        PTK3_OUT, PTK2_OUT, PTK1_OUT, PTK0_OUT,
-       PTL7_OUT, PTL6_OUT, PTL5_OUT, PTL4_OUT,
+                 PTL6_OUT, PTL5_OUT, PTL4_OUT,
        PTL3_OUT, PTL2_OUT, PTL1_OUT, PTL0_OUT,
-       PTM6_OUT, PTM5_OUT, PTM4_OUT,
+       PTM7_OUT, PTM6_OUT, PTM5_OUT, PTM4_OUT,
        PTM3_OUT, PTM2_OUT, PTM1_OUT, PTM0_OUT,
-       PTN7_OUT, PTN6_OUT, PTN5_OUT, PTN4_OUT,
+                 PTN6_OUT, PTN5_OUT, PTN4_OUT,
        PTN3_OUT, PTN2_OUT, PTN1_OUT, PTN0_OUT,
        PTO7_OUT, PTO6_OUT, PTO5_OUT, PTO4_OUT,
        PTO3_OUT, PTO2_OUT, PTO1_OUT, PTO0_OUT,
-       PTP6_OUT, PTP5_OUT, PTP4_OUT,
+       PTP7_OUT, PTP6_OUT, PTP5_OUT, PTP4_OUT,
        PTP3_OUT, PTP2_OUT, PTP1_OUT, PTP0_OUT,
-       PTQ6_OUT, PTQ5_OUT, PTQ4_OUT,
+                 PTQ6_OUT, PTQ5_OUT, PTQ4_OUT,
        PTQ3_OUT, PTQ2_OUT, PTQ1_OUT, PTQ0_OUT,
        PTR7_OUT, PTR6_OUT, PTR5_OUT, PTR4_OUT,
        PTR3_OUT, PTR2_OUT, PTR1_OUT, PTR0_OUT,
        PTS7_OUT, PTS6_OUT, PTS5_OUT, PTS4_OUT,
        PTS3_OUT, PTS2_OUT, PTS1_OUT, PTS0_OUT,
-       PTT5_OUT, PTT4_OUT,
+       PTT7_OUT, PTT6_OUT, PTT5_OUT, PTT4_OUT,
        PTT3_OUT, PTT2_OUT, PTT1_OUT, PTT0_OUT,
        PTU7_OUT, PTU6_OUT, PTU5_OUT, PTU4_OUT,
        PTU3_OUT, PTU2_OUT, PTU1_OUT, PTU0_OUT,
@@ -218,27 +245,27 @@ enum {
        PTH3_FN, PTH2_FN, PTH1_FN, PTH0_FN,
        PTI7_FN, PTI6_FN, PTI5_FN, PTI4_FN,
        PTI3_FN, PTI2_FN, PTI1_FN, PTI0_FN,
-       PTJ7_FN, PTJ6_FN, PTJ5_FN, PTJ4_FN,
+                PTJ6_FN, PTJ5_FN, PTJ4_FN,
        PTJ3_FN, PTJ2_FN, PTJ1_FN, PTJ0_FN,
        PTK7_FN, PTK6_FN, PTK5_FN, PTK4_FN,
        PTK3_FN, PTK2_FN, PTK1_FN, PTK0_FN,
-       PTL7_FN, PTL6_FN, PTL5_FN, PTL4_FN,
+                PTL6_FN, PTL5_FN, PTL4_FN,
        PTL3_FN, PTL2_FN, PTL1_FN, PTL0_FN,
-       PTM6_FN, PTM5_FN, PTM4_FN,
+       PTM7_FN, PTM6_FN, PTM5_FN, PTM4_FN,
        PTM3_FN, PTM2_FN, PTM1_FN, PTM0_FN,
-       PTN7_FN, PTN6_FN, PTN5_FN, PTN4_FN,
+                PTN6_FN, PTN5_FN, PTN4_FN,
        PTN3_FN, PTN2_FN, PTN1_FN, PTN0_FN,
        PTO7_FN, PTO6_FN, PTO5_FN, PTO4_FN,
        PTO3_FN, PTO2_FN, PTO1_FN, PTO0_FN,
-       PTP6_FN, PTP5_FN, PTP4_FN,
+       PTP7_FN, PTP6_FN, PTP5_FN, PTP4_FN,
        PTP3_FN, PTP2_FN, PTP1_FN, PTP0_FN,
-       PTQ6_FN, PTQ5_FN, PTQ4_FN,
+                PTQ6_FN, PTQ5_FN, PTQ4_FN,
        PTQ3_FN, PTQ2_FN, PTQ1_FN, PTQ0_FN,
        PTR7_FN, PTR6_FN, PTR5_FN, PTR4_FN,
        PTR3_FN, PTR2_FN, PTR1_FN, PTR0_FN,
        PTS7_FN, PTS6_FN, PTS5_FN, PTS4_FN,
        PTS3_FN, PTS2_FN, PTS1_FN, PTS0_FN,
-       PTT5_FN, PTT4_FN,
+       PTT7_FN, PTT6_FN, PTT5_FN, PTT4_FN,
        PTT3_FN, PTT2_FN, PTT1_FN, PTT0_FN,
        PTU7_FN, PTU6_FN, PTU5_FN, PTU4_FN,
        PTU3_FN, PTU2_FN, PTU1_FN, PTU0_FN,
@@ -253,181 +280,248 @@ enum {
        PTZ7_FN, PTZ6_FN, PTZ5_FN, PTZ4_FN,
        PTZ3_FN, PTZ2_FN, PTZ1_FN, PTZ0_FN,
 
-       PS0_15_FN1, PS0_15_FN3,
-       PS0_14_FN1, PS0_14_FN3,
-       PS0_13_FN1, PS0_13_FN3,
-       PS0_12_FN1, PS0_12_FN3,
+       PS0_15_FN1, PS0_15_FN2,
+       PS0_14_FN1, PS0_14_FN2,
+       PS0_13_FN1, PS0_13_FN2,
+       PS0_12_FN1, PS0_12_FN2,
+       PS0_11_FN1, PS0_11_FN2,
+       PS0_10_FN1, PS0_10_FN2,
+       PS0_9_FN1, PS0_9_FN2,
+       PS0_8_FN1, PS0_8_FN2,
        PS0_7_FN1, PS0_7_FN2,
        PS0_6_FN1, PS0_6_FN2,
        PS0_5_FN1, PS0_5_FN2,
        PS0_4_FN1, PS0_4_FN2,
        PS0_3_FN1, PS0_3_FN2,
        PS0_2_FN1, PS0_2_FN2,
-       PS0_1_FN1, PS0_1_FN2,
 
-       PS1_7_FN1, PS1_7_FN3,
-       PS1_6_FN1, PS1_6_FN3,
+       PS1_10_FN1, PS1_10_FN2,
+       PS1_9_FN1, PS1_9_FN2,
+       PS1_8_FN1, PS1_8_FN2,
+       PS1_2_FN1, PS1_2_FN2,
+
+       PS2_13_FN1, PS2_13_FN2,
+       PS2_12_FN1, PS2_12_FN2,
+       PS2_7_FN1, PS2_7_FN2,
+       PS2_6_FN1, PS2_6_FN2,
+       PS2_5_FN1, PS2_5_FN2,
+       PS2_4_FN1, PS2_4_FN2,
+       PS2_2_FN1, PS2_2_FN2,
+
+       PS3_15_FN1, PS3_15_FN2,
+       PS3_14_FN1, PS3_14_FN2,
+       PS3_13_FN1, PS3_13_FN2,
+       PS3_12_FN1, PS3_12_FN2,
+       PS3_11_FN1, PS3_11_FN2,
+       PS3_10_FN1, PS3_10_FN2,
+       PS3_9_FN1, PS3_9_FN2,
+       PS3_8_FN1, PS3_8_FN2,
+       PS3_7_FN1, PS3_7_FN2,
+       PS3_2_FN1, PS3_2_FN2,
+       PS3_1_FN1, PS3_1_FN2,
 
-       PS2_13_FN1, PS2_13_FN3,
-       PS2_12_FN1, PS2_12_FN3,
-       PS2_1_FN1, PS2_1_FN2,
-       PS2_0_FN1, PS2_0_FN2,
-
-       PS4_15_FN1, PS4_15_FN2,
        PS4_14_FN1, PS4_14_FN2,
        PS4_13_FN1, PS4_13_FN2,
        PS4_12_FN1, PS4_12_FN2,
-       PS4_11_FN1, PS4_11_FN2,
        PS4_10_FN1, PS4_10_FN2,
        PS4_9_FN1, PS4_9_FN2,
+       PS4_8_FN1, PS4_8_FN2,
+       PS4_4_FN1, PS4_4_FN2,
        PS4_3_FN1, PS4_3_FN2,
        PS4_2_FN1, PS4_2_FN2,
        PS4_1_FN1, PS4_1_FN2,
        PS4_0_FN1, PS4_0_FN2,
 
+       PS5_11_FN1, PS5_11_FN2,
+       PS5_10_FN1, PS5_10_FN2,
        PS5_9_FN1, PS5_9_FN2,
        PS5_8_FN1, PS5_8_FN2,
        PS5_7_FN1, PS5_7_FN2,
        PS5_6_FN1, PS5_6_FN2,
        PS5_5_FN1, PS5_5_FN2,
        PS5_4_FN1, PS5_4_FN2,
-
-       /* AN15 to 8 : EVENT15 to 8 */
-       PS6_7_FN_AN, PS6_7_FN_EV,
-       PS6_6_FN_AN, PS6_6_FN_EV,
-       PS6_5_FN_AN, PS6_5_FN_EV,
-       PS6_4_FN_AN, PS6_4_FN_EV,
-       PS6_3_FN_AN, PS6_3_FN_EV,
-       PS6_2_FN_AN, PS6_2_FN_EV,
-       PS6_1_FN_AN, PS6_1_FN_EV,
-       PS6_0_FN_AN, PS6_0_FN_EV,
-
+       PS5_3_FN1, PS5_3_FN2,
+       PS5_2_FN1, PS5_2_FN2,
+
+       PS6_15_FN1, PS6_15_FN2,
+       PS6_14_FN1, PS6_14_FN2,
+       PS6_13_FN1, PS6_13_FN2,
+       PS6_12_FN1, PS6_12_FN2,
+       PS6_11_FN1, PS6_11_FN2,
+       PS6_10_FN1, PS6_10_FN2,
+       PS6_9_FN1, PS6_9_FN2,
+       PS6_8_FN1, PS6_8_FN2,
+       PS6_7_FN1, PS6_7_FN2,
+       PS6_6_FN1, PS6_6_FN2,
+       PS6_5_FN1, PS6_5_FN2,
+       PS6_4_FN1, PS6_4_FN2,
+       PS6_3_FN1, PS6_3_FN2,
+       PS6_2_FN1, PS6_2_FN2,
+       PS6_1_FN1, PS6_1_FN2,
+       PS6_0_FN1, PS6_0_FN2,
+
+       PS7_15_FN1, PS7_15_FN2,
+       PS7_14_FN1, PS7_14_FN2,
+       PS7_13_FN1, PS7_13_FN2,
+       PS7_12_FN1, PS7_12_FN2,
+       PS7_11_FN1, PS7_11_FN2,
+       PS7_10_FN1, PS7_10_FN2,
+       PS7_9_FN1, PS7_9_FN2,
+       PS7_8_FN1, PS7_8_FN2,
+       PS7_7_FN1, PS7_7_FN2,
+       PS7_6_FN1, PS7_6_FN2,
+       PS7_5_FN1, PS7_5_FN2,
+       PS7_4_FN1, PS7_4_FN2,
+
+       PS8_15_FN1, PS8_15_FN2,
+       PS8_14_FN1, PS8_14_FN2,
+       PS8_13_FN1, PS8_13_FN2,
+       PS8_12_FN1, PS8_12_FN2,
+       PS8_11_FN1, PS8_11_FN2,
+       PS8_10_FN1, PS8_10_FN2,
+       PS8_9_FN1, PS8_9_FN2,
+       PS8_8_FN1, PS8_8_FN2,
        PINMUX_FUNCTION_END,
 
        PINMUX_MARK_BEGIN,
-       /* PTA (mobule: LBSC, CPG, LPC) */
+       /* PTA (mobule: LBSC, RGMII) */
        BS_MARK,        RDWR_MARK,      WE1_MARK,       RDY_MARK,
-       MD10_MARK,      MD9_MARK,       MD8_MARK,
-       LGPIO7_MARK,    LGPIO6_MARK,    LGPIO5_MARK,    LGPIO4_MARK,
-       LGPIO3_MARK,    LGPIO2_MARK,    LGPIO1_MARK,    LGPIO0_MARK,
-
-       /* PTB (mobule: LBSC, EtherC, SIM, LPC) */
-       D15_MARK,       D14_MARK,       D13_MARK,       D12_MARK,
-       D11_MARK,       D10_MARK,       D9_MARK,        D8_MARK,
        ET0_MDC_MARK,   ET0_MDIO_MARK,  ET1_MDC_MARK,   ET1_MDIO_MARK,
-       SIM_D_MARK,     SIM_CLK_MARK,   SIM_RST_MARK,
-       WPSZ1_MARK,     WPSZ0_MARK,     FWID_MARK,      FLSHSZ_MARK,
-       LPC_SPIEN_MARK, BASEL_MARK,
 
-       /* PTC (mobule: SD) */
-       SD_WP_MARK,     SD_CD_MARK,     SD_CLK_MARK,    SD_CMD_MARK,
-       SD_D3_MARK,     SD_D2_MARK,     SD_D1_MARK,     SD_D0_MARK,
+       /* PTB (mobule: INTC, ONFI, TMU) */
+       IRQ15_MARK,     IRQ14_MARK,     IRQ13_MARK,     IRQ12_MARK,
+       IRQ11_MARK,     IRQ10_MARK,     IRQ9_MARK,      IRQ8_MARK,
+       ON_NRE_MARK,    ON_NWE_MARK,    ON_NWP_MARK,    ON_NCE0_MARK,
+       ON_R_B0_MARK,   ON_ALE_MARK,    ON_CLE_MARK,    TCLK_MARK,
 
-       /* PTD (mobule: INTC, SPI0, LBSC, CPG, ADC) */
+       /* PTC (mobule: IRQ, PWMU) */
        IRQ7_MARK,      IRQ6_MARK,      IRQ5_MARK,      IRQ4_MARK,
        IRQ3_MARK,      IRQ2_MARK,      IRQ1_MARK,      IRQ0_MARK,
-       MD6_MARK,       MD5_MARK,       MD3_MARK,       MD2_MARK,
-       MD1_MARK,       MD0_MARK,       ADTRG1_MARK,    ADTRG0_MARK,
-
-       /* PTE (mobule: EtherC) */
-       ET0_CRS_DV_MARK,        ET0_TXD1_MARK,
-       ET0_TXD0_MARK,          ET0_TX_EN_MARK,
-       ET0_REF_CLK_MARK,       ET0_RXD1_MARK,
-       ET0_RXD0_MARK,          ET0_RX_ER_MARK,
-
-       /* PTF (mobule: EtherC) */
-       ET1_CRS_DV_MARK,        ET1_TXD1_MARK,
-       ET1_TXD0_MARK,          ET1_TX_EN_MARK,
-       ET1_REF_CLK_MARK,       ET1_RXD1_MARK,
-       ET1_RXD0_MARK,          ET1_RX_ER_MARK,
-
-       /* PTG (mobule: SYSTEM, PWMX, LPC) */
-       STATUS0_MARK,   STATUS1_MARK,
-       PWX0_MARK,      PWX1_MARK,      PWX2_MARK,      PWX3_MARK,
-       SERIRQ_MARK,    CLKRUN_MARK,    LPCPD_MARK,     LDRQ_MARK,
-
-       /* PTH (mobule: TMU, SCIF234, SPI1, SPI0) */
-       TCLK_MARK,      RXD4_MARK,      TXD4_MARK,
+       PWMU0_MARK,     PWMU1_MARK,     PWMU2_MARK,     PWMU3_MARK,
+       PWMU4_MARK,     PWMU5_MARK,
+
+       /* PTD (mobule: SPI0, DMAC) */
+       SP0_MOSI_MARK,  SP0_MISO_MARK,  SP0_SCK_MARK,   SP0_SCK_FB_MARK,
+       SP0_SS0_MARK,   SP0_SS1_MARK,   SP0_SS2_MARK,   SP0_SS3_MARK,
+       DREQ0_MARK,     DACK0_MARK,     TEND0_MARK,
+
+       /* PTE (mobule: RMII) */
+       RMII0_CRS_DV_MARK,      RMII0_TXD1_MARK,
+       RMII0_TXD0_MARK,        RMII0_TXEN_MARK,
+       RMII0_REFCLK_MARK,      RMII0_RXD1_MARK,
+       RMII0_RXD0_MARK,        RMII0_RX_ER_MARK,
+
+       /* PTF (mobule: RMII, SerMux) */
+       RMII1_CRS_DV_MARK,      RMII1_TXD1_MARK,
+       RMII1_TXD0_MARK,        RMII1_TXEN_MARK,
+       RMII1_REFCLK_MARK,      RMII1_RXD1_MARK,
+       RMII1_RXD0_MARK,        RMII1_RX_ER_MARK,
+       RAC_RI_MARK,
+
+       /* PTG (mobule: system, LBSC, LPC, WDT, LPC, eMMC) */
+       BOOTFMS_MARK,   BOOTWP_MARK,    A25_MARK,       A24_MARK,
+       SERIRQ_MARK,    WDTOVF_MARK,    LPCPD_MARK,     LDRQ_MARK,
+       MMCCLK_MARK,    MMCCMD_MARK,
+
+       /* PTH (mobule: SPI1, LPC, DMAC, ADC) */
        SP1_MOSI_MARK,  SP1_MISO_MARK,  SP1_SCK_MARK,   SP1_SCK_FB_MARK,
-       SP1_SS0_MARK,   SP1_SS1_MARK,   SP0_SS1_MARK,
+       SP1_SS0_MARK,   SP1_SS1_MARK,   WP_MARK,        FMS0_MARK,
+       TEND1_MARK,     DREQ1_MARK,     DACK1_MARK,     ADTRG1_MARK,
+       ADTRG0_MARK,
 
-       /* PTI (mobule: INTC) */
-       IRQ15_MARK,     IRQ14_MARK,     IRQ13_MARK,     IRQ12_MARK,
-       IRQ11_MARK,     IRQ10_MARK,     IRQ9_MARK,      IRQ8_MARK,
+       /* PTI (mobule: LBSC, SDHI) */
+       D15_MARK,       D14_MARK,       D13_MARK,       D12_MARK,
+       D11_MARK,       D10_MARK,       D9_MARK,        D8_MARK,
+       SD_WP_MARK,     SD_CD_MARK,     SD_CLK_MARK,    SD_CMD_MARK,
+       SD_D3_MARK,     SD_D2_MARK,     SD_D1_MARK,     SD_D0_MARK,
 
-       /* PTJ (mobule: SCIF234, SERMUX) */
-       RXD3_MARK,      TXD3_MARK,      RXD2_MARK,      TXD2_MARK,
-       COM1_TXD_MARK,  COM1_RXD_MARK,  COM1_RTS_MARK,  COM1_CTS_MARK,
+       /* PTJ (mobule: SCIF234) */
+       RTS3_MARK,      CTS3_MARK,      TXD3_MARK,      RXD3_MARK,
+       RTS4_MARK,      RXD4_MARK,      TXD4_MARK,
 
-       /* PTK (mobule: SERMUX) */
+       /* PTK (mobule: SERMUX, LBSC, SCIF) */
        COM2_TXD_MARK,  COM2_RXD_MARK,  COM2_RTS_MARK,  COM2_CTS_MARK,
-       COM2_DTR_MARK,  COM2_DSR_MARK,  COM2_DCD_MARK,  COM2_RI_MARK,
+       COM2_DTR_MARK,  COM2_DSR_MARK,  COM2_DCD_MARK,  CLKOUT_MARK,
+       SCK2_MARK,      SCK4_MARK,      SCK3_MARK,
 
-       /* PTL (mobule: SERMUX) */
-       RAC_TXD_MARK,   RAC_RXD_MARK,   RAC_RTS_MARK,   RAC_CTS_MARK,
-       RAC_DTR_MARK,   RAC_DSR_MARK,   RAC_DCD_MARK,   RAC_RI_MARK,
+       /* PTL (mobule: SERMUX, SCIF, LBSC, AUD) */
+       RAC_RXD_MARK,   RAC_RTS_MARK,   RAC_CTS_MARK,   RAC_DTR_MARK,
+       RAC_DSR_MARK,   RAC_DCD_MARK,   RAC_TXD_MARK,   RXD2_MARK,
+       CS5_MARK,       CS6_MARK,       AUDSYNC_MARK,   AUDCK_MARK,
+       TXD2_MARK,
 
-       /* PTM (mobule: IIC, LPC) */
+       /* PTM (mobule: LBSC, IIC) */
+       CS4_MARK,       RD_MARK,        WE0_MARK,       CS0_MARK,
        SDA6_MARK,      SCL6_MARK,      SDA7_MARK,      SCL7_MARK,
-       WP_MARK,        FMS0_MARK,      FMS1_MARK,
 
-       /* PTN (mobule: SCIF234, EVC) */
-       SCK2_MARK,      RTS4_MARK,      RTS3_MARK,      RTS2_MARK,
-       CTS4_MARK,      CTS3_MARK,      CTS2_MARK,
-       EVENT7_MARK,    EVENT6_MARK,    EVENT5_MARK,    EVENT4_MARK,
-       EVENT3_MARK,    EVENT2_MARK,    EVENT1_MARK,    EVENT0_MARK,
+       /* PTN (mobule: USB, JMC, SGPIO, WDT) */
+       VBUS_EN_MARK,   VBUS_OC_MARK,   JMCTCK_MARK,    JMCTMS_MARK,
+       JMCTDO_MARK,    JMCTDI_MARK,    JMCTRST_MARK,
+       SGPIO1_CLK_MARK,        SGPIO1_LOAD_MARK,       SGPIO1_DI_MARK,
+       SGPIO1_DO_MARK,         SUB_CLKIN_MARK,
 
-       /* PTO (mobule: SGPIO) */
-       SGPIO0_CLK_MARK,        SGPIO0_LOAD_MARK,
-       SGPIO0_DI_MARK,         SGPIO0_DO_MARK,
-       SGPIO1_CLK_MARK,        SGPIO1_LOAD_MARK,
-       SGPIO1_DI_MARK,         SGPIO1_DO_MARK,
-
-       /* PTP (mobule: JMC, SCIF234) */
-       JMCTCK_MARK,    JMCTMS_MARK,    JMCTDO_MARK,    JMCTDI_MARK,
-       JMCRST_MARK,    SCK4_MARK,      SCK3_MARK,
+       /* PTO (mobule: SGPIO, SerMux) */
+       SGPIO0_CLK_MARK,        SGPIO0_LOAD_MARK,       SGPIO0_DI_MARK,
+       SGPIO0_DO_MARK,         SGPIO2_CLK_MARK,        SGPIO2_LOAD_MARK,
+       SGPIO2_DI_MARK,         SGPIO2_DO_MARK,
+       COM1_TXD_MARK,  COM1_RXD_MARK,  COM1_RTS_MARK,  COM1_CTS_MARK,
 
        /* PTQ (mobule: LPC) */
        LAD3_MARK,      LAD2_MARK,      LAD1_MARK,      LAD0_MARK,
        LFRAME_MARK,    LRESET_MARK,    LCLK_MARK,
 
        /* PTR (mobule: GRA, IIC) */
-       DDC3_MARK,      DDC2_MARK,
-       SDA8_MARK,      SCL8_MARK,      SDA2_MARK,      SCL2_MARK,
+       DDC3_MARK,      DDC2_MARK,      SDA2_MARK,      SCL2_MARK,
        SDA1_MARK,      SCL1_MARK,      SDA0_MARK,      SCL0_MARK,
+       SDA8_MARK,      SCL8_MARK,
 
        /* PTS (mobule: GRA, IIC) */
-       DDC1_MARK,      DDC0_MARK,
-       SDA9_MARK,      SCL9_MARK,      SDA5_MARK,      SCL5_MARK,
+       DDC1_MARK,      DDC0_MARK,      SDA5_MARK,      SCL5_MARK,
        SDA4_MARK,      SCL4_MARK,      SDA3_MARK,      SCL3_MARK,
+       SDA9_MARK,      SCL9_MARK,
 
-       /* PTT (mobule: SYSTEM, PWMX) */
-       AUDSYNC_MARK,           AUDCK_MARK,
-       AUDATA3_MARK,           AUDATA2_MARK,
-       AUDATA1_MARK,           AUDATA0_MARK,
-       PWX7_MARK,      PWX6_MARK,      PWX5_MARK,      PWX4_MARK,
+       /* PTT (mobule: PWMX, AUD) */
+       PWMX7_MARK,     PWMX6_MARK,     PWMX5_MARK,     PWMX4_MARK,
+       PWMX3_MARK,     PWMX2_MARK,     PWMX1_MARK,     PWMX0_MARK,
+       AUDATA3_MARK,   AUDATA2_MARK,   AUDATA1_MARK,   AUDATA0_MARK,
+       STATUS1_MARK,   STATUS0_MARK,
 
-       /* PTU (mobule: LBSC, DMAC) */
-       CS6_MARK,       CS5_MARK,       CS4_MARK,       CS0_MARK,
-       RD_MARK,        WE0_MARK,       A25_MARK,       A24_MARK,
-       DREQ0_MARK,     DACK0_MARK,
+       /* PTU (mobule: LPC, APM) */
+       LGPIO7_MARK,    LGPIO6_MARK,    LGPIO5_MARK,    LGPIO4_MARK,
+       LGPIO3_MARK,    LGPIO2_MARK,    LGPIO1_MARK,    LGPIO0_MARK,
+       APMONCTL_O_MARK,        APMPWBTOUT_O_MARK,      APMSCI_O_MARK,
+       APMVDDON_MARK,  APMSLPBTN_MARK, APMPWRBTN_MARK, APMS5N_MARK,
+       APMS3N_MARK,
 
-       /* PTV (mobule: LBSC, DMAC) */
+       /* PTV (mobule: LBSC, SerMux, R-SPI, EVC, GRA) */
        A23_MARK,       A22_MARK,       A21_MARK,       A20_MARK,
        A19_MARK,       A18_MARK,       A17_MARK,       A16_MARK,
-       TEND0_MARK,     DREQ1_MARK,     DACK1_MARK,     TEND1_MARK,
+       COM2_RI_MARK,           R_SPI_MOSI_MARK,        R_SPI_MISO_MARK,
+       R_SPI_RSPCK_MARK,       R_SPI_SSL0_MARK,        R_SPI_SSL1_MARK,
+       EVENT7_MARK,    EVENT6_MARK,    VBIOS_DI_MARK,  VBIOS_DO_MARK,
+       VBIOS_CLK_MARK, VBIOS_CS_MARK,
 
-       /* PTW (mobule: LBSC) */
+       /* PTW (mobule: LBSC, EVC, SCIF) */
        A15_MARK,       A14_MARK,       A13_MARK,       A12_MARK,
        A11_MARK,       A10_MARK,       A9_MARK,        A8_MARK,
+       EVENT5_MARK,    EVENT4_MARK,    EVENT3_MARK,    EVENT2_MARK,
+       EVENT1_MARK,    EVENT0_MARK,    CTS4_MARK,      CTS2_MARK,
 
-       /* PTX (mobule: LBSC) */
+       /* PTX (mobule: LBSC, SCIF, SIM) */
        A7_MARK,        A6_MARK,        A5_MARK,        A4_MARK,
        A3_MARK,        A2_MARK,        A1_MARK,        A0_MARK,
+       RTS2_MARK,      SIM_D_MARK,     SIM_CLK_MARK,   SIM_RST_MARK,
 
        /* PTY (mobule: LBSC) */
        D7_MARK,        D6_MARK,        D5_MARK,        D4_MARK,
        D3_MARK,        D2_MARK,        D1_MARK,        D0_MARK,
+
+       /* PTZ (mobule: eMMC, ONFI) */
+       MMCDAT7_MARK,   MMCDAT6_MARK,   MMCDAT5_MARK,   MMCDAT4_MARK,
+       MMCDAT3_MARK,   MMCDAT2_MARK,   MMCDAT1_MARK,   MMCDAT0_MARK,
+       ON_DQ7_MARK,    ON_DQ6_MARK,    ON_DQ5_MARK,    ON_DQ4_MARK,
+       ON_DQ3_MARK,    ON_DQ2_MARK,    ON_DQ1_MARK,    ON_DQ0_MARK,
+
        PINMUX_MARK_END,
 };
 
@@ -473,6 +567,8 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTD0_DATA, PTD0_IN, PTD0_OUT),
 
        /* PTE GPIO */
+       PINMUX_DATA(PTE7_DATA, PTE7_IN, PTE7_OUT),
+       PINMUX_DATA(PTE6_DATA, PTE6_IN, PTE6_OUT),
        PINMUX_DATA(PTE5_DATA, PTE5_IN, PTE5_OUT),
        PINMUX_DATA(PTE4_DATA, PTE4_IN, PTE4_OUT),
        PINMUX_DATA(PTE3_DATA, PTE3_IN, PTE3_OUT),
@@ -521,7 +617,6 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTI0_DATA, PTI0_IN, PTI0_OUT),
 
        /* PTJ GPIO */
-       PINMUX_DATA(PTJ7_DATA, PTJ7_IN, PTJ7_OUT),
        PINMUX_DATA(PTJ6_DATA, PTJ6_IN, PTJ6_OUT),
        PINMUX_DATA(PTJ5_DATA, PTJ5_IN, PTJ5_OUT),
        PINMUX_DATA(PTJ4_DATA, PTJ4_IN, PTJ4_OUT),
@@ -541,7 +636,6 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTK0_DATA, PTK0_IN, PTK0_OUT),
 
        /* PTL GPIO */
-       PINMUX_DATA(PTL7_DATA, PTL7_IN, PTL7_OUT),
        PINMUX_DATA(PTL6_DATA, PTL6_IN, PTL6_OUT),
        PINMUX_DATA(PTL5_DATA, PTL5_IN, PTL5_OUT),
        PINMUX_DATA(PTL4_DATA, PTL4_IN, PTL4_OUT),
@@ -560,7 +654,6 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTM0_DATA, PTM0_IN, PTM0_OUT),
 
        /* PTN GPIO */
-       PINMUX_DATA(PTN7_DATA, PTN7_IN, PTN7_OUT),
        PINMUX_DATA(PTN6_DATA, PTN6_IN, PTN6_OUT),
        PINMUX_DATA(PTN5_DATA, PTN5_IN, PTN5_OUT),
        PINMUX_DATA(PTN4_DATA, PTN4_IN, PTN4_OUT),
@@ -609,6 +702,8 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTS0_DATA, PTS0_IN, PTS0_OUT),
 
        /* PTT GPIO */
+       PINMUX_DATA(PTT7_DATA, PTT7_IN, PTT7_OUT),
+       PINMUX_DATA(PTT6_DATA, PTT6_IN, PTT6_OUT),
        PINMUX_DATA(PTT5_DATA, PTT5_IN, PTT5_OUT),
        PINMUX_DATA(PTT4_DATA, PTT4_IN, PTT4_OUT),
        PINMUX_DATA(PTT3_DATA, PTT3_IN, PTT3_OUT),
@@ -677,186 +772,204 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PTZ0_DATA, PTZ0_IN, PTZ0_OUT),
 
        /* PTA FN */
-       PINMUX_DATA(BS_MARK, PS0_15_FN1, PTA7_FN),
-       PINMUX_DATA(LGPIO7_MARK, PS0_15_FN3, PTA7_FN),
-       PINMUX_DATA(RDWR_MARK, PS0_14_FN1, PTA6_FN),
-       PINMUX_DATA(LGPIO6_MARK, PS0_14_FN3, PTA6_FN),
-       PINMUX_DATA(WE1_MARK, PS0_13_FN1, PTA5_FN),
-       PINMUX_DATA(LGPIO5_MARK, PS0_13_FN3, PTA5_FN),
-       PINMUX_DATA(RDY_MARK, PS0_12_FN1, PTA4_FN),
-       PINMUX_DATA(LGPIO4_MARK, PS0_12_FN3, PTA4_FN),
-       PINMUX_DATA(LGPIO3_MARK, PTA3_FN),
-       PINMUX_DATA(LGPIO2_MARK, PTA2_FN),
-       PINMUX_DATA(LGPIO1_MARK, PTA1_FN),
-       PINMUX_DATA(LGPIO0_MARK, PTA0_FN),
+       PINMUX_DATA(BS_MARK, PTA7_FN),
+       PINMUX_DATA(RDWR_MARK, PTA6_FN),
+       PINMUX_DATA(WE1_MARK, PTA5_FN),
+       PINMUX_DATA(RDY_MARK, PTA4_FN),
+       PINMUX_DATA(ET0_MDC_MARK, PTA3_FN),
+       PINMUX_DATA(ET0_MDIO_MARK, PTA2_FN),
+       PINMUX_DATA(ET1_MDC_MARK, PTA1_FN),
+       PINMUX_DATA(ET1_MDIO_MARK, PTA0_FN),
 
        /* PTB FN */
-       PINMUX_DATA(D15_MARK, PS0_7_FN1, PTB7_FN),
-       PINMUX_DATA(ET0_MDC_MARK, PS0_7_FN2, PTB7_FN),
-       PINMUX_DATA(D14_MARK, PS0_6_FN1, PTB6_FN),
-       PINMUX_DATA(ET0_MDIO_MARK, PS0_6_FN2, PTB6_FN),
-       PINMUX_DATA(D13_MARK, PS0_5_FN1, PTB5_FN),
-       PINMUX_DATA(ET1_MDC_MARK, PS0_5_FN2, PTB5_FN),
-       PINMUX_DATA(D12_MARK, PS0_4_FN1, PTB4_FN),
-       PINMUX_DATA(ET1_MDIO_MARK, PS0_4_FN2, PTB4_FN),
-       PINMUX_DATA(D11_MARK, PS0_3_FN1, PTB3_FN),
-       PINMUX_DATA(SIM_D_MARK, PS0_3_FN2, PTB3_FN),
-       PINMUX_DATA(D10_MARK, PS0_2_FN1, PTB2_FN),
-       PINMUX_DATA(SIM_CLK_MARK, PS0_2_FN2, PTB2_FN),
-       PINMUX_DATA(D9_MARK, PS0_1_FN1, PTB1_FN),
-       PINMUX_DATA(SIM_RST_MARK, PS0_1_FN2, PTB1_FN),
-       PINMUX_DATA(D8_MARK, PTB0_FN),
+       PINMUX_DATA(IRQ15_MARK, PS0_15_FN1, PTB7_FN),
+       PINMUX_DATA(ON_NRE_MARK, PS0_15_FN2, PTB7_FN),
+       PINMUX_DATA(IRQ14_MARK, PS0_14_FN1, PTB6_FN),
+       PINMUX_DATA(ON_NWE_MARK, PS0_14_FN2, PTB6_FN),
+       PINMUX_DATA(IRQ13_MARK, PS0_13_FN1, PTB5_FN),
+       PINMUX_DATA(ON_NWP_MARK, PS0_13_FN2, PTB5_FN),
+       PINMUX_DATA(IRQ12_MARK, PS0_12_FN1, PTB4_FN),
+       PINMUX_DATA(ON_NCE0_MARK, PS0_12_FN2, PTB4_FN),
+       PINMUX_DATA(IRQ11_MARK, PS0_11_FN1, PTB3_FN),
+       PINMUX_DATA(ON_R_B0_MARK, PS0_11_FN2, PTB3_FN),
+       PINMUX_DATA(IRQ10_MARK, PS0_10_FN1, PTB2_FN),
+       PINMUX_DATA(ON_ALE_MARK, PS0_10_FN2, PTB2_FN),
+       PINMUX_DATA(IRQ9_MARK, PS0_9_FN1, PTB1_FN),
+       PINMUX_DATA(ON_CLE_MARK, PS0_9_FN2, PTB1_FN),
+       PINMUX_DATA(IRQ8_MARK, PS0_8_FN1, PTB0_FN),
+       PINMUX_DATA(TCLK_MARK, PS0_8_FN2, PTB0_FN),
 
        /* PTC FN */
-       PINMUX_DATA(SD_WP_MARK, PTC7_FN),
-       PINMUX_DATA(SD_CD_MARK, PTC6_FN),
-       PINMUX_DATA(SD_CLK_MARK, PTC5_FN),
-       PINMUX_DATA(SD_CMD_MARK, PTC4_FN),
-       PINMUX_DATA(SD_D3_MARK, PTC3_FN),
-       PINMUX_DATA(SD_D2_MARK, PTC2_FN),
-       PINMUX_DATA(SD_D1_MARK, PTC1_FN),
-       PINMUX_DATA(SD_D0_MARK, PTC0_FN),
+       PINMUX_DATA(IRQ7_MARK, PS0_7_FN1, PTC7_FN),
+       PINMUX_DATA(PWMU0_MARK, PS0_7_FN2, PTC7_FN),
+       PINMUX_DATA(IRQ6_MARK, PS0_6_FN1, PTC6_FN),
+       PINMUX_DATA(PWMU1_MARK, PS0_6_FN2, PTC6_FN),
+       PINMUX_DATA(IRQ5_MARK, PS0_5_FN1, PTC5_FN),
+       PINMUX_DATA(PWMU2_MARK, PS0_5_FN2, PTC5_FN),
+       PINMUX_DATA(IRQ4_MARK, PS0_4_FN1, PTC5_FN),
+       PINMUX_DATA(PWMU3_MARK, PS0_4_FN2, PTC4_FN),
+       PINMUX_DATA(IRQ3_MARK, PS0_3_FN1, PTC3_FN),
+       PINMUX_DATA(PWMU4_MARK, PS0_3_FN2, PTC3_FN),
+       PINMUX_DATA(IRQ2_MARK, PS0_2_FN1, PTC2_FN),
+       PINMUX_DATA(PWMU5_MARK, PS0_2_FN2, PTC2_FN),
+       PINMUX_DATA(IRQ1_MARK, PTC1_FN),
+       PINMUX_DATA(IRQ0_MARK, PTC0_FN),
 
        /* PTD FN */
-       PINMUX_DATA(IRQ7_MARK, PS1_7_FN1, PTD7_FN),
-       PINMUX_DATA(ADTRG1_MARK, PS1_7_FN3, PTD7_FN),
-       PINMUX_DATA(IRQ6_MARK, PS1_6_FN1, PTD6_FN),
-       PINMUX_DATA(ADTRG0_MARK, PS1_6_FN3, PTD6_FN),
-       PINMUX_DATA(IRQ5_MARK, PTD5_FN),
-       PINMUX_DATA(IRQ4_MARK, PTD4_FN),
-       PINMUX_DATA(IRQ3_MARK, PTD3_FN),
-       PINMUX_DATA(IRQ2_MARK, PTD2_FN),
-       PINMUX_DATA(IRQ1_MARK, PTD1_FN),
-       PINMUX_DATA(IRQ0_MARK, PTD0_FN),
+       PINMUX_DATA(SP0_MOSI_MARK, PTD7_FN),
+       PINMUX_DATA(SP0_MISO_MARK, PTD6_FN),
+       PINMUX_DATA(SP0_SCK_MARK, PTD5_FN),
+       PINMUX_DATA(SP0_SCK_FB_MARK, PTD4_FN),
+       PINMUX_DATA(SP0_SS0_MARK, PTD3_FN),
+       PINMUX_DATA(SP0_SS1_MARK, PS1_10_FN1, PTD2_FN),
+       PINMUX_DATA(DREQ0_MARK, PS1_10_FN2, PTD2_FN),
+       PINMUX_DATA(SP0_SS2_MARK, PS1_9_FN1, PTD1_FN),
+       PINMUX_DATA(DACK0_MARK, PS1_9_FN2, PTD1_FN),
+       PINMUX_DATA(SP0_SS3_MARK, PS1_8_FN1, PTD0_FN),
+       PINMUX_DATA(TEND0_MARK, PS1_8_FN2, PTD0_FN),
 
        /* PTE FN */
-       PINMUX_DATA(ET0_CRS_DV_MARK, PTE7_FN),
-       PINMUX_DATA(ET0_TXD1_MARK, PTE6_FN),
-       PINMUX_DATA(ET0_TXD0_MARK, PTE5_FN),
-       PINMUX_DATA(ET0_TX_EN_MARK, PTE4_FN),
-       PINMUX_DATA(ET0_REF_CLK_MARK, PTE3_FN),
-       PINMUX_DATA(ET0_RXD1_MARK, PTE2_FN),
-       PINMUX_DATA(ET0_RXD0_MARK, PTE1_FN),
-       PINMUX_DATA(ET0_RX_ER_MARK, PTE0_FN),
+       PINMUX_DATA(RMII0_CRS_DV_MARK, PTE7_FN),
+       PINMUX_DATA(RMII0_TXD1_MARK, PTE6_FN),
+       PINMUX_DATA(RMII0_TXD0_MARK, PTE5_FN),
+       PINMUX_DATA(RMII0_TXEN_MARK, PTE4_FN),
+       PINMUX_DATA(RMII0_REFCLK_MARK, PTE3_FN),
+       PINMUX_DATA(RMII0_RXD1_MARK, PTE2_FN),
+       PINMUX_DATA(RMII0_RXD0_MARK, PTE1_FN),
+       PINMUX_DATA(RMII0_RX_ER_MARK, PTE0_FN),
 
        /* PTF FN */
-       PINMUX_DATA(ET1_CRS_DV_MARK, PTF7_FN),
-       PINMUX_DATA(ET1_TXD1_MARK, PTF6_FN),
-       PINMUX_DATA(ET1_TXD0_MARK, PTF5_FN),
-       PINMUX_DATA(ET1_TX_EN_MARK, PTF4_FN),
-       PINMUX_DATA(ET1_REF_CLK_MARK, PTF3_FN),
-       PINMUX_DATA(ET1_RXD1_MARK, PTF2_FN),
-       PINMUX_DATA(ET1_RXD0_MARK, PTF1_FN),
-       PINMUX_DATA(ET1_RX_ER_MARK, PTF0_FN),
+       PINMUX_DATA(RMII1_CRS_DV_MARK, PTF7_FN),
+       PINMUX_DATA(RMII1_TXD1_MARK, PTF6_FN),
+       PINMUX_DATA(RMII1_TXD0_MARK, PTF5_FN),
+       PINMUX_DATA(RMII1_TXEN_MARK, PTF4_FN),
+       PINMUX_DATA(RMII1_REFCLK_MARK, PTF3_FN),
+       PINMUX_DATA(RMII1_RXD1_MARK, PS1_2_FN1, PTF2_FN),
+       PINMUX_DATA(RAC_RI_MARK, PS1_2_FN2, PTF2_FN),
+       PINMUX_DATA(RMII1_RXD0_MARK, PTF1_FN),
+       PINMUX_DATA(RMII1_RX_ER_MARK, PTF0_FN),
 
        /* PTG FN */
-       PINMUX_DATA(PWX0_MARK, PTG7_FN),
-       PINMUX_DATA(PWX1_MARK, PTG6_FN),
-       PINMUX_DATA(STATUS0_MARK, PS2_13_FN1, PTG5_FN),
-       PINMUX_DATA(PWX2_MARK, PS2_13_FN3, PTG5_FN),
-       PINMUX_DATA(STATUS1_MARK, PS2_12_FN1, PTG4_FN),
-       PINMUX_DATA(PWX3_MARK, PS2_12_FN3, PTG4_FN),
+       PINMUX_DATA(BOOTFMS_MARK, PTG7_FN),
+       PINMUX_DATA(BOOTWP_MARK, PTG6_FN),
+       PINMUX_DATA(A25_MARK, PS2_13_FN1, PTG5_FN),
+       PINMUX_DATA(MMCCLK_MARK, PS2_13_FN2, PTG5_FN),
+       PINMUX_DATA(A24_MARK, PS2_12_FN1, PTG4_FN),
+       PINMUX_DATA(MMCCMD_MARK, PS2_12_FN2, PTG4_FN),
        PINMUX_DATA(SERIRQ_MARK, PTG3_FN),
-       PINMUX_DATA(CLKRUN_MARK, PTG2_FN),
+       PINMUX_DATA(WDTOVF_MARK, PTG2_FN),
        PINMUX_DATA(LPCPD_MARK, PTG1_FN),
        PINMUX_DATA(LDRQ_MARK, PTG0_FN),
 
        /* PTH FN */
-       PINMUX_DATA(SP1_MOSI_MARK, PTH7_FN),
-       PINMUX_DATA(SP1_MISO_MARK, PTH6_FN),
-       PINMUX_DATA(SP1_SCK_MARK, PTH5_FN),
-       PINMUX_DATA(SP1_SCK_FB_MARK, PTH4_FN),
+       PINMUX_DATA(SP1_MOSI_MARK, PS2_7_FN1, PTH7_FN),
+       PINMUX_DATA(TEND1_MARK, PS2_7_FN2, PTH7_FN),
+       PINMUX_DATA(SP1_MISO_MARK, PS2_6_FN1, PTH6_FN),
+       PINMUX_DATA(DREQ1_MARK, PS2_6_FN2, PTH6_FN),
+       PINMUX_DATA(SP1_SCK_MARK, PS2_5_FN1, PTH5_FN),
+       PINMUX_DATA(DACK1_MARK, PS2_5_FN2, PTH5_FN),
+       PINMUX_DATA(SP1_SCK_FB_MARK, PS2_4_FN1, PTH4_FN),
+       PINMUX_DATA(ADTRG1_MARK, PS2_4_FN2, PTH4_FN),
        PINMUX_DATA(SP1_SS0_MARK, PTH3_FN),
-       PINMUX_DATA(TCLK_MARK, PTH2_FN),
-       PINMUX_DATA(RXD4_MARK, PS2_1_FN1, PTH1_FN),
-       PINMUX_DATA(SP1_SS1_MARK, PS2_1_FN2, PTH1_FN),
-       PINMUX_DATA(TXD4_MARK, PS2_0_FN1, PTH0_FN),
-       PINMUX_DATA(SP0_SS1_MARK, PS2_0_FN2, PTH0_FN),
+       PINMUX_DATA(SP1_SS1_MARK, PS2_2_FN1, PTH2_FN),
+       PINMUX_DATA(ADTRG0_MARK, PS2_2_FN2, PTH2_FN),
+       PINMUX_DATA(WP_MARK, PTH1_FN),
+       PINMUX_DATA(FMS0_MARK, PTH0_FN),
 
        /* PTI FN */
-       PINMUX_DATA(IRQ15_MARK, PTI7_FN),
-       PINMUX_DATA(IRQ14_MARK, PTI6_FN),
-       PINMUX_DATA(IRQ13_MARK, PTI5_FN),
-       PINMUX_DATA(IRQ12_MARK, PTI4_FN),
-       PINMUX_DATA(IRQ11_MARK, PTI3_FN),
-       PINMUX_DATA(IRQ10_MARK, PTI2_FN),
-       PINMUX_DATA(IRQ9_MARK, PTI1_FN),
-       PINMUX_DATA(IRQ8_MARK, PTI0_FN),
+       PINMUX_DATA(D15_MARK, PS3_15_FN1, PTI7_FN),
+       PINMUX_DATA(SD_WP_MARK, PS3_15_FN2, PTI7_FN),
+       PINMUX_DATA(D14_MARK, PS3_14_FN1, PTI6_FN),
+       PINMUX_DATA(SD_CD_MARK, PS3_14_FN2, PTI6_FN),
+       PINMUX_DATA(D13_MARK, PS3_13_FN1, PTI5_FN),
+       PINMUX_DATA(SD_CLK_MARK, PS3_13_FN2, PTI5_FN),
+       PINMUX_DATA(D12_MARK, PS3_12_FN1, PTI4_FN),
+       PINMUX_DATA(SD_CMD_MARK, PS3_12_FN2, PTI4_FN),
+       PINMUX_DATA(D11_MARK, PS3_11_FN1, PTI3_FN),
+       PINMUX_DATA(SD_D3_MARK, PS3_11_FN2, PTI3_FN),
+       PINMUX_DATA(D10_MARK, PS3_10_FN1, PTI2_FN),
+       PINMUX_DATA(SD_D2_MARK, PS3_10_FN2, PTI2_FN),
+       PINMUX_DATA(D9_MARK, PS3_9_FN1, PTI1_FN),
+       PINMUX_DATA(SD_D1_MARK, PS3_9_FN2, PTI1_FN),
+       PINMUX_DATA(D8_MARK, PS3_8_FN1, PTI0_FN),
+       PINMUX_DATA(SD_D0_MARK, PS3_8_FN2, PTI0_FN),
 
        /* PTJ FN */
-       PINMUX_DATA(RXD3_MARK, PTJ7_FN),
-       PINMUX_DATA(TXD3_MARK, PTJ6_FN),
-       PINMUX_DATA(RXD2_MARK, PTJ5_FN),
-       PINMUX_DATA(TXD2_MARK, PTJ4_FN),
-       PINMUX_DATA(COM1_TXD_MARK, PTJ3_FN),
-       PINMUX_DATA(COM1_RXD_MARK, PTJ2_FN),
-       PINMUX_DATA(COM1_RTS_MARK, PTJ1_FN),
-       PINMUX_DATA(COM1_CTS_MARK, PTJ0_FN),
+       PINMUX_DATA(RTS3_MARK, PTJ6_FN),
+       PINMUX_DATA(CTS3_MARK, PTJ5_FN),
+       PINMUX_DATA(TXD3_MARK, PTJ4_FN),
+       PINMUX_DATA(RXD3_MARK, PTJ3_FN),
+       PINMUX_DATA(RTS4_MARK, PTJ2_FN),
+       PINMUX_DATA(RXD4_MARK, PTJ1_FN),
+       PINMUX_DATA(TXD4_MARK, PTJ0_FN),
 
        /* PTK FN */
-       PINMUX_DATA(COM2_TXD_MARK, PTK7_FN),
+       PINMUX_DATA(COM2_TXD_MARK, PS3_7_FN1, PTK7_FN),
+       PINMUX_DATA(SCK2_MARK, PS3_7_FN2, PTK7_FN),
        PINMUX_DATA(COM2_RXD_MARK, PTK6_FN),
        PINMUX_DATA(COM2_RTS_MARK, PTK5_FN),
        PINMUX_DATA(COM2_CTS_MARK, PTK4_FN),
        PINMUX_DATA(COM2_DTR_MARK, PTK3_FN),
-       PINMUX_DATA(COM2_DSR_MARK, PTK2_FN),
-       PINMUX_DATA(COM2_DCD_MARK, PTK1_FN),
-       PINMUX_DATA(COM2_RI_MARK, PTK0_FN),
+       PINMUX_DATA(COM2_DSR_MARK, PS3_2_FN1, PTK2_FN),
+       PINMUX_DATA(SCK4_MARK, PS3_2_FN2, PTK2_FN),
+       PINMUX_DATA(COM2_DCD_MARK, PS3_1_FN1, PTK1_FN),
+       PINMUX_DATA(SCK3_MARK, PS3_1_FN2, PTK1_FN),
+       PINMUX_DATA(CLKOUT_MARK, PTK0_FN),
 
        /* PTL FN */
-       PINMUX_DATA(RAC_TXD_MARK, PTL7_FN),
-       PINMUX_DATA(RAC_RXD_MARK, PTL6_FN),
-       PINMUX_DATA(RAC_RTS_MARK, PTL5_FN),
-       PINMUX_DATA(RAC_CTS_MARK, PTL4_FN),
+       PINMUX_DATA(RAC_RXD_MARK, PS4_14_FN1, PTL6_FN),
+       PINMUX_DATA(RXD2_MARK, PS4_14_FN2, PTL6_FN),
+       PINMUX_DATA(RAC_RTS_MARK, PS4_13_FN1, PTL5_FN),
+       PINMUX_DATA(CS5_MARK, PS4_13_FN2, PTL5_FN),
+       PINMUX_DATA(RAC_CTS_MARK, PS4_12_FN1, PTL4_FN),
+       PINMUX_DATA(CS6_MARK, PS4_12_FN2, PTL4_FN),
        PINMUX_DATA(RAC_DTR_MARK, PTL3_FN),
-       PINMUX_DATA(RAC_DSR_MARK, PTL2_FN),
-       PINMUX_DATA(RAC_DCD_MARK, PTL1_FN),
-       PINMUX_DATA(RAC_RI_MARK, PTL0_FN),
+       PINMUX_DATA(RAC_DSR_MARK, PS4_10_FN1, PTL2_FN),
+       PINMUX_DATA(AUDSYNC_MARK, PS4_10_FN2, PTL2_FN),
+       PINMUX_DATA(RAC_DCD_MARK, PS4_9_FN1, PTL1_FN),
+       PINMUX_DATA(AUDCK_MARK, PS4_9_FN2, PTL1_FN),
+       PINMUX_DATA(RAC_TXD_MARK, PS4_8_FN1, PTL0_FN),
+       PINMUX_DATA(TXD2_MARK, PS4_8_FN1, PTL0_FN),
 
        /* PTM FN */
-       PINMUX_DATA(WP_MARK, PTM6_FN),
-       PINMUX_DATA(FMS0_MARK, PTM5_FN),
-       PINMUX_DATA(FMS1_MARK, PTM4_FN),
+       PINMUX_DATA(CS4_MARK, PTM7_FN),
+       PINMUX_DATA(RD_MARK, PTM6_FN),
+       PINMUX_DATA(WE0_MARK, PTM7_FN),
+       PINMUX_DATA(CS0_MARK, PTM4_FN),
        PINMUX_DATA(SDA6_MARK, PTM3_FN),
        PINMUX_DATA(SCL6_MARK, PTM2_FN),
        PINMUX_DATA(SDA7_MARK, PTM1_FN),
        PINMUX_DATA(SCL7_MARK, PTM0_FN),
 
        /* PTN FN */
-       PINMUX_DATA(SCK2_MARK, PS4_15_FN1, PTN7_FN),
-       PINMUX_DATA(EVENT7_MARK, PS4_15_FN2, PTN7_FN),
-       PINMUX_DATA(RTS4_MARK, PS4_14_FN1, PTN6_FN),
-       PINMUX_DATA(EVENT6_MARK, PS4_14_FN2, PTN6_FN),
-       PINMUX_DATA(RTS3_MARK, PS4_13_FN1, PTN5_FN),
-       PINMUX_DATA(EVENT5_MARK, PS4_13_FN2, PTN5_FN),
-       PINMUX_DATA(RTS2_MARK, PS4_12_FN1, PTN4_FN),
-       PINMUX_DATA(EVENT4_MARK, PS4_12_FN2, PTN4_FN),
-       PINMUX_DATA(CTS4_MARK, PS4_11_FN1, PTN3_FN),
-       PINMUX_DATA(EVENT3_MARK, PS4_11_FN2, PTN3_FN),
-       PINMUX_DATA(CTS3_MARK, PS4_10_FN1, PTN2_FN),
-       PINMUX_DATA(EVENT2_MARK, PS4_10_FN2, PTN2_FN),
-       PINMUX_DATA(CTS2_MARK, PS4_9_FN1, PTN1_FN),
-       PINMUX_DATA(EVENT1_MARK, PS4_9_FN2, PTN1_FN),
-       PINMUX_DATA(EVENT0_MARK, PTN0_FN),
+       PINMUX_DATA(VBUS_EN_MARK, PTN6_FN),
+       PINMUX_DATA(VBUS_OC_MARK, PTN5_FN),
+       PINMUX_DATA(JMCTCK_MARK, PS4_4_FN1, PTN4_FN),
+       PINMUX_DATA(SGPIO1_CLK_MARK, PS4_4_FN2, PTN4_FN),
+       PINMUX_DATA(JMCTMS_MARK, PS4_3_FN1, PTN5_FN),
+       PINMUX_DATA(SGPIO1_LOAD_MARK, PS4_3_FN2, PTN5_FN),
+       PINMUX_DATA(JMCTDO_MARK, PS4_2_FN1, PTN2_FN),
+       PINMUX_DATA(SGPIO1_DO_MARK, PS4_2_FN2, PTN2_FN),
+       PINMUX_DATA(JMCTDI_MARK, PS4_1_FN1, PTN1_FN),
+       PINMUX_DATA(SGPIO1_DI_MARK, PS4_1_FN2, PTN1_FN),
+       PINMUX_DATA(JMCTRST_MARK, PS4_0_FN1, PTN0_FN),
+       PINMUX_DATA(SUB_CLKIN_MARK, PS4_0_FN2, PTN0_FN),
 
        /* PTO FN */
        PINMUX_DATA(SGPIO0_CLK_MARK, PTO7_FN),
        PINMUX_DATA(SGPIO0_LOAD_MARK, PTO6_FN),
        PINMUX_DATA(SGPIO0_DI_MARK, PTO5_FN),
        PINMUX_DATA(SGPIO0_DO_MARK, PTO4_FN),
-       PINMUX_DATA(SGPIO1_CLK_MARK, PTO3_FN),
-       PINMUX_DATA(SGPIO1_LOAD_MARK, PTO2_FN),
-       PINMUX_DATA(SGPIO1_DI_MARK, PTO1_FN),
-       PINMUX_DATA(SGPIO1_DO_MARK, PTO0_FN),
+       PINMUX_DATA(SGPIO2_CLK_MARK, PS5_11_FN1, PTO3_FN),
+       PINMUX_DATA(COM1_TXD_MARK, PS5_11_FN2, PTO3_FN),
+       PINMUX_DATA(SGPIO2_LOAD_MARK, PS5_10_FN1, PTO2_FN),
+       PINMUX_DATA(COM1_RXD_MARK, PS5_10_FN2, PTO2_FN),
+       PINMUX_DATA(SGPIO2_DI_MARK, PS5_9_FN1, PTO1_FN),
+       PINMUX_DATA(COM1_RTS_MARK, PS5_9_FN2, PTO1_FN),
+       PINMUX_DATA(SGPIO2_DO_MARK, PS5_8_FN1, PTO0_FN),
+       PINMUX_DATA(COM1_CTS_MARK, PS5_8_FN2, PTO0_FN),
 
        /* PTP FN */
-       PINMUX_DATA(JMCTCK_MARK, PTP6_FN),
-       PINMUX_DATA(JMCTMS_MARK, PTP5_FN),
-       PINMUX_DATA(JMCTDO_MARK, PTP4_FN),
-       PINMUX_DATA(JMCTDI_MARK, PTP3_FN),
-       PINMUX_DATA(JMCRST_MARK, PTP2_FN),
-       PINMUX_DATA(SCK4_MARK, PTP1_FN),
-       PINMUX_DATA(SCK3_MARK, PTP0_FN),
 
        /* PTQ FN */
        PINMUX_DATA(LAD3_MARK, PTQ6_FN),
@@ -864,8 +977,8 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(LAD1_MARK, PTQ4_FN),
        PINMUX_DATA(LAD0_MARK, PTQ3_FN),
        PINMUX_DATA(LFRAME_MARK, PTQ2_FN),
-       PINMUX_DATA(SCK4_MARK, PTQ1_FN),
-       PINMUX_DATA(SCK3_MARK, PTQ0_FN),
+       PINMUX_DATA(LRESET_MARK, PTQ1_FN),
+       PINMUX_DATA(LCLK_MARK, PTQ0_FN),
 
        /* PTR FN */
        PINMUX_DATA(SDA8_MARK, PTR7_FN),        /* DDC3? */
@@ -888,58 +1001,84 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(SCL3_MARK, PTS0_FN),
 
        /* PTT FN */
-       PINMUX_DATA(AUDSYNC_MARK, PTS5_FN),
-       PINMUX_DATA(AUDCK_MARK, PTS4_FN),
-       PINMUX_DATA(AUDATA3_MARK, PS4_3_FN1, PTS3_FN),
-       PINMUX_DATA(PWX7_MARK, PS4_3_FN2, PTS3_FN),
-       PINMUX_DATA(AUDATA2_MARK, PS4_2_FN1, PTS2_FN),
-       PINMUX_DATA(PWX6_MARK, PS4_2_FN2, PTS2_FN),
-       PINMUX_DATA(AUDATA1_MARK, PS4_1_FN1, PTS1_FN),
-       PINMUX_DATA(PWX5_MARK, PS4_1_FN2, PTS1_FN),
-       PINMUX_DATA(AUDATA0_MARK, PS4_0_FN1, PTS0_FN),
-       PINMUX_DATA(PWX4_MARK, PS4_0_FN2, PTS0_FN),
+       PINMUX_DATA(PWMX7_MARK, PS5_7_FN1, PTT7_FN),
+       PINMUX_DATA(AUDATA3_MARK, PS5_7_FN2, PTT7_FN),
+       PINMUX_DATA(PWMX6_MARK, PS5_6_FN1, PTT6_FN),
+       PINMUX_DATA(AUDATA2_MARK, PS5_6_FN2, PTT6_FN),
+       PINMUX_DATA(PWMX5_MARK, PS5_5_FN1, PTT5_FN),
+       PINMUX_DATA(AUDATA1_MARK, PS5_5_FN2, PTT5_FN),
+       PINMUX_DATA(PWMX4_MARK, PS5_4_FN1, PTT4_FN),
+       PINMUX_DATA(AUDATA0_MARK, PS5_4_FN2, PTT4_FN),
+       PINMUX_DATA(PWMX3_MARK, PS5_3_FN1, PTT3_FN),
+       PINMUX_DATA(STATUS1_MARK, PS5_3_FN2, PTT3_FN),
+       PINMUX_DATA(PWMX2_MARK, PS5_2_FN1, PTT2_FN),
+       PINMUX_DATA(STATUS0_MARK, PS5_2_FN2, PTT2_FN),
+       PINMUX_DATA(PWMX1_MARK, PTT1_FN),
+       PINMUX_DATA(PWMX0_MARK, PTT0_FN),
 
        /* PTU FN */
-       PINMUX_DATA(CS6_MARK, PTU7_FN),
-       PINMUX_DATA(CS5_MARK, PTU6_FN),
-       PINMUX_DATA(CS4_MARK, PTU5_FN),
-       PINMUX_DATA(CS0_MARK, PTU4_FN),
-       PINMUX_DATA(RD_MARK, PTU3_FN),
-       PINMUX_DATA(WE0_MARK, PTU2_FN),
-       PINMUX_DATA(A25_MARK, PS5_9_FN1, PTU1_FN),
-       PINMUX_DATA(DREQ0_MARK, PS5_9_FN2, PTU1_FN),
-       PINMUX_DATA(A24_MARK, PS5_8_FN1, PTU0_FN),
-       PINMUX_DATA(DACK0_MARK, PS5_8_FN2, PTU0_FN),
+       PINMUX_DATA(LGPIO7_MARK, PS6_15_FN1, PTU7_FN),
+       PINMUX_DATA(APMONCTL_O_MARK, PS6_15_FN2, PTU7_FN),
+       PINMUX_DATA(LGPIO6_MARK, PS6_14_FN1, PTU6_FN),
+       PINMUX_DATA(APMPWBTOUT_O_MARK, PS6_14_FN2, PTU6_FN),
+       PINMUX_DATA(LGPIO5_MARK, PS6_13_FN1, PTU5_FN),
+       PINMUX_DATA(APMSCI_O_MARK, PS6_13_FN2, PTU5_FN),
+       PINMUX_DATA(LGPIO4_MARK, PS6_12_FN1, PTU4_FN),
+       PINMUX_DATA(APMVDDON_MARK, PS6_12_FN2, PTU4_FN),
+       PINMUX_DATA(LGPIO3_MARK, PS6_11_FN1, PTU3_FN),
+       PINMUX_DATA(APMSLPBTN_MARK, PS6_11_FN2, PTU3_FN),
+       PINMUX_DATA(LGPIO2_MARK, PS6_10_FN1, PTU2_FN),
+       PINMUX_DATA(APMPWRBTN_MARK, PS6_10_FN2, PTU2_FN),
+       PINMUX_DATA(LGPIO1_MARK, PS6_9_FN1, PTU1_FN),
+       PINMUX_DATA(APMS5N_MARK, PS6_9_FN2, PTU1_FN),
+       PINMUX_DATA(LGPIO0_MARK, PS6_8_FN1, PTU0_FN),
+       PINMUX_DATA(APMS3N_MARK, PS6_8_FN2, PTU0_FN),
 
        /* PTV FN */
-       PINMUX_DATA(A23_MARK, PS5_7_FN1, PTV7_FN),
-       PINMUX_DATA(TEND0_MARK, PS5_7_FN2, PTV7_FN),
-       PINMUX_DATA(A22_MARK, PS5_6_FN1, PTV6_FN),
-       PINMUX_DATA(DREQ1_MARK, PS5_6_FN2, PTV6_FN),
-       PINMUX_DATA(A21_MARK, PS5_5_FN1, PTV5_FN),
-       PINMUX_DATA(DACK1_MARK, PS5_5_FN2, PTV5_FN),
-       PINMUX_DATA(A20_MARK, PS5_4_FN1, PTV4_FN),
-       PINMUX_DATA(TEND1_MARK, PS5_4_FN2, PTV4_FN),
-       PINMUX_DATA(A19_MARK, PTV3_FN),
-       PINMUX_DATA(A18_MARK, PTV2_FN),
-       PINMUX_DATA(A17_MARK, PTV1_FN),
-       PINMUX_DATA(A16_MARK, PTV0_FN),
+       PINMUX_DATA(A23_MARK, PS6_7_FN1, PTV7_FN),
+       PINMUX_DATA(COM2_RI_MARK, PS6_7_FN2, PTV7_FN),
+       PINMUX_DATA(A22_MARK, PS6_6_FN1, PTV6_FN),
+       PINMUX_DATA(R_SPI_MOSI_MARK, PS6_6_FN2, PTV6_FN),
+       PINMUX_DATA(A21_MARK, PS6_5_FN1, PTV5_FN),
+       PINMUX_DATA(R_SPI_MISO_MARK, PS6_5_FN2, PTV5_FN),
+       PINMUX_DATA(A20_MARK, PS6_4_FN1, PTV4_FN),
+       PINMUX_DATA(R_SPI_RSPCK_MARK, PS6_4_FN2, PTV4_FN),
+       PINMUX_DATA(A19_MARK, PS6_3_FN1, PTV3_FN),
+       PINMUX_DATA(R_SPI_SSL0_MARK, PS6_3_FN2, PTV3_FN),
+       PINMUX_DATA(A18_MARK, PS6_2_FN1, PTV2_FN),
+       PINMUX_DATA(R_SPI_SSL1_MARK, PS6_2_FN2, PTV2_FN),
+       PINMUX_DATA(A17_MARK, PS6_1_FN1, PTV1_FN),
+       PINMUX_DATA(EVENT7_MARK, PS6_1_FN2, PTV1_FN),
+       PINMUX_DATA(A16_MARK, PS6_0_FN1, PTV0_FN),
+       PINMUX_DATA(EVENT6_MARK, PS6_0_FN1, PTV0_FN),
 
        /* PTW FN */
-       PINMUX_DATA(A15_MARK, PTW7_FN),
-       PINMUX_DATA(A14_MARK, PTW6_FN),
-       PINMUX_DATA(A13_MARK, PTW5_FN),
-       PINMUX_DATA(A12_MARK, PTW4_FN),
-       PINMUX_DATA(A11_MARK, PTW3_FN),
-       PINMUX_DATA(A10_MARK, PTW2_FN),
-       PINMUX_DATA(A9_MARK, PTW1_FN),
-       PINMUX_DATA(A8_MARK, PTW0_FN),
+       PINMUX_DATA(A15_MARK, PS7_15_FN1, PTW7_FN),
+       PINMUX_DATA(EVENT5_MARK, PS7_15_FN2, PTW7_FN),
+       PINMUX_DATA(A14_MARK, PS7_14_FN1, PTW6_FN),
+       PINMUX_DATA(EVENT4_MARK, PS7_14_FN2, PTW6_FN),
+       PINMUX_DATA(A13_MARK, PS7_13_FN1, PTW5_FN),
+       PINMUX_DATA(EVENT3_MARK, PS7_13_FN2, PTW5_FN),
+       PINMUX_DATA(A12_MARK, PS7_12_FN1, PTW4_FN),
+       PINMUX_DATA(EVENT2_MARK, PS7_12_FN2, PTW4_FN),
+       PINMUX_DATA(A11_MARK, PS7_11_FN1, PTW3_FN),
+       PINMUX_DATA(EVENT1_MARK, PS7_11_FN2, PTW3_FN),
+       PINMUX_DATA(A10_MARK, PS7_10_FN1, PTW2_FN),
+       PINMUX_DATA(EVENT0_MARK, PS7_10_FN2, PTW2_FN),
+       PINMUX_DATA(A9_MARK, PS7_9_FN1, PTW1_FN),
+       PINMUX_DATA(CTS4_MARK, PS7_9_FN2, PTW1_FN),
+       PINMUX_DATA(A8_MARK, PS7_8_FN1, PTW0_FN),
+       PINMUX_DATA(CTS2_MARK, PS7_8_FN2, PTW0_FN),
 
        /* PTX FN */
-       PINMUX_DATA(A7_MARK, PTX7_FN),
-       PINMUX_DATA(A6_MARK, PTX6_FN),
-       PINMUX_DATA(A5_MARK, PTX5_FN),
-       PINMUX_DATA(A4_MARK, PTX4_FN),
+       PINMUX_DATA(A7_MARK, PS7_7_FN1, PTX7_FN),
+       PINMUX_DATA(RTS2_MARK, PS7_7_FN2, PTX7_FN),
+       PINMUX_DATA(A6_MARK, PS7_6_FN1, PTX6_FN),
+       PINMUX_DATA(SIM_D_MARK, PS7_6_FN2, PTX6_FN),
+       PINMUX_DATA(A5_MARK, PS7_5_FN1, PTX5_FN),
+       PINMUX_DATA(SIM_CLK_MARK, PS7_5_FN2, PTX5_FN),
+       PINMUX_DATA(A4_MARK, PS7_4_FN1, PTX4_FN),
+       PINMUX_DATA(SIM_RST_MARK, PS7_4_FN2, PTX4_FN),
        PINMUX_DATA(A3_MARK, PTX3_FN),
        PINMUX_DATA(A2_MARK, PTX2_FN),
        PINMUX_DATA(A1_MARK, PTX1_FN),
@@ -954,6 +1093,24 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(D2_MARK, PTY2_FN),
        PINMUX_DATA(D1_MARK, PTY1_FN),
        PINMUX_DATA(D0_MARK, PTY0_FN),
+
+       /* PTZ FN */
+       PINMUX_DATA(MMCDAT7_MARK, PS8_15_FN1, PTZ7_FN),
+       PINMUX_DATA(ON_DQ7_MARK, PS8_15_FN2, PTZ7_FN),
+       PINMUX_DATA(MMCDAT6_MARK, PS8_14_FN1, PTZ6_FN),
+       PINMUX_DATA(ON_DQ6_MARK, PS8_14_FN2, PTZ6_FN),
+       PINMUX_DATA(MMCDAT5_MARK, PS8_13_FN1, PTZ5_FN),
+       PINMUX_DATA(ON_DQ5_MARK, PS8_13_FN2, PTZ5_FN),
+       PINMUX_DATA(MMCDAT4_MARK, PS8_12_FN1, PTZ4_FN),
+       PINMUX_DATA(ON_DQ4_MARK, PS8_12_FN2, PTZ4_FN),
+       PINMUX_DATA(MMCDAT3_MARK, PS8_11_FN1, PTZ3_FN),
+       PINMUX_DATA(ON_DQ3_MARK, PS8_11_FN2, PTZ3_FN),
+       PINMUX_DATA(MMCDAT2_MARK, PS8_10_FN1, PTZ2_FN),
+       PINMUX_DATA(ON_DQ2_MARK, PS8_10_FN2, PTZ2_FN),
+       PINMUX_DATA(MMCDAT1_MARK, PS8_9_FN1, PTZ1_FN),
+       PINMUX_DATA(ON_DQ1_MARK, PS8_9_FN2, PTZ1_FN),
+       PINMUX_DATA(MMCDAT0_MARK, PS8_8_FN1, PTZ0_FN),
+       PINMUX_DATA(ON_DQ0_MARK, PS8_8_FN2, PTZ0_FN),
 };
 
 static struct pinmux_gpio pinmux_gpios[] = {
@@ -1048,7 +1205,6 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTI0, PTI0_DATA),
 
        /* PTJ */
-       PINMUX_GPIO(GPIO_PTJ7, PTJ7_DATA),
        PINMUX_GPIO(GPIO_PTJ6, PTJ6_DATA),
        PINMUX_GPIO(GPIO_PTJ5, PTJ5_DATA),
        PINMUX_GPIO(GPIO_PTJ4, PTJ4_DATA),
@@ -1068,7 +1224,6 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTK0, PTK0_DATA),
 
        /* PTL */
-       PINMUX_GPIO(GPIO_PTL7, PTL7_DATA),
        PINMUX_GPIO(GPIO_PTL6, PTL6_DATA),
        PINMUX_GPIO(GPIO_PTL5, PTL5_DATA),
        PINMUX_GPIO(GPIO_PTL4, PTL4_DATA),
@@ -1078,6 +1233,7 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTL0, PTL0_DATA),
 
        /* PTM */
+       PINMUX_GPIO(GPIO_PTM7, PTM7_DATA),
        PINMUX_GPIO(GPIO_PTM6, PTM6_DATA),
        PINMUX_GPIO(GPIO_PTM5, PTM5_DATA),
        PINMUX_GPIO(GPIO_PTM4, PTM4_DATA),
@@ -1087,7 +1243,6 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTM0, PTM0_DATA),
 
        /* PTN */
-       PINMUX_GPIO(GPIO_PTN7, PTN7_DATA),
        PINMUX_GPIO(GPIO_PTN6, PTN6_DATA),
        PINMUX_GPIO(GPIO_PTN5, PTN5_DATA),
        PINMUX_GPIO(GPIO_PTN4, PTN4_DATA),
@@ -1107,6 +1262,7 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTO0, PTO0_DATA),
 
        /* PTP */
+       PINMUX_GPIO(GPIO_PTP7, PTP7_DATA),
        PINMUX_GPIO(GPIO_PTP6, PTP6_DATA),
        PINMUX_GPIO(GPIO_PTP5, PTP5_DATA),
        PINMUX_GPIO(GPIO_PTP4, PTP4_DATA),
@@ -1145,6 +1301,8 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTS0, PTS0_DATA),
 
        /* PTT */
+       PINMUX_GPIO(GPIO_PTT7, PTT7_DATA),
+       PINMUX_GPIO(GPIO_PTT6, PTT6_DATA),
        PINMUX_GPIO(GPIO_PTT5, PTT5_DATA),
        PINMUX_GPIO(GPIO_PTT4, PTT4_DATA),
        PINMUX_GPIO(GPIO_PTT3, PTT3_DATA),
@@ -1212,54 +1370,35 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTZ1, PTZ1_DATA),
        PINMUX_GPIO(GPIO_PTZ0, PTZ0_DATA),
 
-       /* PTA (mobule: LBSC, CPG, LPC) */
+       /* PTA (mobule: LBSC, RGMII) */
        PINMUX_GPIO(GPIO_FN_BS, BS_MARK),
        PINMUX_GPIO(GPIO_FN_RDWR, RDWR_MARK),
        PINMUX_GPIO(GPIO_FN_WE1, WE1_MARK),
        PINMUX_GPIO(GPIO_FN_RDY, RDY_MARK),
-       PINMUX_GPIO(GPIO_FN_MD10, MD10_MARK),
-       PINMUX_GPIO(GPIO_FN_MD9, MD9_MARK),
-       PINMUX_GPIO(GPIO_FN_MD8, MD8_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO7, LGPIO7_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO6, LGPIO6_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO5, LGPIO5_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO4, LGPIO4_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO3, LGPIO3_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO2, LGPIO2_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO1, LGPIO1_MARK),
-       PINMUX_GPIO(GPIO_FN_LGPIO0, LGPIO0_MARK),
-
-       /* PTB (mobule: LBSC, EtherC, SIM, LPC) */
-       PINMUX_GPIO(GPIO_FN_D15, D15_MARK),
-       PINMUX_GPIO(GPIO_FN_D14, D14_MARK),
-       PINMUX_GPIO(GPIO_FN_D13, D13_MARK),
-       PINMUX_GPIO(GPIO_FN_D12, D12_MARK),
-       PINMUX_GPIO(GPIO_FN_D11, D11_MARK),
-       PINMUX_GPIO(GPIO_FN_D10, D10_MARK),
-       PINMUX_GPIO(GPIO_FN_D9, D9_MARK),
-       PINMUX_GPIO(GPIO_FN_D8, D8_MARK),
        PINMUX_GPIO(GPIO_FN_ET0_MDC, ET0_MDC_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_MDIO, ET0_MDIO_MARK),
+       PINMUX_GPIO(GPIO_FN_ET0_MDIO, ET0_MDC_MARK),
        PINMUX_GPIO(GPIO_FN_ET1_MDC, ET1_MDC_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_MDIO, ET1_MDIO_MARK),
-       PINMUX_GPIO(GPIO_FN_WPSZ1, WPSZ1_MARK),
-       PINMUX_GPIO(GPIO_FN_WPSZ0, WPSZ0_MARK),
-       PINMUX_GPIO(GPIO_FN_FWID, FWID_MARK),
-       PINMUX_GPIO(GPIO_FN_FLSHSZ, FLSHSZ_MARK),
-       PINMUX_GPIO(GPIO_FN_LPC_SPIEN, LPC_SPIEN_MARK),
-       PINMUX_GPIO(GPIO_FN_BASEL, BASEL_MARK),
-
-       /* PTC (mobule: SD) */
-       PINMUX_GPIO(GPIO_FN_SD_WP, SD_WP_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_CD, SD_CD_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_CLK, SD_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_CMD, SD_CMD_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_D3, SD_D3_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_D2, SD_D2_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_D1, SD_D1_MARK),
-       PINMUX_GPIO(GPIO_FN_SD_D0, SD_D0_MARK),
+       PINMUX_GPIO(GPIO_FN_ET1_MDIO, ET1_MDC_MARK),
 
-       /* PTD (mobule: INTC, SPI0, LBSC, CPG, ADC) */
+       /* PTB (mobule: INTC, ONFI, TMU) */
+       PINMUX_GPIO(GPIO_FN_IRQ15, IRQ15_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ14, IRQ14_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ13, IRQ13_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ12, IRQ12_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ11, IRQ11_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ10, IRQ10_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ9, IRQ9_MARK),
+       PINMUX_GPIO(GPIO_FN_IRQ8, IRQ8_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_NRE, ON_NRE_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_NWE, ON_NWE_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_NWP, ON_NWP_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_NCE0, ON_NCE0_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_R_B0, ON_R_B0_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_ALE, ON_ALE_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_CLE, ON_CLE_MARK),
+       PINMUX_GPIO(GPIO_FN_TCLK, TCLK_MARK),
+
+       /* PTC (mobule: IRQ, PWMU) */
        PINMUX_GPIO(GPIO_FN_IRQ7, IRQ7_MARK),
        PINMUX_GPIO(GPIO_FN_IRQ6, IRQ6_MARK),
        PINMUX_GPIO(GPIO_FN_IRQ5, IRQ5_MARK),
@@ -1268,80 +1407,102 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_IRQ2, IRQ2_MARK),
        PINMUX_GPIO(GPIO_FN_IRQ1, IRQ1_MARK),
        PINMUX_GPIO(GPIO_FN_IRQ0, IRQ0_MARK),
-       PINMUX_GPIO(GPIO_FN_MD6, MD6_MARK),
-       PINMUX_GPIO(GPIO_FN_MD5, MD5_MARK),
-       PINMUX_GPIO(GPIO_FN_MD3, MD3_MARK),
-       PINMUX_GPIO(GPIO_FN_MD2, MD2_MARK),
-       PINMUX_GPIO(GPIO_FN_MD1, MD1_MARK),
-       PINMUX_GPIO(GPIO_FN_MD0, MD0_MARK),
-       PINMUX_GPIO(GPIO_FN_ADTRG1, ADTRG1_MARK),
-       PINMUX_GPIO(GPIO_FN_ADTRG0, ADTRG0_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU0, PWMU0_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU1, PWMU1_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU2, PWMU2_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU3, PWMU3_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU4, PWMU4_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMU5, PWMU5_MARK),
+
+       /* PTD (mobule: SPI0, DMAC) */
+       PINMUX_GPIO(GPIO_FN_SP0_MOSI, SP0_MOSI_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_MISO, SP0_MISO_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SCK, SP0_SCK_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SCK_FB, SP0_SCK_FB_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SS0, SP0_SS0_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SS1, SP0_SS1_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SS2, SP0_SS2_MARK),
+       PINMUX_GPIO(GPIO_FN_SP0_SS3, SP0_SS3_MARK),
+       PINMUX_GPIO(GPIO_FN_DREQ0, DREQ0_MARK),
+       PINMUX_GPIO(GPIO_FN_DACK0, DACK0_MARK),
+       PINMUX_GPIO(GPIO_FN_TEND0, TEND0_MARK),
 
-       /* PTE (mobule: EtherC) */
-       PINMUX_GPIO(GPIO_FN_ET0_CRS_DV, ET0_CRS_DV_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_TXD1, ET0_TXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_TXD0, ET0_TXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_TX_EN, ET0_TX_EN_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_REF_CLK, ET0_REF_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_RXD1, ET0_RXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_RXD0, ET0_RXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_ET0_RX_ER, ET0_RX_ER_MARK),
-
-       /* PTF (mobule: EtherC) */
-       PINMUX_GPIO(GPIO_FN_ET1_CRS_DV, ET1_CRS_DV_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_TXD1, ET1_TXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_TXD0, ET1_TXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_TX_EN, ET1_TX_EN_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_REF_CLK, ET1_REF_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_RXD1, ET1_RXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_RXD0, ET1_RXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_ET1_RX_ER, ET1_RX_ER_MARK),
-
-       /* PTG (mobule: SYSTEM, PWMX, LPC) */
-       PINMUX_GPIO(GPIO_FN_STATUS0, STATUS0_MARK),
-       PINMUX_GPIO(GPIO_FN_STATUS1, STATUS1_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX0, PWX0_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX1, PWX1_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX2, PWX2_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX3, PWX3_MARK),
+       /* PTE (mobule: RMII) */
+       PINMUX_GPIO(GPIO_FN_RMII0_CRS_DV, RMII0_CRS_DV_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_TXD1, RMII0_TXD1_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_TXD0, RMII0_TXD0_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_TXEN, RMII0_TXEN_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_REFCLK, RMII0_REFCLK_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_RXD1, RMII0_RXD1_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_RXD0, RMII0_RXD0_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII0_RX_ER, RMII0_RX_ER_MARK),
+
+       /* PTF (mobule: RMII, SerMux) */
+       PINMUX_GPIO(GPIO_FN_RMII1_CRS_DV, RMII1_CRS_DV_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_TXD1, RMII1_TXD1_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_TXD0, RMII1_TXD0_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_TXEN, RMII1_TXEN_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_REFCLK, RMII1_REFCLK_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_RXD1, RMII1_RXD1_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_RXD0, RMII1_RXD0_MARK),
+       PINMUX_GPIO(GPIO_FN_RMII1_RX_ER, RMII1_RX_ER_MARK),
+       PINMUX_GPIO(GPIO_FN_RAC_RI, RAC_RI_MARK),
+
+       /* PTG (mobule: system, LBSC, LPC, WDT, LPC, eMMC) */
+       PINMUX_GPIO(GPIO_FN_BOOTFMS, BOOTFMS_MARK),
+       PINMUX_GPIO(GPIO_FN_BOOTWP, BOOTWP_MARK),
+       PINMUX_GPIO(GPIO_FN_A25, A25_MARK),
+       PINMUX_GPIO(GPIO_FN_A24, A24_MARK),
        PINMUX_GPIO(GPIO_FN_SERIRQ, SERIRQ_MARK),
-       PINMUX_GPIO(GPIO_FN_CLKRUN, CLKRUN_MARK),
+       PINMUX_GPIO(GPIO_FN_WDTOVF, WDTOVF_MARK),
        PINMUX_GPIO(GPIO_FN_LPCPD, LPCPD_MARK),
        PINMUX_GPIO(GPIO_FN_LDRQ, LDRQ_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCCLK, MMCCLK_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCCMD, MMCCMD_MARK),
 
-       /* PTH (mobule: TMU, SCIF234, SPI1, SPI0) */
-       PINMUX_GPIO(GPIO_FN_TCLK, TCLK_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD4, RXD4_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD4, TXD4_MARK),
+       /* PTH (mobule: SPI1, LPC, DMAC, ADC) */
        PINMUX_GPIO(GPIO_FN_SP1_MOSI, SP1_MOSI_MARK),
        PINMUX_GPIO(GPIO_FN_SP1_MISO, SP1_MISO_MARK),
        PINMUX_GPIO(GPIO_FN_SP1_SCK, SP1_SCK_MARK),
        PINMUX_GPIO(GPIO_FN_SP1_SCK_FB, SP1_SCK_FB_MARK),
        PINMUX_GPIO(GPIO_FN_SP1_SS0, SP1_SS0_MARK),
        PINMUX_GPIO(GPIO_FN_SP1_SS1, SP1_SS1_MARK),
-       PINMUX_GPIO(GPIO_FN_SP0_SS1, SP0_SS1_MARK),
+       PINMUX_GPIO(GPIO_FN_WP, WP_MARK),
+       PINMUX_GPIO(GPIO_FN_FMS0, FMS0_MARK),
+       PINMUX_GPIO(GPIO_FN_TEND1, TEND1_MARK),
+       PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK),
+       PINMUX_GPIO(GPIO_FN_DACK1, DACK1_MARK),
+       PINMUX_GPIO(GPIO_FN_ADTRG1, ADTRG1_MARK),
+       PINMUX_GPIO(GPIO_FN_ADTRG0, ADTRG0_MARK),
 
-       /* PTI (mobule: INTC) */
-       PINMUX_GPIO(GPIO_FN_IRQ15, IRQ15_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ14, IRQ14_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ13, IRQ13_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ12, IRQ12_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ11, IRQ11_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ10, IRQ10_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ9, IRQ9_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ8, IRQ8_MARK),
+       /* PTI (mobule: LBSC, SDHI) */
+       PINMUX_GPIO(GPIO_FN_D15, D15_MARK),
+       PINMUX_GPIO(GPIO_FN_D14, D14_MARK),
+       PINMUX_GPIO(GPIO_FN_D13, D13_MARK),
+       PINMUX_GPIO(GPIO_FN_D12, D12_MARK),
+       PINMUX_GPIO(GPIO_FN_D11, D11_MARK),
+       PINMUX_GPIO(GPIO_FN_D10, D10_MARK),
+       PINMUX_GPIO(GPIO_FN_D9, D9_MARK),
+       PINMUX_GPIO(GPIO_FN_D8, D8_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_WP, SD_WP_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_CD, SD_CD_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_CLK, SD_CLK_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_CMD, SD_CMD_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_D3, SD_D3_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_D2, SD_D2_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_D1, SD_D1_MARK),
+       PINMUX_GPIO(GPIO_FN_SD_D0, SD_D0_MARK),
 
        /* PTJ (mobule: SCIF234, SERMUX) */
-       PINMUX_GPIO(GPIO_FN_RXD3, RXD3_MARK),
+       PINMUX_GPIO(GPIO_FN_RTS3, RTS3_MARK),
+       PINMUX_GPIO(GPIO_FN_CTS3, CTS3_MARK),
        PINMUX_GPIO(GPIO_FN_TXD3, TXD3_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD2, RXD2_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD2, TXD2_MARK),
-       PINMUX_GPIO(GPIO_FN_COM1_TXD, COM1_TXD_MARK),
-       PINMUX_GPIO(GPIO_FN_COM1_RXD, COM1_RXD_MARK),
-       PINMUX_GPIO(GPIO_FN_COM1_RTS, COM1_RTS_MARK),
-       PINMUX_GPIO(GPIO_FN_COM1_CTS, COM1_CTS_MARK),
+       PINMUX_GPIO(GPIO_FN_RXD3, RXD3_MARK),
+       PINMUX_GPIO(GPIO_FN_RTS4, RTS4_MARK),
+       PINMUX_GPIO(GPIO_FN_RXD4, RXD4_MARK),
+       PINMUX_GPIO(GPIO_FN_TXD4, TXD4_MARK),
 
-       /* PTK (mobule: SERMUX) */
+       /* PTK (mobule: SERMUX, LBSC, SCIF) */
        PINMUX_GPIO(GPIO_FN_COM2_TXD, COM2_TXD_MARK),
        PINMUX_GPIO(GPIO_FN_COM2_RXD, COM2_RXD_MARK),
        PINMUX_GPIO(GPIO_FN_COM2_RTS, COM2_RTS_MARK),
@@ -1349,62 +1510,65 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_COM2_DTR, COM2_DTR_MARK),
        PINMUX_GPIO(GPIO_FN_COM2_DSR, COM2_DSR_MARK),
        PINMUX_GPIO(GPIO_FN_COM2_DCD, COM2_DCD_MARK),
-       PINMUX_GPIO(GPIO_FN_COM2_RI, COM2_RI_MARK),
+       PINMUX_GPIO(GPIO_FN_CLKOUT, CLKOUT_MARK),
+       PINMUX_GPIO(GPIO_FN_SCK2, SCK2_MARK),
+       PINMUX_GPIO(GPIO_FN_SCK4, SCK4_MARK),
+       PINMUX_GPIO(GPIO_FN_SCK3, SCK3_MARK),
 
-       /* PTL (mobule: SERMUX) */
-       PINMUX_GPIO(GPIO_FN_RAC_TXD, RAC_TXD_MARK),
+       /* PTL (mobule: SERMUX, SCIF, LBSC, AUD) */
        PINMUX_GPIO(GPIO_FN_RAC_RXD, RAC_RXD_MARK),
        PINMUX_GPIO(GPIO_FN_RAC_RTS, RAC_RTS_MARK),
        PINMUX_GPIO(GPIO_FN_RAC_CTS, RAC_CTS_MARK),
        PINMUX_GPIO(GPIO_FN_RAC_DTR, RAC_DTR_MARK),
        PINMUX_GPIO(GPIO_FN_RAC_DSR, RAC_DSR_MARK),
        PINMUX_GPIO(GPIO_FN_RAC_DCD, RAC_DCD_MARK),
-       PINMUX_GPIO(GPIO_FN_RAC_RI, RAC_RI_MARK),
+       PINMUX_GPIO(GPIO_FN_RAC_TXD, RAC_TXD_MARK),
+       PINMUX_GPIO(GPIO_FN_RXD2, RXD2_MARK),
+       PINMUX_GPIO(GPIO_FN_CS5, CS5_MARK),
+       PINMUX_GPIO(GPIO_FN_CS6, CS6_MARK),
+       PINMUX_GPIO(GPIO_FN_AUDSYNC, AUDSYNC_MARK),
+       PINMUX_GPIO(GPIO_FN_AUDCK, AUDCK_MARK),
+       PINMUX_GPIO(GPIO_FN_TXD2, TXD2_MARK),
 
-       /* PTM (mobule: IIC, LPC) */
+       /* PTM (mobule: LBSC, IIC) */
+       PINMUX_GPIO(GPIO_FN_CS4, CS4_MARK),
+       PINMUX_GPIO(GPIO_FN_RD, RD_MARK),
+       PINMUX_GPIO(GPIO_FN_WE0, WE0_MARK),
+       PINMUX_GPIO(GPIO_FN_CS0, CS0_MARK),
        PINMUX_GPIO(GPIO_FN_SDA6, SDA6_MARK),
        PINMUX_GPIO(GPIO_FN_SCL6, SCL6_MARK),
        PINMUX_GPIO(GPIO_FN_SDA7, SDA7_MARK),
        PINMUX_GPIO(GPIO_FN_SCL7, SCL7_MARK),
-       PINMUX_GPIO(GPIO_FN_WP, WP_MARK),
-       PINMUX_GPIO(GPIO_FN_FMS0, FMS0_MARK),
-       PINMUX_GPIO(GPIO_FN_FMS1, FMS1_MARK),
 
-       /* PTN (mobule: SCIF234, EVC) */
-       PINMUX_GPIO(GPIO_FN_SCK2, SCK2_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS4, RTS4_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS3, RTS3_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS2, RTS2_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS4, CTS4_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS3, CTS3_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS2, CTS2_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT7, EVENT7_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT6, EVENT6_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT5, EVENT5_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT4, EVENT4_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT3, EVENT3_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT2, EVENT2_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT1, EVENT1_MARK),
-       PINMUX_GPIO(GPIO_FN_EVENT0, EVENT0_MARK),
+       /* PTN (mobule: USB, JMC, SGPIO, WDT) */
+       PINMUX_GPIO(GPIO_FN_VBUS_EN, VBUS_EN_MARK),
+       PINMUX_GPIO(GPIO_FN_VBUS_OC, VBUS_OC_MARK),
+       PINMUX_GPIO(GPIO_FN_JMCTCK, JMCTCK_MARK),
+       PINMUX_GPIO(GPIO_FN_JMCTMS, JMCTMS_MARK),
+       PINMUX_GPIO(GPIO_FN_JMCTDO, JMCTDO_MARK),
+       PINMUX_GPIO(GPIO_FN_JMCTDI, JMCTDI_MARK),
+       PINMUX_GPIO(GPIO_FN_JMCTRST, JMCTRST_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO1_CLK, SGPIO1_CLK_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO1_LOAD, SGPIO1_LOAD_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO1_DI, SGPIO1_DI_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO1_DO, SGPIO1_DO_MARK),
+       PINMUX_GPIO(GPIO_FN_SUB_CLKIN, SUB_CLKIN_MARK),
 
-       /* PTO (mobule: SGPIO) */
+       /* PTO (mobule: SGPIO, SerMux) */
        PINMUX_GPIO(GPIO_FN_SGPIO0_CLK, SGPIO0_CLK_MARK),
        PINMUX_GPIO(GPIO_FN_SGPIO0_LOAD, SGPIO0_LOAD_MARK),
        PINMUX_GPIO(GPIO_FN_SGPIO0_DI, SGPIO0_DI_MARK),
        PINMUX_GPIO(GPIO_FN_SGPIO0_DO, SGPIO0_DO_MARK),
-       PINMUX_GPIO(GPIO_FN_SGPIO1_CLK, SGPIO1_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_SGPIO1_LOAD, SGPIO1_LOAD_MARK),
-       PINMUX_GPIO(GPIO_FN_SGPIO1_DI, SGPIO1_DI_MARK),
-       PINMUX_GPIO(GPIO_FN_SGPIO1_DO, SGPIO1_DO_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO2_CLK, SGPIO2_CLK_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO2_LOAD, SGPIO2_LOAD_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO2_DI, SGPIO2_DI_MARK),
+       PINMUX_GPIO(GPIO_FN_SGPIO2_DO, SGPIO2_DO_MARK),
+       PINMUX_GPIO(GPIO_FN_COM1_TXD, COM1_TXD_MARK),
+       PINMUX_GPIO(GPIO_FN_COM1_RXD, COM1_RXD_MARK),
+       PINMUX_GPIO(GPIO_FN_COM1_RTS, COM1_RTS_MARK),
+       PINMUX_GPIO(GPIO_FN_COM1_CTS, COM1_CTS_MARK),
 
-       /* PTP (mobule: JMC, SCIF234) */
-       PINMUX_GPIO(GPIO_FN_JMCTCK, JMCTCK_MARK),
-       PINMUX_GPIO(GPIO_FN_JMCTMS, JMCTMS_MARK),
-       PINMUX_GPIO(GPIO_FN_JMCTDO, JMCTDO_MARK),
-       PINMUX_GPIO(GPIO_FN_JMCTDI, JMCTDI_MARK),
-       PINMUX_GPIO(GPIO_FN_JMCRST, JMCRST_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK4, SCK4_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK3, SCK3_MARK),
+       /* PTP (mobule: EVC, ADC) */
 
        /* PTQ (mobule: LPC) */
        PINMUX_GPIO(GPIO_FN_LAD3, LAD3_MARK),
@@ -1439,31 +1603,41 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_SDA3, SDA3_MARK),
        PINMUX_GPIO(GPIO_FN_SCL3, SCL3_MARK),
 
-       /* PTT (mobule: SYSTEM, PWMX) */
-       PINMUX_GPIO(GPIO_FN_AUDSYNC, AUDSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDCK, AUDCK_MARK),
+       /* PTT (mobule: PWMX, AUD) */
+       PINMUX_GPIO(GPIO_FN_PWMX7, PWMX7_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX6, PWMX6_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX5, PWMX5_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX4, PWMX4_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX3, PWMX3_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX2, PWMX2_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX1, PWMX1_MARK),
+       PINMUX_GPIO(GPIO_FN_PWMX0, PWMX0_MARK),
        PINMUX_GPIO(GPIO_FN_AUDATA3, AUDATA3_MARK),
        PINMUX_GPIO(GPIO_FN_AUDATA2, AUDATA2_MARK),
        PINMUX_GPIO(GPIO_FN_AUDATA1, AUDATA1_MARK),
        PINMUX_GPIO(GPIO_FN_AUDATA0, AUDATA0_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX7, PWX7_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX6, PWX6_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX5, PWX5_MARK),
-       PINMUX_GPIO(GPIO_FN_PWX4, PWX4_MARK),
-
-       /* PTU (mobule: LBSC, DMAC) */
-       PINMUX_GPIO(GPIO_FN_CS6, CS6_MARK),
-       PINMUX_GPIO(GPIO_FN_CS5, CS5_MARK),
-       PINMUX_GPIO(GPIO_FN_CS4, CS4_MARK),
-       PINMUX_GPIO(GPIO_FN_CS0, CS0_MARK),
-       PINMUX_GPIO(GPIO_FN_RD, RD_MARK),
-       PINMUX_GPIO(GPIO_FN_WE0, WE0_MARK),
-       PINMUX_GPIO(GPIO_FN_A25, A25_MARK),
-       PINMUX_GPIO(GPIO_FN_A24, A24_MARK),
-       PINMUX_GPIO(GPIO_FN_DREQ0, DREQ0_MARK),
-       PINMUX_GPIO(GPIO_FN_DACK0, DACK0_MARK),
+       PINMUX_GPIO(GPIO_FN_STATUS1, STATUS1_MARK),
+       PINMUX_GPIO(GPIO_FN_STATUS0, STATUS0_MARK),
 
-       /* PTV (mobule: LBSC, DMAC) */
+       /* PTU (mobule: LPC, APM) */
+       PINMUX_GPIO(GPIO_FN_LGPIO7, LGPIO7_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO6, LGPIO6_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO5, LGPIO5_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO4, LGPIO4_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO3, LGPIO3_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO2, LGPIO2_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO1, LGPIO1_MARK),
+       PINMUX_GPIO(GPIO_FN_LGPIO0, LGPIO0_MARK),
+       PINMUX_GPIO(GPIO_FN_APMONCTL_O, APMONCTL_O_MARK),
+       PINMUX_GPIO(GPIO_FN_APMPWBTOUT_O, APMPWBTOUT_O_MARK),
+       PINMUX_GPIO(GPIO_FN_APMSCI_O, APMSCI_O_MARK),
+       PINMUX_GPIO(GPIO_FN_APMVDDON, APMVDDON_MARK),
+       PINMUX_GPIO(GPIO_FN_APMSLPBTN, APMSLPBTN_MARK),
+       PINMUX_GPIO(GPIO_FN_APMPWRBTN, APMPWRBTN_MARK),
+       PINMUX_GPIO(GPIO_FN_APMS5N, APMS5N_MARK),
+       PINMUX_GPIO(GPIO_FN_APMS3N, APMS3N_MARK),
+
+       /* PTV (mobule: LBSC, SerMux, R-SPI, EVC, GRA) */
        PINMUX_GPIO(GPIO_FN_A23, A23_MARK),
        PINMUX_GPIO(GPIO_FN_A22, A22_MARK),
        PINMUX_GPIO(GPIO_FN_A21, A21_MARK),
@@ -1472,12 +1646,20 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_A18, A18_MARK),
        PINMUX_GPIO(GPIO_FN_A17, A17_MARK),
        PINMUX_GPIO(GPIO_FN_A16, A16_MARK),
-       PINMUX_GPIO(GPIO_FN_TEND0, TEND0_MARK),
-       PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK),
-       PINMUX_GPIO(GPIO_FN_DACK1, DACK1_MARK),
-       PINMUX_GPIO(GPIO_FN_TEND1, TEND1_MARK),
+       PINMUX_GPIO(GPIO_FN_COM2_RI, COM2_RI_MARK),
+       PINMUX_GPIO(GPIO_FN_R_SPI_MOSI, R_SPI_MOSI_MARK),
+       PINMUX_GPIO(GPIO_FN_R_SPI_MISO, R_SPI_MISO_MARK),
+       PINMUX_GPIO(GPIO_FN_R_SPI_RSPCK, R_SPI_RSPCK_MARK),
+       PINMUX_GPIO(GPIO_FN_R_SPI_SSL0, R_SPI_SSL0_MARK),
+       PINMUX_GPIO(GPIO_FN_R_SPI_SSL1, R_SPI_SSL1_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT7, EVENT7_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT6, EVENT6_MARK),
+       PINMUX_GPIO(GPIO_FN_VBIOS_DI, VBIOS_DI_MARK),
+       PINMUX_GPIO(GPIO_FN_VBIOS_DO, VBIOS_DO_MARK),
+       PINMUX_GPIO(GPIO_FN_VBIOS_CLK, VBIOS_CLK_MARK),
+       PINMUX_GPIO(GPIO_FN_VBIOS_CS, VBIOS_CS_MARK),
 
-       /* PTW (mobule: LBSC) */
+       /* PTW (mobule: LBSC, EVC, SCIF) */
        PINMUX_GPIO(GPIO_FN_A16, A16_MARK),
        PINMUX_GPIO(GPIO_FN_A15, A15_MARK),
        PINMUX_GPIO(GPIO_FN_A14, A14_MARK),
@@ -1487,6 +1669,14 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_A10, A10_MARK),
        PINMUX_GPIO(GPIO_FN_A9, A9_MARK),
        PINMUX_GPIO(GPIO_FN_A8, A8_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT5, EVENT5_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT4, EVENT4_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT3, EVENT3_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT2, EVENT2_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT1, EVENT1_MARK),
+       PINMUX_GPIO(GPIO_FN_EVENT0, EVENT0_MARK),
+       PINMUX_GPIO(GPIO_FN_CTS4, CTS4_MARK),
+       PINMUX_GPIO(GPIO_FN_CTS2, CTS2_MARK),
 
        /* PTX (mobule: LBSC) */
        PINMUX_GPIO(GPIO_FN_A7, A7_MARK),
@@ -1497,6 +1687,10 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_A2, A2_MARK),
        PINMUX_GPIO(GPIO_FN_A1, A1_MARK),
        PINMUX_GPIO(GPIO_FN_A0, A0_MARK),
+       PINMUX_GPIO(GPIO_FN_RTS2, RTS2_MARK),
+       PINMUX_GPIO(GPIO_FN_SIM_D, SIM_D_MARK),
+       PINMUX_GPIO(GPIO_FN_SIM_CLK, SIM_CLK_MARK),
+       PINMUX_GPIO(GPIO_FN_SIM_RST, SIM_RST_MARK),
 
        /* PTY (mobule: LBSC) */
        PINMUX_GPIO(GPIO_FN_D7, D7_MARK),
@@ -1507,18 +1701,36 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_FN_D2, D2_MARK),
        PINMUX_GPIO(GPIO_FN_D1, D1_MARK),
        PINMUX_GPIO(GPIO_FN_D0, D0_MARK),
+
+       /* PTZ (mobule: eMMC, ONFI) */
+       PINMUX_GPIO(GPIO_FN_MMCDAT7, MMCDAT7_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT6, MMCDAT6_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT5, MMCDAT5_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT4, MMCDAT4_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT3, MMCDAT3_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT2, MMCDAT2_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT1, MMCDAT1_MARK),
+       PINMUX_GPIO(GPIO_FN_MMCDAT0, MMCDAT0_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ7, ON_DQ7_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ6, ON_DQ6_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ5, ON_DQ5_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ4, ON_DQ4_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ3, ON_DQ3_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ2, ON_DQ2_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ1, ON_DQ1_MARK),
+       PINMUX_GPIO(GPIO_FN_ON_DQ0, ON_DQ0_MARK),
  };
 
 static struct pinmux_cfg_reg pinmux_config_regs[] = {
        { PINMUX_CFG_REG("PACR", 0xffec0000, 16, 2) {
-               PTA7_FN, PTA7_OUT, PTA7_IN, 0,
-               PTA6_FN, PTA6_OUT, PTA6_IN, 0,
-               PTA5_FN, PTA5_OUT, PTA5_IN, 0,
-               PTA4_FN, PTA4_OUT, PTA4_IN, 0,
-               PTA3_FN, PTA3_OUT, PTA3_IN, 0,
-               PTA2_FN, PTA2_OUT, PTA2_IN, 0,
-               PTA1_FN, PTA1_OUT, PTA1_IN, 0,
-               PTA0_FN, PTA0_OUT, PTA0_IN, 0 }
+               PTA7_FN, PTA7_OUT, PTA7_IN, PTA7_IN_PU,
+               PTA6_FN, PTA6_OUT, PTA6_IN, PTA6_IN_PU,
+               PTA5_FN, PTA5_OUT, PTA5_IN, PTA5_IN_PU,
+               PTA4_FN, PTA4_OUT, PTA4_IN, PTA4_IN_PU,
+               PTA3_FN, PTA3_OUT, PTA3_IN, PTA3_IN_PU,
+               PTA2_FN, PTA2_OUT, PTA2_IN, PTA2_IN_PU,
+               PTA1_FN, PTA1_OUT, PTA1_IN, PTA1_IN_PU,
+               PTA0_FN, PTA0_OUT, PTA0_IN, PTA0_IN_PU }
        },
        { PINMUX_CFG_REG("PBCR", 0xffec0002, 16, 2) {
                PTB7_FN, PTB7_OUT, PTB7_IN, 0,
@@ -1541,125 +1753,126 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                PTC0_FN, PTC0_OUT, PTC0_IN, 0 }
        },
        { PINMUX_CFG_REG("PDCR", 0xffec0006, 16, 2) {
-               PTD7_FN, PTD7_OUT, PTD7_IN, 0,
-               PTD6_FN, PTD6_OUT, PTD6_IN, 0,
-               PTD5_FN, PTD5_OUT, PTD5_IN, 0,
-               PTD4_FN, PTD4_OUT, PTD4_IN, 0,
-               PTD3_FN, PTD3_OUT, PTD3_IN, 0,
-               PTD2_FN, PTD2_OUT, PTD2_IN, 0,
-               PTD1_FN, PTD1_OUT, PTD1_IN, 0,
-               PTD0_FN, PTD0_OUT, PTD0_IN, 0 }
+               PTD7_FN, PTD7_OUT, PTD7_IN, PTD7_IN_PU,
+               PTD6_FN, PTD6_OUT, PTD6_IN, PTD6_IN_PU,
+               PTD5_FN, PTD5_OUT, PTD5_IN, PTD5_IN_PU,
+               PTD4_FN, PTD4_OUT, PTD4_IN, PTD4_IN_PU,
+               PTD3_FN, PTD3_OUT, PTD3_IN, PTD3_IN_PU,
+               PTD2_FN, PTD2_OUT, PTD2_IN, PTD2_IN_PU,
+               PTD1_FN, PTD1_OUT, PTD1_IN, PTD1_IN_PU,
+               PTD0_FN, PTD0_OUT, PTD0_IN, PTD0_IN_PU }
        },
        { PINMUX_CFG_REG("PECR", 0xffec0008, 16, 2) {
-               PTE7_FN, PTE7_OUT, PTE7_IN, 0,
-               PTE6_FN, PTE6_OUT, PTE6_IN, 0,
-               PTE5_FN, PTE5_OUT, PTE5_IN, 0,
-               PTE4_FN, PTE4_OUT, PTE4_IN, 0,
-               PTE3_FN, PTE3_OUT, PTE3_IN, 0,
-               PTE2_FN, PTE2_OUT, PTE2_IN, 0,
-               PTE1_FN, PTE1_OUT, PTE1_IN, 0,
-               PTE0_FN, PTE0_OUT, PTE0_IN, 0 }
+               PTE7_FN, PTE7_OUT, PTE7_IN, PTE7_IN_PU,
+               PTE6_FN, PTE6_OUT, PTE6_IN, PTE6_IN_PU,
+               PTE5_FN, PTE5_OUT, PTE5_IN, PTE5_IN_PU,
+               PTE4_FN, PTE4_OUT, PTE4_IN, PTE4_IN_PU,
+               PTE3_FN, PTE3_OUT, PTE3_IN, PTE3_IN_PU,
+               PTE2_FN, PTE2_OUT, PTE2_IN, PTE2_IN_PU,
+               PTE1_FN, PTE1_OUT, PTE1_IN, PTE1_IN_PU,
+               PTE0_FN, PTE0_OUT, PTE0_IN, PTE0_IN_PU }
        },
        { PINMUX_CFG_REG("PFCR", 0xffec000a, 16, 2) {
-               PTF7_FN, PTF7_OUT, PTF7_IN, 0,
-               PTF6_FN, PTF6_OUT, PTF6_IN, 0,
-               PTF5_FN, PTF5_OUT, PTF5_IN, 0,
-               PTF4_FN, PTF4_OUT, PTF4_IN, 0,
-               PTF3_FN, PTF3_OUT, PTF3_IN, 0,
-               PTF2_FN, PTF2_OUT, PTF2_IN, 0,
-               PTF1_FN, PTF1_OUT, PTF1_IN, 0,
-               PTF0_FN, PTF0_OUT, PTF0_IN, 0 }
+               PTF7_FN, PTF7_OUT, PTF7_IN, PTF7_IN_PU,
+               PTF6_FN, PTF6_OUT, PTF6_IN, PTF6_IN_PU,
+               PTF5_FN, PTF5_OUT, PTF5_IN, PTF5_IN_PU,
+               PTF4_FN, PTF4_OUT, PTF4_IN, PTF4_IN_PU,
+               PTF3_FN, PTF3_OUT, PTF3_IN, PTF3_IN_PU,
+               PTF2_FN, PTF2_OUT, PTF2_IN, PTF2_IN_PU,
+               PTF1_FN, PTF1_OUT, PTF1_IN, PTF1_IN_PU,
+               PTF0_FN, PTF0_OUT, PTF0_IN, PTF0_IN_PU }
        },
        { PINMUX_CFG_REG("PGCR", 0xffec000c, 16, 2) {
-               PTG7_FN, PTG7_OUT, PTG7_IN, 0,
-               PTG6_FN, PTG6_OUT, PTG6_IN, 0,
+               PTG7_FN, PTG7_OUT, PTG7_IN, PTG7_IN_PU ,
+               PTG6_FN, PTG6_OUT, PTG6_IN, PTG6_IN_PU ,
                PTG5_FN, PTG5_OUT, PTG5_IN, 0,
-               PTG4_FN, PTG4_OUT, PTG4_IN, 0,
+               PTG4_FN, PTG4_OUT, PTG4_IN, PTG4_IN_PU ,
                PTG3_FN, PTG3_OUT, PTG3_IN, 0,
                PTG2_FN, PTG2_OUT, PTG2_IN, 0,
                PTG1_FN, PTG1_OUT, PTG1_IN, 0,
                PTG0_FN, PTG0_OUT, PTG0_IN, 0 }
        },
        { PINMUX_CFG_REG("PHCR", 0xffec000e, 16, 2) {
-               PTH7_FN, PTH7_OUT, PTH7_IN, 0,
-               PTH6_FN, PTH6_OUT, PTH6_IN, 0,
-               PTH5_FN, PTH5_OUT, PTH5_IN, 0,
-               PTH4_FN, PTH4_OUT, PTH4_IN, 0,
-               PTH3_FN, PTH3_OUT, PTH3_IN, 0,
-               PTH2_FN, PTH2_OUT, PTH2_IN, 0,
-               PTH1_FN, PTH1_OUT, PTH1_IN, 0,
-               PTH0_FN, PTH0_OUT, PTH0_IN, 0 }
+               PTH7_FN, PTH7_OUT, PTH7_IN, PTH7_IN_PU,
+               PTH6_FN, PTH6_OUT, PTH6_IN, PTH6_IN_PU,
+               PTH5_FN, PTH5_OUT, PTH5_IN, PTH5_IN_PU,
+               PTH4_FN, PTH4_OUT, PTH4_IN, PTH4_IN_PU,
+               PTH3_FN, PTH3_OUT, PTH3_IN, PTH3_IN_PU,
+               PTH2_FN, PTH2_OUT, PTH2_IN, PTH2_IN_PU,
+               PTH1_FN, PTH1_OUT, PTH1_IN, PTH1_IN_PU,
+               PTH0_FN, PTH0_OUT, PTH0_IN, PTH0_IN_PU }
        },
        { PINMUX_CFG_REG("PICR", 0xffec0010, 16, 2) {
-               PTI7_FN, PTI7_OUT, PTI7_IN, 0,
-               PTI6_FN, PTI6_OUT, PTI6_IN, 0,
+               PTI7_FN, PTI7_OUT, PTI7_IN, PTI7_IN_PU,
+               PTI6_FN, PTI6_OUT, PTI6_IN, PTI6_IN_PU,
                PTI5_FN, PTI5_OUT, PTI5_IN, 0,
-               PTI4_FN, PTI4_OUT, PTI4_IN, 0,
-               PTI3_FN, PTI3_OUT, PTI3_IN, 0,
-               PTI2_FN, PTI2_OUT, PTI2_IN, 0,
-               PTI1_FN, PTI1_OUT, PTI1_IN, 0,
-               PTI0_FN, PTI0_OUT, PTI0_IN, 0 }
+               PTI4_FN, PTI4_OUT, PTI4_IN, PTI4_IN_PU,
+               PTI3_FN, PTI3_OUT, PTI3_IN, PTI3_IN_PU,
+               PTI2_FN, PTI2_OUT, PTI2_IN, PTI2_IN_PU,
+               PTI1_FN, PTI1_OUT, PTI1_IN, PTI1_IN_PU,
+               PTI0_FN, PTI0_OUT, PTI0_IN, PTI0_IN_PU }
        },
        { PINMUX_CFG_REG("PJCR", 0xffec0012, 16, 2) {
-               PTJ7_FN, PTJ7_OUT, PTJ7_IN, 0,
-               PTJ6_FN, PTJ6_OUT, PTJ6_IN, 0,
-               PTJ5_FN, PTJ5_OUT, PTJ5_IN, 0,
-               PTJ4_FN, PTJ4_OUT, PTJ4_IN, 0,
-               PTJ3_FN, PTJ3_OUT, PTJ3_IN, 0,
-               PTJ2_FN, PTJ2_OUT, PTJ2_IN, 0,
-               PTJ1_FN, PTJ1_OUT, PTJ1_IN, 0,
-               PTJ0_FN, PTJ0_OUT, PTJ0_IN, 0 }
+               0, 0, 0, 0,     /* reserved: always set 1 */
+               PTJ6_FN, PTJ6_OUT, PTJ6_IN, PTJ6_IN_PU,
+               PTJ5_FN, PTJ5_OUT, PTJ5_IN, PTJ5_IN_PU,
+               PTJ4_FN, PTJ4_OUT, PTJ4_IN, PTJ4_IN_PU,
+               PTJ3_FN, PTJ3_OUT, PTJ3_IN, PTJ3_IN_PU,
+               PTJ2_FN, PTJ2_OUT, PTJ2_IN, PTJ2_IN_PU,
+               PTJ1_FN, PTJ1_OUT, PTJ1_IN, PTJ1_IN_PU,
+               PTJ0_FN, PTJ0_OUT, PTJ0_IN, PTJ0_IN_PU }
        },
        { PINMUX_CFG_REG("PKCR", 0xffec0014, 16, 2) {
-               PTK7_FN, PTK7_OUT, PTK7_IN, 0,
-               PTK6_FN, PTK6_OUT, PTK6_IN, 0,
-               PTK5_FN, PTK5_OUT, PTK5_IN, 0,
-               PTK4_FN, PTK4_OUT, PTK4_IN, 0,
-               PTK3_FN, PTK3_OUT, PTK3_IN, 0,
-               PTK2_FN, PTK2_OUT, PTK2_IN, 0,
-               PTK1_FN, PTK1_OUT, PTK1_IN, 0,
-               PTK0_FN, PTK0_OUT, PTK0_IN, 0 }
+               PTK7_FN, PTK7_OUT, PTK7_IN, PTK7_IN_PU,
+               PTK6_FN, PTK6_OUT, PTK6_IN, PTK6_IN_PU,
+               PTK5_FN, PTK5_OUT, PTK5_IN, PTK5_IN_PU,
+               PTK4_FN, PTK4_OUT, PTK4_IN, PTK4_IN_PU,
+               PTK3_FN, PTK3_OUT, PTK3_IN, PTK3_IN_PU,
+               PTK2_FN, PTK2_OUT, PTK2_IN, PTK2_IN_PU,
+               PTK1_FN, PTK1_OUT, PTK1_IN, PTK1_IN_PU,
+               PTK0_FN, PTK0_OUT, PTK0_IN, PTK0_IN_PU }
        },
        { PINMUX_CFG_REG("PLCR", 0xffec0016, 16, 2) {
-               PTL7_FN, PTL7_OUT, PTL7_IN, 0,
-               PTL6_FN, PTL6_OUT, PTL6_IN, 0,
-               PTL5_FN, PTL5_OUT, PTL5_IN, 0,
-               PTL4_FN, PTL4_OUT, PTL4_IN, 0,
-               PTL3_FN, PTL3_OUT, PTL3_IN, 0,
-               PTL2_FN, PTL2_OUT, PTL2_IN, 0,
-               PTL1_FN, PTL1_OUT, PTL1_IN, 0,
-               PTL0_FN, PTL0_OUT, PTL0_IN, 0 }
+               0, 0, 0, 0,     /* reserved: always set 1 */
+               PTL6_FN, PTL6_OUT, PTL6_IN, PTL6_IN_PU,
+               PTL5_FN, PTL5_OUT, PTL5_IN, PTL5_IN_PU,
+               PTL4_FN, PTL4_OUT, PTL4_IN, PTL4_IN_PU,
+               PTL3_FN, PTL3_OUT, PTL3_IN, PTL3_IN_PU,
+               PTL2_FN, PTL2_OUT, PTL2_IN, PTL2_IN_PU,
+               PTL1_FN, PTL1_OUT, PTL1_IN, PTL1_IN_PU,
+               PTL0_FN, PTL0_OUT, PTL0_IN, PTL0_IN_PU }
        },
        { PINMUX_CFG_REG("PMCR", 0xffec0018, 16, 2) {
-               0, 0, 0, 0,     /* reserved: always set 1 */
-               PTM6_FN, PTM6_OUT, PTM6_IN, 0,
-               PTM5_FN, PTM5_OUT, PTM5_IN, 0,
-               PTM4_FN, PTM4_OUT, PTM4_IN, 0,
+               PTM7_FN, PTM7_OUT, PTM7_IN, PTM7_IN_PU,
+               PTM6_FN, PTM6_OUT, PTM6_IN, PTM6_IN_PU,
+               PTM5_FN, PTM5_OUT, PTM5_IN, PTM5_IN_PU,
+               PTM4_FN, PTM4_OUT, PTM4_IN, PTM4_IN_PU,
                PTM3_FN, PTM3_OUT, PTM3_IN, 0,
                PTM2_FN, PTM2_OUT, PTM2_IN, 0,
                PTM1_FN, PTM1_OUT, PTM1_IN, 0,
                PTM0_FN, PTM0_OUT, PTM0_IN, 0 }
        },
        { PINMUX_CFG_REG("PNCR", 0xffec001a, 16, 2) {
-               PTN7_FN, PTN7_OUT, PTN7_IN, 0,
+               0, 0, 0, 0,     /* reserved: always set 1 */
                PTN6_FN, PTN6_OUT, PTN6_IN, 0,
                PTN5_FN, PTN5_OUT, PTN5_IN, 0,
-               PTN4_FN, PTN4_OUT, PTN4_IN, 0,
-               PTN3_FN, PTN3_OUT, PTN3_IN, 0,
-               PTN2_FN, PTN2_OUT, PTN2_IN, 0,
-               PTN1_FN, PTN1_OUT, PTN1_IN, 0,
-               PTN0_FN, PTN0_OUT, PTN0_IN, 0 }
+               PTN4_FN, PTN4_OUT, PTN4_IN, PTN4_IN_PU,
+               PTN3_FN, PTN3_OUT, PTN3_IN, PTN3_IN_PU,
+               PTN2_FN, PTN2_OUT, PTN2_IN, PTN2_IN_PU,
+               PTN1_FN, PTN1_OUT, PTN1_IN, PTN1_IN_PU,
+               PTN0_FN, PTN0_OUT, PTN0_IN, PTN0_IN_PU }
        },
        { PINMUX_CFG_REG("POCR", 0xffec001c, 16, 2) {
-               PTO7_FN, PTO7_OUT, PTO7_IN, 0,
-               PTO6_FN, PTO6_OUT, PTO6_IN, 0,
-               PTO5_FN, PTO5_OUT, PTO5_IN, 0,
-               PTO4_FN, PTO4_OUT, PTO4_IN, 0,
-               PTO3_FN, PTO3_OUT, PTO3_IN, 0,
-               PTO2_FN, PTO2_OUT, PTO2_IN, 0,
-               PTO1_FN, PTO1_OUT, PTO1_IN, 0,
-               PTO0_FN, PTO0_OUT, PTO0_IN, 0 }
+               PTO7_FN, PTO7_OUT, PTO7_IN, PTO7_IN_PU,
+               PTO6_FN, PTO6_OUT, PTO6_IN, PTO6_IN_PU,
+               PTO5_FN, PTO5_OUT, PTO5_IN, PTO5_IN_PU,
+               PTO4_FN, PTO4_OUT, PTO4_IN, PTO4_IN_PU,
+               PTO3_FN, PTO3_OUT, PTO3_IN, PTO3_IN_PU,
+               PTO2_FN, PTO2_OUT, PTO2_IN, PTO2_IN_PU,
+               PTO1_FN, PTO1_OUT, PTO1_IN, PTO1_IN_PU,
+               PTO0_FN, PTO0_OUT, PTO0_IN, PTO0_IN_PU }
        },
+#if 0  /* FIXME: Remove it? */
        { PINMUX_CFG_REG("PPCR", 0xffec001e, 16, 2) {
                0, 0, 0, 0,     /* reserved: always set 1 */
                PTP6_FN, PTP6_OUT, PTP6_IN, 0,
@@ -1670,6 +1883,7 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                PTP1_FN, PTP1_OUT, PTP1_IN, 0,
                PTP0_FN, PTP0_OUT, PTP0_IN, 0 }
        },
+#endif
        { PINMUX_CFG_REG("PQCR", 0xffec0020, 16, 2) {
                0, 0, 0, 0,     /* reserved: always set 1 */
                PTQ6_FN, PTQ6_OUT, PTQ6_IN, 0,
@@ -1701,14 +1915,14 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                PTS0_FN, PTS0_OUT, PTS0_IN, 0 }
        },
        { PINMUX_CFG_REG("PTCR", 0xffec0026, 16, 2) {
-               0, 0, 0, 0,     /* reserved: always set 1 */
-               0, 0, 0, 0,     /* reserved: always set 1 */
-               PTT5_FN, PTT5_OUT, PTT5_IN, 0,
-               PTT4_FN, PTT4_OUT, PTT4_IN, 0,
-               PTT3_FN, PTT3_OUT, PTT3_IN, 0,
-               PTT2_FN, PTT2_OUT, PTT2_IN, 0,
-               PTT1_FN, PTT1_OUT, PTT1_IN, 0,
-               PTT0_FN, PTT0_OUT, PTT0_IN, 0 }
+               PTT7_FN, PTT7_OUT, PTT7_IN, PTO7_IN_PU,
+               PTT6_FN, PTT6_OUT, PTT6_IN, PTO6_IN_PU,
+               PTT5_FN, PTT5_OUT, PTT5_IN, PTO5_IN_PU,
+               PTT4_FN, PTT4_OUT, PTT4_IN, PTO4_IN_PU,
+               PTT3_FN, PTT3_OUT, PTT3_IN, PTO3_IN_PU,
+               PTT2_FN, PTT2_OUT, PTT2_IN, PTO2_IN_PU,
+               PTT1_FN, PTT1_OUT, PTT1_IN, PTO1_IN_PU,
+               PTT0_FN, PTT0_OUT, PTT0_IN, PTO0_IN_PU }
        },
        { PINMUX_CFG_REG("PUCR", 0xffec0028, 16, 2) {
                PTU7_FN, PTU7_OUT, PTU7_IN, PTU7_IN_PU,
@@ -1727,16 +1941,16 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                PTV4_FN, PTV4_OUT, PTV4_IN, PTV4_IN_PU,
                PTV3_FN, PTV3_OUT, PTV3_IN, PTV3_IN_PU,
                PTV2_FN, PTV2_OUT, PTV2_IN, PTV2_IN_PU,
-               PTV1_FN, PTV1_OUT, PTV1_IN, PTV1_IN_PU,
-               PTV0_FN, PTV0_OUT, PTV0_IN, PTV0_IN_PU }
+               PTV1_FN, PTV1_OUT, PTV1_IN, 0,
+               PTV0_FN, PTV0_OUT, PTV0_IN, 0 }
        },
        { PINMUX_CFG_REG("PWCR", 0xffec002c, 16, 2) {
-               PTW7_FN, PTW7_OUT, PTW7_IN, PTW7_IN_PU,
-               PTW6_FN, PTW6_OUT, PTW6_IN, PTW6_IN_PU,
-               PTW5_FN, PTW5_OUT, PTW5_IN, PTW5_IN_PU,
-               PTW4_FN, PTW4_OUT, PTW4_IN, PTW4_IN_PU,
-               PTW3_FN, PTW3_OUT, PTW3_IN, PTW3_IN_PU,
-               PTW2_FN, PTW2_OUT, PTW2_IN, PTW2_IN_PU,
+               PTW7_FN, PTW7_OUT, PTW7_IN, 0,
+               PTW6_FN, PTW6_OUT, PTW6_IN, 0,
+               PTW5_FN, PTW5_OUT, PTW5_IN, 0,
+               PTW4_FN, PTW4_OUT, PTW4_IN, 0,
+               PTW3_FN, PTW3_OUT, PTW3_IN, 0,
+               PTW2_FN, PTW2_OUT, PTW2_IN, 0,
                PTW1_FN, PTW1_OUT, PTW1_IN, PTW1_IN_PU,
                PTW0_FN, PTW0_OUT, PTW0_IN, PTW0_IN_PU }
        },
@@ -1761,32 +1975,32 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                PTY0_FN, PTY0_OUT, PTY0_IN, PTY0_IN_PU }
        },
        { PINMUX_CFG_REG("PZCR", 0xffec0032, 16, 2) {
-               0, PTZ7_OUT, PTZ7_IN, 0,
-               0, PTZ6_OUT, PTZ6_IN, 0,
-               0, PTZ5_OUT, PTZ5_IN, 0,
-               0, PTZ4_OUT, PTZ4_IN, 0,
-               0, PTZ3_OUT, PTZ3_IN, 0,
-               0, PTZ2_OUT, PTZ2_IN, 0,
-               0, PTZ1_OUT, PTZ1_IN, 0,
-               0, PTZ0_OUT, PTZ0_IN, 0 }
+               PTZ7_FN, PTZ7_OUT, PTZ7_IN, 0,
+               PTZ6_FN, PTZ6_OUT, PTZ6_IN, 0,
+               PTZ5_FN, PTZ5_OUT, PTZ5_IN, 0,
+               PTZ4_FN, PTZ4_OUT, PTZ4_IN, 0,
+               PTZ3_FN, PTZ3_OUT, PTZ3_IN, 0,
+               PTZ2_FN, PTZ2_OUT, PTZ2_IN, 0,
+               PTZ1_FN, PTZ1_OUT, PTZ1_IN, 0,
+               PTZ0_FN, PTZ0_OUT, PTZ0_IN, 0 }
        },
 
        { PINMUX_CFG_REG("PSEL0", 0xffec0070, 16, 1) {
-               PS0_15_FN3, PS0_15_FN1,
-               PS0_14_FN3, PS0_14_FN1,
-               PS0_13_FN3, PS0_13_FN1,
-               PS0_12_FN3, PS0_12_FN1,
-               0, 0,
-               0, 0,
+               PS0_15_FN1, PS0_15_FN2,
+               PS0_14_FN1, PS0_14_FN2,
+               PS0_13_FN1, PS0_13_FN2,
+               PS0_12_FN1, PS0_12_FN2,
+               PS0_11_FN1, PS0_11_FN2,
+               PS0_10_FN1, PS0_10_FN2,
+               PS0_9_FN1, PS0_9_FN2,
+               PS0_8_FN1, PS0_8_FN2,
+               PS0_7_FN1, PS0_7_FN2,
+               PS0_6_FN1, PS0_6_FN2,
+               PS0_5_FN1, PS0_5_FN2,
+               PS0_4_FN1, PS0_4_FN2,
+               PS0_3_FN1, PS0_3_FN2,
+               PS0_2_FN1, PS0_2_FN2,
                0, 0,
-               0, 0,
-               PS0_7_FN2, PS0_7_FN1,
-               PS0_6_FN2, PS0_6_FN1,
-               PS0_5_FN2, PS0_5_FN1,
-               PS0_4_FN2, PS0_4_FN1,
-               PS0_3_FN2, PS0_3_FN1,
-               PS0_2_FN2, PS0_2_FN1,
-               PS0_1_FN2, PS0_1_FN1,
                0, 0, }
        },
        { PINMUX_CFG_REG("PSEL1", 0xffec0072, 16, 1) {
@@ -1795,73 +2009,136 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                0, 0,
                0, 0,
                0, 0,
+               PS1_10_FN1, PS1_10_FN2,
+               PS1_9_FN1, PS1_9_FN2,
+               PS1_8_FN1, PS1_8_FN2,
                0, 0,
                0, 0,
                0, 0,
-               PS1_7_FN1, PS1_7_FN3,
-               PS1_6_FN1, PS1_6_FN3,
-               0, 0,
-               0, 0,
                0, 0,
                0, 0,
+               PS1_2_FN1, PS1_2_FN2,
                0, 0,
                0, 0, }
        },
        { PINMUX_CFG_REG("PSEL2", 0xffec0074, 16, 1) {
                0, 0,
                0, 0,
-               PS2_13_FN3, PS2_13_FN1,
-               PS2_12_FN3, PS2_12_FN1,
+               PS2_13_FN1, PS2_13_FN2,
+               PS2_12_FN1, PS2_12_FN2,
                0, 0,
                0, 0,
                0, 0,
                0, 0,
+               PS2_7_FN1, PS2_7_FN2,
+               PS2_6_FN1, PS2_6_FN2,
+               PS2_5_FN1, PS2_5_FN2,
+               PS2_4_FN1, PS2_4_FN2,
                0, 0,
+               PS2_2_FN1, PS2_2_FN2,
                0, 0,
+               0, 0, }
+       },
+       { PINMUX_CFG_REG("PSEL3", 0xffec0076, 16, 1) {
+               PS3_15_FN1, PS3_15_FN2,
+               PS3_14_FN1, PS3_14_FN2,
+               PS3_13_FN1, PS3_13_FN2,
+               PS3_12_FN1, PS3_12_FN2,
+               PS3_11_FN1, PS3_11_FN2,
+               PS3_10_FN1, PS3_10_FN2,
+               PS3_9_FN1, PS3_9_FN2,
+               PS3_8_FN1, PS3_8_FN2,
+               PS3_7_FN1, PS3_7_FN2,
                0, 0,
                0, 0,
                0, 0,
                0, 0,
-               PS2_1_FN1, PS2_1_FN2,
-               PS2_0_FN1, PS2_0_FN2, }
+               PS3_2_FN1, PS3_2_FN2,
+               PS3_1_FN1, PS3_1_FN2,
+               0, 0, }
        },
+
        { PINMUX_CFG_REG("PSEL4", 0xffec0078, 16, 1) {
-               PS4_15_FN2, PS4_15_FN1,
-               PS4_14_FN2, PS4_14_FN1,
-               PS4_13_FN2, PS4_13_FN1,
-               PS4_12_FN2, PS4_12_FN1,
-               PS4_11_FN2, PS4_11_FN1,
-               PS4_10_FN2, PS4_10_FN1,
-               PS4_9_FN2, PS4_9_FN1,
                0, 0,
+               PS4_14_FN1, PS4_14_FN2,
+               PS4_13_FN1, PS4_13_FN2,
+               PS4_12_FN1, PS4_12_FN2,
                0, 0,
+               PS4_10_FN1, PS4_10_FN2,
+               PS4_9_FN1, PS4_9_FN2,
+               PS4_8_FN1, PS4_8_FN2,
                0, 0,
                0, 0,
                0, 0,
-               PS4_3_FN2, PS4_3_FN1,
-               PS4_2_FN2, PS4_2_FN1,
-               PS4_1_FN2, PS4_1_FN1,
-               PS4_0_FN2, PS4_0_FN1, }
+               PS4_4_FN1, PS4_4_FN2,
+               PS4_3_FN1, PS4_3_FN2,
+               PS4_2_FN1, PS4_2_FN2,
+               PS4_1_FN1, PS4_1_FN2,
+               PS4_0_FN1, PS4_0_FN2, }
        },
        { PINMUX_CFG_REG("PSEL5", 0xffec007a, 16, 1) {
                0, 0,
                0, 0,
                0, 0,
                0, 0,
-               0, 0,
-               0, 0,
+               PS5_11_FN1, PS5_11_FN2,
+               PS5_10_FN1, PS5_10_FN2,
                PS5_9_FN1, PS5_9_FN2,
                PS5_8_FN1, PS5_8_FN2,
                PS5_7_FN1, PS5_7_FN2,
                PS5_6_FN1, PS5_6_FN2,
                PS5_5_FN1, PS5_5_FN2,
+               PS5_4_FN1, PS5_4_FN2,
+               PS5_3_FN1, PS5_3_FN2,
+               PS5_2_FN1, PS5_2_FN2,
+               0, 0,
+               0, 0, }
+       },
+       { PINMUX_CFG_REG("PSEL6", 0xffec007c, 16, 1) {
+               PS6_15_FN1, PS6_15_FN2,
+               PS6_14_FN1, PS6_14_FN2,
+               PS6_13_FN1, PS6_13_FN2,
+               PS6_12_FN1, PS6_12_FN2,
+               PS6_11_FN1, PS6_11_FN2,
+               PS6_10_FN1, PS6_10_FN2,
+               PS6_9_FN1, PS6_9_FN2,
+               PS6_8_FN1, PS6_8_FN2,
+               PS6_7_FN1, PS6_7_FN2,
+               PS6_6_FN1, PS6_6_FN2,
+               PS6_5_FN1, PS6_5_FN2,
+               PS6_4_FN1, PS6_4_FN2,
+               PS6_3_FN1, PS6_3_FN2,
+               PS6_2_FN1, PS6_2_FN2,
+               PS6_1_FN1, PS6_1_FN2,
+               PS6_0_FN1, PS6_0_FN2, }
+       },
+       { PINMUX_CFG_REG("PSEL7", 0xffec0082, 16, 1) {
+               PS7_15_FN1, PS7_15_FN2,
+               PS7_14_FN1, PS7_14_FN2,
+               PS7_13_FN1, PS7_13_FN2,
+               PS7_12_FN1, PS7_12_FN2,
+               PS7_11_FN1, PS7_11_FN2,
+               PS7_10_FN1, PS7_10_FN2,
+               PS7_9_FN1, PS7_9_FN2,
+               PS7_8_FN1, PS7_8_FN2,
+               PS7_7_FN1, PS7_7_FN2,
+               PS7_6_FN1, PS7_6_FN2,
+               PS7_5_FN1, PS7_5_FN2,
                0, 0,
                0, 0,
                0, 0,
                0, 0,
                0, 0, }
        },
-       { PINMUX_CFG_REG("PSEL6", 0xffec007c, 16, 1) {
+       { PINMUX_CFG_REG("PSEL8", 0xffec0084, 16, 1) {
+               PS8_15_FN1, PS8_15_FN2,
+               PS8_14_FN1, PS8_14_FN2,
+               PS8_13_FN1, PS8_13_FN2,
+               PS8_12_FN1, PS8_12_FN2,
+               PS8_11_FN1, PS8_11_FN2,
+               PS8_10_FN1, PS8_10_FN2,
+               PS8_9_FN1, PS8_9_FN2,
+               PS8_8_FN1, PS8_8_FN2,
                0, 0,
                0, 0,
                0, 0,
@@ -1869,15 +2146,7 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
                0, 0,
                0, 0,
                0, 0,
-               0, 0,
-               PS6_7_FN_AN, PS6_7_FN_EV,
-               PS6_6_FN_AN, PS6_6_FN_EV,
-               PS6_5_FN_AN, PS6_5_FN_EV,
-               PS6_4_FN_AN, PS6_4_FN_EV,
-               PS6_3_FN_AN, PS6_3_FN_EV,
-               PS6_2_FN_AN, PS6_2_FN_EV,
-               PS6_1_FN_AN, PS6_1_FN_EV,
-               PS6_0_FN_AN, PS6_0_FN_EV, }
+               0, 0, }
        },
        {}
 };
@@ -1920,7 +2189,7 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
                PTI3_DATA, PTI2_DATA, PTI1_DATA, PTI0_DATA }
        },
        { PINMUX_DATA_REG("PJDR", 0xffec0046, 8) {
-               PTJ7_DATA, PTJ6_DATA, PTJ5_DATA, PTJ4_DATA,
+               0, PTJ6_DATA, PTJ5_DATA, PTJ4_DATA,
                PTJ3_DATA, PTJ2_DATA, PTJ1_DATA, PTJ0_DATA }
        },
        { PINMUX_DATA_REG("PKDR", 0xffec0048, 8) {
@@ -1928,15 +2197,15 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
                PTK3_DATA, PTK2_DATA, PTK1_DATA, PTK0_DATA }
        },
        { PINMUX_DATA_REG("PLDR", 0xffec004a, 8) {
-               PTL7_DATA, PTL6_DATA, PTL5_DATA, PTL4_DATA,
+               0, PTL6_DATA, PTL5_DATA, PTL4_DATA,
                PTL3_DATA, PTL2_DATA, PTL1_DATA, PTL0_DATA }
        },
        { PINMUX_DATA_REG("PMDR", 0xffec004c, 8) {
-               0, PTM6_DATA, PTM5_DATA, PTM4_DATA,
+               PTM7_DATA, PTM6_DATA, PTM5_DATA, PTM4_DATA,
                PTM3_DATA, PTM2_DATA, PTM1_DATA, PTM0_DATA }
        },
        { PINMUX_DATA_REG("PNDR", 0xffec004e, 8) {
-               PTN7_DATA, PTN6_DATA, PTN5_DATA, PTN4_DATA,
+               0, PTN6_DATA, PTN5_DATA, PTN4_DATA,
                PTN3_DATA, PTN2_DATA, PTN1_DATA, PTN0_DATA }
        },
        { PINMUX_DATA_REG("PODR", 0xffec0050, 8) {
@@ -1944,7 +2213,7 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
                PTO3_DATA, PTO2_DATA, PTO1_DATA, PTO0_DATA }
        },
        { PINMUX_DATA_REG("PPDR", 0xffec0052, 8) {
-               0, PTP6_DATA, PTP5_DATA, PTP4_DATA,
+               PTP7_DATA, PTP6_DATA, PTP5_DATA, PTP4_DATA,
                PTP3_DATA, PTP2_DATA, PTP1_DATA, PTP0_DATA }
        },
        { PINMUX_DATA_REG("PQDR", 0xffec0054, 8) {
@@ -1960,7 +2229,7 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
                PTS3_DATA, PTS2_DATA, PTS1_DATA, PTS0_DATA }
        },
        { PINMUX_DATA_REG("PTDR", 0xffec005a, 8) {
-               0, 0, PTT5_DATA, PTT4_DATA,
+               PTT7_DATA, PTT6_DATA, PTT5_DATA, PTT4_DATA,
                PTT3_DATA, PTT2_DATA, PTT1_DATA, PTT0_DATA }
        },
        { PINMUX_DATA_REG("PUDR", 0xffec005c, 8) {
@@ -2000,8 +2269,8 @@ static struct pinmux_info sh7757_pinmux_info = {
        .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
        .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
 
-       .first_gpio = GPIO_PTA7,
-       .last_gpio = GPIO_FN_D0,
+       .first_gpio = GPIO_PTA0,
+       .last_gpio = GPIO_FN_ON_DQ0,
 
        .gpios = pinmux_gpios,
        .cfg_regs = pinmux_config_regs,
@@ -2015,5 +2284,4 @@ static int __init plat_pinmux_setup(void)
 {
        return register_pinmux(&sh7757_pinmux_info);
 }
-
 arch_initcall(plat_pinmux_setup);
index 79c556e..828c965 100644 (file)
@@ -524,6 +524,70 @@ static struct platform_device veu1_device = {
        },
 };
 
+/* BEU0 */
+static struct uio_info beu0_platform_data = {
+       .name = "BEU0",
+       .version = "0",
+       .irq = evt2irq(0x8A0),
+};
+
+static struct resource beu0_resources[] = {
+       [0] = {
+               .name   = "BEU0",
+               .start  = 0xfe930000,
+               .end    = 0xfe933400,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               /* place holder for contiguous memory */
+       },
+};
+
+static struct platform_device beu0_device = {
+       .name           = "uio_pdrv_genirq",
+       .id             = 6,
+       .dev = {
+               .platform_data  = &beu0_platform_data,
+       },
+       .resource       = beu0_resources,
+       .num_resources  = ARRAY_SIZE(beu0_resources),
+       .archdata = {
+               .hwblk_id = HWBLK_BEU0,
+       },
+};
+
+/* BEU1 */
+static struct uio_info beu1_platform_data = {
+       .name = "BEU1",
+       .version = "0",
+       .irq = evt2irq(0xA00),
+};
+
+static struct resource beu1_resources[] = {
+       [0] = {
+               .name   = "BEU1",
+               .start  = 0xfe940000,
+               .end    = 0xfe943400,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               /* place holder for contiguous memory */
+       },
+};
+
+static struct platform_device beu1_device = {
+       .name           = "uio_pdrv_genirq",
+       .id             = 7,
+       .dev = {
+               .platform_data  = &beu1_platform_data,
+       },
+       .resource       = beu1_resources,
+       .num_resources  = ARRAY_SIZE(beu1_resources),
+       .archdata = {
+               .hwblk_id = HWBLK_BEU1,
+       },
+};
+
 static struct sh_timer_config cmt_platform_data = {
        .channel_offset = 0x60,
        .timer_bit = 5,
@@ -857,6 +921,8 @@ static struct platform_device *sh7724_devices[] __initdata = {
        &vpu_device,
        &veu0_device,
        &veu1_device,
+       &beu0_device,
+       &beu1_device,
        &jpu_device,
        &spu0_device,
        &spu1_device,
index 444aca9..749c638 100644 (file)
@@ -26,7 +26,7 @@ static struct plat_sci_port scif2_platform_data = {
 
 static struct platform_device scif2_device = {
        .name           = "sh-sci",
-       .id             = 2,
+       .id             = 0,
        .dev            = {
                .platform_data  = &scif2_platform_data,
        },
@@ -41,7 +41,7 @@ static struct plat_sci_port scif3_platform_data = {
 
 static struct platform_device scif3_device = {
        .name           = "sh-sci",
-       .id             = 3,
+       .id             = 1,
        .dev            = {
                .platform_data  = &scif3_platform_data,
        },
@@ -56,7 +56,7 @@ static struct plat_sci_port scif4_platform_data = {
 
 static struct platform_device scif4_device = {
        .name           = "sh-sci",
-       .id             = 4,
+       .id             = 2,
        .dev            = {
                .platform_data  = &scif4_platform_data,
        },
@@ -163,39 +163,23 @@ enum {
        IRL4_HHLL, IRL4_HHLH, IRL4_HHHL,
        IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7,
 
-       SDHI,
-       DVC,
-       IRQ8, IRQ9, IRQ10,
-       WDT0,
-       TMU0, TMU1, TMU2, TMU2_TICPI,
+       SDHI, DVC,
+       IRQ8, IRQ9, IRQ11, IRQ10, IRQ12, IRQ13, IRQ14, IRQ15,
+       TMU0, TMU1, TMU2, TMU2_TICPI, TMU3, TMU4, TMU5,
        HUDI,
-
        ARC4,
-       DMAC0,
-       IRQ11,
-       SCIF2,
-       DMAC1_6,
-       USB0,
-       IRQ12,
+       DMAC0_5, DMAC6_7, DMAC8_11,
+       SCIF0, SCIF1, SCIF2, SCIF3, SCIF4,
+       USB0, USB1,
        JMC,
-       SPI1,
-       IRQ13, IRQ14,
-       USB1,
+       SPI0, SPI1,
        TMR01, TMR23, TMR45,
-       WDT1,
        FRT,
-       LPC,
-       SCIF0, SCIF1, SCIF3,
-       PECI0I, PECI1I, PECI2I,
-       IRQ15,
+       LPC, LPC5, LPC6, LPC7, LPC8,
+       PECI0, PECI1, PECI2, PECI3, PECI4, PECI5,
        ETHERC,
-       SPI0,
-       ADC1,
-       DMAC1_8,
+       ADC0, ADC1,
        SIM,
-       TMU3, TMU4, TMU5,
-       ADC0,
-       SCIF4,
        IIC0_0, IIC0_1, IIC0_2, IIC0_3,
        IIC1_0, IIC1_1, IIC1_2, IIC1_3,
        IIC2_0, IIC2_1, IIC2_2, IIC2_3,
@@ -206,9 +190,23 @@ enum {
        IIC7_0, IIC7_1, IIC7_2, IIC7_3,
        IIC8_0, IIC8_1, IIC8_2, IIC8_3,
        IIC9_0, IIC9_1, IIC9_2, IIC9_3,
-       PCIINTA,
-       PCIE,
+       ONFICTL,
+       MMC1, MMC2,
+       ECCU,
+       PCIC,
+       G200,
+       RSPI,
        SGPIO,
+       DMINT12, DMINT13, DMINT14, DMINT15, DMINT16, DMINT17, DMINT18, DMINT19,
+       DMINT20, DMINT21, DMINT22, DMINT23,
+       DDRECC,
+       TSIP,
+       PCIE_BRIDGE,
+       WDT0B, WDT1B, WDT2B, WDT3B, WDT4B, WDT5B, WDT6B, WDT7B, WDT8B,
+       GETHER0, GETHER1, GETHER2,
+       PBIA, PBIB, PBIC,
+       DMAE2, DMAE3,
+       SERMUX2, SERMUX3,
 
        /* interrupt groups */
 
@@ -221,19 +219,18 @@ static struct intc_vect vectors[] __initdata = {
        INTC_VECT(DVC, 0x4e0),
        INTC_VECT(IRQ8, 0x500), INTC_VECT(IRQ9, 0x520),
        INTC_VECT(IRQ10, 0x540),
-       INTC_VECT(WDT0, 0x560),
        INTC_VECT(TMU0, 0x580), INTC_VECT(TMU1, 0x5a0),
        INTC_VECT(TMU2, 0x5c0), INTC_VECT(TMU2_TICPI, 0x5e0),
        INTC_VECT(HUDI, 0x600),
        INTC_VECT(ARC4, 0x620),
-       INTC_VECT(DMAC0, 0x640), INTC_VECT(DMAC0, 0x660),
-       INTC_VECT(DMAC0, 0x680), INTC_VECT(DMAC0, 0x6a0),
-       INTC_VECT(DMAC0, 0x6c0),
+       INTC_VECT(DMAC0_5, 0x640), INTC_VECT(DMAC0_5, 0x660),
+       INTC_VECT(DMAC0_5, 0x680), INTC_VECT(DMAC0_5, 0x6a0),
+       INTC_VECT(DMAC0_5, 0x6c0),
        INTC_VECT(IRQ11, 0x6e0),
        INTC_VECT(SCIF2, 0x700), INTC_VECT(SCIF2, 0x720),
        INTC_VECT(SCIF2, 0x740), INTC_VECT(SCIF2, 0x760),
-       INTC_VECT(DMAC0, 0x780), INTC_VECT(DMAC0, 0x7a0),
-       INTC_VECT(DMAC1_6, 0x7c0), INTC_VECT(DMAC1_6, 0x7e0),
+       INTC_VECT(DMAC0_5, 0x780), INTC_VECT(DMAC0_5, 0x7a0),
+       INTC_VECT(DMAC6_7, 0x7c0), INTC_VECT(DMAC6_7, 0x7e0),
        INTC_VECT(USB0, 0x840),
        INTC_VECT(IRQ12, 0x880),
        INTC_VECT(JMC, 0x8a0),
@@ -242,7 +239,6 @@ static struct intc_vect vectors[] __initdata = {
        INTC_VECT(USB1, 0x920),
        INTC_VECT(TMR01, 0xa00), INTC_VECT(TMR23, 0xa20),
        INTC_VECT(TMR45, 0xa40),
-       INTC_VECT(WDT1, 0xa60),
        INTC_VECT(FRT, 0xa80),
        INTC_VECT(LPC, 0xaa0), INTC_VECT(LPC, 0xac0),
        INTC_VECT(LPC, 0xae0), INTC_VECT(LPC, 0xb00),
@@ -250,14 +246,14 @@ static struct intc_vect vectors[] __initdata = {
        INTC_VECT(SCIF0, 0xb40), INTC_VECT(SCIF1, 0xb60),
        INTC_VECT(SCIF3, 0xb80), INTC_VECT(SCIF3, 0xba0),
        INTC_VECT(SCIF3, 0xbc0), INTC_VECT(SCIF3, 0xbe0),
-       INTC_VECT(PECI0I, 0xc00), INTC_VECT(PECI1I, 0xc20),
-       INTC_VECT(PECI2I, 0xc40),
+       INTC_VECT(PECI0, 0xc00), INTC_VECT(PECI1, 0xc20),
+       INTC_VECT(PECI2, 0xc40),
        INTC_VECT(IRQ15, 0xc60),
        INTC_VECT(ETHERC, 0xc80), INTC_VECT(ETHERC, 0xca0),
        INTC_VECT(SPI0, 0xcc0),
        INTC_VECT(ADC1, 0xce0),
-       INTC_VECT(DMAC1_8, 0xd00), INTC_VECT(DMAC1_8, 0xd20),
-       INTC_VECT(DMAC1_8, 0xd40), INTC_VECT(DMAC1_8, 0xd60),
+       INTC_VECT(DMAC8_11, 0xd00), INTC_VECT(DMAC8_11, 0xd20),
+       INTC_VECT(DMAC8_11, 0xd40), INTC_VECT(DMAC8_11, 0xd60),
        INTC_VECT(SIM, 0xd80), INTC_VECT(SIM, 0xda0),
        INTC_VECT(SIM, 0xdc0), INTC_VECT(SIM, 0xde0),
        INTC_VECT(TMU3, 0xe00), INTC_VECT(TMU4, 0xe20),
@@ -278,17 +274,47 @@ static struct intc_vect vectors[] __initdata = {
        INTC_VECT(IIC5_0, 0x1860), INTC_VECT(IIC5_1, 0x1880),
        INTC_VECT(IIC5_2, 0x18a0), INTC_VECT(IIC5_3, 0x18c0),
        INTC_VECT(IIC6_0, 0x18e0), INTC_VECT(IIC6_1, 0x1900),
-       INTC_VECT(IIC6_2, 0x1920), INTC_VECT(IIC6_3, 0x1980),
+       INTC_VECT(IIC6_2, 0x1920),
+       INTC_VECT(ONFICTL, 0x1960),
+       INTC_VECT(IIC6_3, 0x1980),
        INTC_VECT(IIC7_0, 0x19a0), INTC_VECT(IIC7_1, 0x1a00),
        INTC_VECT(IIC7_2, 0x1a20), INTC_VECT(IIC7_3, 0x1a40),
        INTC_VECT(IIC8_0, 0x1a60), INTC_VECT(IIC8_1, 0x1a80),
        INTC_VECT(IIC8_2, 0x1aa0), INTC_VECT(IIC8_3, 0x1b40),
        INTC_VECT(IIC9_0, 0x1b60), INTC_VECT(IIC9_1, 0x1b80),
        INTC_VECT(IIC9_2, 0x1c00), INTC_VECT(IIC9_3, 0x1c20),
-       INTC_VECT(PCIINTA, 0x1ce0),
-       INTC_VECT(PCIE, 0x1e00),
-       INTC_VECT(SGPIO, 0x1f80),
-       INTC_VECT(SGPIO, 0x1fa0),
+       INTC_VECT(MMC1, 0x1c60), INTC_VECT(MMC2, 0x1c80),
+       INTC_VECT(ECCU, 0x1cc0),
+       INTC_VECT(PCIC, 0x1ce0),
+       INTC_VECT(G200, 0x1d00),
+       INTC_VECT(RSPI, 0x1d80), INTC_VECT(RSPI, 0x1da0),
+       INTC_VECT(RSPI, 0x1dc0), INTC_VECT(RSPI, 0x1de0),
+       INTC_VECT(PECI3, 0x1ec0), INTC_VECT(PECI4, 0x1ee0),
+       INTC_VECT(PECI5, 0x1f00),
+       INTC_VECT(SGPIO, 0x1f80), INTC_VECT(SGPIO, 0x1fa0),
+       INTC_VECT(SGPIO, 0x1fc0),
+       INTC_VECT(DMINT12, 0x2400), INTC_VECT(DMINT13, 0x2420),
+       INTC_VECT(DMINT14, 0x2440), INTC_VECT(DMINT15, 0x2460),
+       INTC_VECT(DMINT16, 0x2480), INTC_VECT(DMINT17, 0x24e0),
+       INTC_VECT(DMINT18, 0x2500), INTC_VECT(DMINT19, 0x2520),
+       INTC_VECT(DMINT20, 0x2540), INTC_VECT(DMINT21, 0x2560),
+       INTC_VECT(DMINT22, 0x2580), INTC_VECT(DMINT23, 0x2600),
+       INTC_VECT(DDRECC, 0x2620),
+       INTC_VECT(TSIP, 0x2640),
+       INTC_VECT(PCIE_BRIDGE, 0x27c0),
+       INTC_VECT(WDT0B, 0x2800), INTC_VECT(WDT1B, 0x2820),
+       INTC_VECT(WDT2B, 0x2840), INTC_VECT(WDT3B, 0x2860),
+       INTC_VECT(WDT4B, 0x2880), INTC_VECT(WDT5B, 0x28a0),
+       INTC_VECT(WDT6B, 0x28c0), INTC_VECT(WDT7B, 0x28e0),
+       INTC_VECT(WDT8B, 0x2900),
+       INTC_VECT(GETHER0, 0x2960), INTC_VECT(GETHER1, 0x2980),
+       INTC_VECT(GETHER2, 0x29a0),
+       INTC_VECT(PBIA, 0x2a00), INTC_VECT(PBIB, 0x2a20),
+       INTC_VECT(PBIC, 0x2a40),
+       INTC_VECT(DMAE2, 0x2a60), INTC_VECT(DMAE3, 0x2a80),
+       INTC_VECT(SERMUX2, 0x2aa0), INTC_VECT(SERMUX3, 0x2b40),
+       INTC_VECT(LPC5, 0x2b60), INTC_VECT(LPC6, 0x2b80),
+       INTC_VECT(LPC7, 0x2c00), INTC_VECT(LPC8, 0x2c20),
 };
 
 static struct intc_group groups[] __initdata = {
@@ -312,31 +338,45 @@ static struct intc_mask_reg mask_registers[] __initdata = {
 
        { 0xffd40038, 0xffd4003c, 32, /* INT2MSKR / INT2MSKCR */
          { 0, 0, 0, 0, 0, 0, 0, 0,
-           0, DMAC1_8, 0, PECI0I, LPC, FRT, WDT1, TMR45,
-           TMR23, TMR01, 0, 0, 0, 0, 0, DMAC0,
-           HUDI, 0, WDT0, SCIF3, SCIF2, SDHI, TMU345, TMU012
+           0, DMAC8_11, 0, PECI0, LPC, FRT, 0, TMR45,
+           TMR23, TMR01, 0, 0, 0, 0, 0, DMAC0_5,
+           HUDI, 0, 0, SCIF3, SCIF2, SDHI, TMU345, TMU012
             } },
 
        { 0xffd400d0, 0xffd400d4, 32, /* INT2MSKR1 / INT2MSKCR1 */
          { IRQ15, IRQ14, IRQ13, IRQ12, IRQ11, IRQ10, SCIF4, ETHERC,
            IRQ9, IRQ8, SCIF1, SCIF0, USB0, 0, 0, USB1,
-           ADC1, 0, DMAC1_6, ADC0, SPI0, SIM, PECI2I, PECI1I,
+           ADC1, 0, DMAC6_7, ADC0, SPI0, SIM, PECI2, PECI1,
            ARC4, 0, SPI1, JMC, 0, 0, 0, DVC
             } },
 
        { 0xffd10038, 0xffd1003c, 32, /* INT2MSKR2 / INT2MSKCR2 */
-         { IIC4_1, IIC4_2, IIC5_0, 0, 0, 0, SGPIO, 0,
-           0, 0, 0, IIC9_2, IIC8_2, IIC8_1, IIC8_0, IIC7_3,
+         { IIC4_1, IIC4_2, IIC5_0, ONFICTL, 0, 0, SGPIO, 0,
+           0, G200, 0, IIC9_2, IIC8_2, IIC8_1, IIC8_0, IIC7_3,
            IIC7_2, IIC7_1, IIC6_3, IIC0_0, IIC0_1, IIC0_2, IIC0_3, IIC3_1,
-           IIC2_3, 0, IIC2_1, IIC9_1, IIC3_3, IIC1_0, PCIE, IIC2_2
+           IIC2_3, 0, IIC2_1, IIC9_1, IIC3_3, IIC1_0, 0, IIC2_2
             } },
 
-       { 0xffd100d0, 0xff1400d4, 32, /* INT2MSKR3 / INT2MSKCR4 */
-         { 0, IIC6_1, IIC6_0, IIC5_1, IIC3_2, IIC2_0, 0, 0,
+       { 0xffd100d0, 0xffd100d4, 32, /* INT2MSKR3 / INT2MSKCR3 */
+         { MMC1, IIC6_1, IIC6_0, IIC5_1, IIC3_2, IIC2_0, PECI5, MMC2,
            IIC1_3, IIC1_2, IIC9_0, IIC8_3, IIC4_3, IIC7_0, 0, IIC6_2,
-           PCIINTA, 0, IIC4_0, 0, 0, 0, 0, IIC9_3,
+           PCIC, 0, IIC4_0, 0, ECCU, RSPI, 0, IIC9_3,
            IIC3_0, 0, IIC5_3, IIC5_2, 0, 0, 0, IIC1_1
             } },
+
+       { 0xffd20038, 0xffd2003c, 32, /* INT2MSKR4 / INT2MSKCR4 */
+         { WDT0B, WDT1B, WDT3B, GETHER0, 0, 0, 0, 0,
+           0, 0, 0, LPC7, SERMUX2, DMAE3, DMAE2, PBIC,
+           PBIB, PBIA, GETHER1, DMINT12, DMINT13, DMINT14, DMINT15, TSIP,
+           DMINT23, 0, DMINT21, LPC6, 0, DMINT16, 0, DMINT22
+            } },
+
+       { 0xffd200d0, 0xffd200d4, 32, /* INT2MSKR5 / INT2MSKCR5 */
+         { 0, WDT8B, WDT7B, WDT4B, 0, DMINT20, 0, 0,
+           DMINT19, DMINT18, LPC5, SERMUX3, WDT2B, GETHER2, 0, 0,
+           0, 0, PCIE_BRIDGE, 0, 0, 0, 0, LPC8,
+           DDRECC, 0, WDT6B, WDT5B, 0, 0, 0, DMINT17
+            } },
 };
 
 #define INTPRI         0xffd00010
@@ -372,6 +412,22 @@ static struct intc_mask_reg mask_registers[] __initdata = {
 #define INT2PRI29      0xffd100b4
 #define INT2PRI30      0xffd100b8
 #define INT2PRI31      0xffd100bc
+#define INT2PRI32      0xffd20000
+#define INT2PRI33      0xffd20004
+#define INT2PRI34      0xffd20008
+#define INT2PRI35      0xffd2000c
+#define INT2PRI36      0xffd20010
+#define INT2PRI37      0xffd20014
+#define INT2PRI38      0xffd20018
+#define INT2PRI39      0xffd2001c
+#define INT2PRI40      0xffd200a0
+#define INT2PRI41      0xffd200a4
+#define INT2PRI42      0xffd200a8
+#define INT2PRI43      0xffd200ac
+#define INT2PRI44      0xffd200b0
+#define INT2PRI45      0xffd200b4
+#define INT2PRI46      0xffd200b8
+#define INT2PRI47      0xffd200bc
 
 static struct intc_prio_reg prio_registers[] __initdata = {
        { INTPRI, 0, 32, 4, { IRQ0, IRQ1, IRQ2, IRQ3,
@@ -379,39 +435,61 @@ static struct intc_prio_reg prio_registers[] __initdata = {
 
        { INT2PRI0, 0, 32, 8, { TMU0, TMU1, TMU2, TMU2_TICPI } },
        { INT2PRI1, 0, 32, 8, { TMU3, TMU4, TMU5, SDHI } },
-       { INT2PRI2, 0, 32, 8, { SCIF2, SCIF3, WDT0, IRQ8 } },
-       { INT2PRI3, 0, 32, 8, { HUDI, DMAC0, ADC0, IRQ9 } },
+       { INT2PRI2, 0, 32, 8, { SCIF2, SCIF3, 0, IRQ8 } },
+       { INT2PRI3, 0, 32, 8, { HUDI, DMAC0_5, ADC0, IRQ9 } },
        { INT2PRI4, 0, 32, 8, { IRQ10, 0, TMR01, TMR23 } },
-       { INT2PRI5, 0, 32, 8, { TMR45, WDT1, FRT, LPC } },
-       { INT2PRI6, 0, 32, 8, { PECI0I, ETHERC, DMAC1_8, 0 } },
+       { INT2PRI5, 0, 32, 8, { TMR45, 0, FRT, LPC } },
+       { INT2PRI6, 0, 32, 8, { PECI0, ETHERC, DMAC8_11, 0 } },
        { INT2PRI7, 0, 32, 8, { SCIF4, 0, IRQ11, IRQ12 } },
        { INT2PRI8, 0, 32, 8, { 0, 0, 0, DVC } },
        { INT2PRI9, 0, 32, 8, { ARC4, 0, SPI1, JMC } },
-       { INT2PRI10, 0, 32, 8, { SPI0, SIM, PECI2I, PECI1I } },
-       { INT2PRI11, 0, 32, 8, { ADC1, IRQ13, DMAC1_6, IRQ14 } },
+       { INT2PRI10, 0, 32, 8, { SPI0, SIM, PECI2, PECI1 } },
+       { INT2PRI11, 0, 32, 8, { ADC1, IRQ13, DMAC6_7, IRQ14 } },
        { INT2PRI12, 0, 32, 8, { USB0, 0, IRQ15, USB1 } },
        { INT2PRI13, 0, 32, 8, { 0, 0, SCIF1, SCIF0 } },
 
        { INT2PRI16, 0, 32, 8, { IIC2_2, 0, 0, 0 } },
-       { INT2PRI17, 0, 32, 8, { PCIE, 0, 0, IIC1_0 } },
+       { INT2PRI17, 0, 32, 8, { 0, 0, 0, IIC1_0 } },
        { INT2PRI18, 0, 32, 8, { IIC3_3, IIC9_1, IIC2_1, IIC1_2 } },
        { INT2PRI19, 0, 32, 8, { IIC2_3, IIC3_1, 0, IIC1_3 } },
        { INT2PRI20, 0, 32, 8, { IIC2_0, IIC6_3, IIC7_1, IIC7_2 } },
        { INT2PRI21, 0, 32, 8, { IIC7_3, IIC8_0, IIC8_1, IIC8_2 } },
-       { INT2PRI22, 0, 32, 8, { IIC9_2, 0, 0, 0 } },
-       { INT2PRI23, 0, 32, 8, { 0, SGPIO, IIC3_2, IIC5_1 } },
-       { INT2PRI24, 0, 32, 8, { 0, 0, 0, IIC1_1 } },
+       { INT2PRI22, 0, 32, 8, { IIC9_2, MMC2, G200, 0 } },
+       { INT2PRI23, 0, 32, 8, { PECI5, SGPIO, IIC3_2, IIC5_1 } },
+       { INT2PRI24, 0, 32, 8, { PECI4, PECI3, 0, IIC1_1 } },
        { INT2PRI25, 0, 32, 8, { IIC3_0, 0, IIC5_3, IIC5_2 } },
-       { INT2PRI26, 0, 32, 8, { 0, 0, 0, IIC9_3 } },
-       { INT2PRI27, 0, 32, 8, { PCIINTA, IIC6_0, IIC4_0, IIC6_1 } },
-       { INT2PRI28, 0, 32, 8, { IIC4_3, IIC7_0, 0, IIC6_2 } },
+       { INT2PRI26, 0, 32, 8, { ECCU, RSPI, 0, IIC9_3 } },
+       { INT2PRI27, 0, 32, 8, { PCIC, IIC6_0, IIC4_0, IIC6_1 } },
+       { INT2PRI28, 0, 32, 8, { IIC4_3, IIC7_0, MMC1, IIC6_2 } },
        { INT2PRI29, 0, 32, 8, { 0, 0, IIC9_0, IIC8_3 } },
-       { INT2PRI30, 0, 32, 8, { IIC4_1, IIC4_2, IIC5_0, 0 } },
+       { INT2PRI30, 0, 32, 8, { IIC4_1, IIC4_2, IIC5_0, ONFICTL } },
        { INT2PRI31, 0, 32, 8, { IIC0_0, IIC0_1, IIC0_2, IIC0_3 } },
+       { INT2PRI32, 0, 32, 8, { DMINT22, 0, 0, 0 } },
+       { INT2PRI33, 0, 32, 8, { 0, 0, 0, DMINT16 } },
+       { INT2PRI34, 0, 32, 8, { 0, LPC6, DMINT21, DMINT18 } },
+       { INT2PRI35, 0, 32, 8, { DMINT23, TSIP, 0, DMINT19 } },
+       { INT2PRI36, 0, 32, 8, { DMINT20, GETHER1, PBIA, PBIB } },
+       { INT2PRI37, 0, 32, 8, { PBIC, DMAE2, DMAE3, SERMUX2 } },
+       { INT2PRI38, 0, 32, 8, { LPC7, 0, 0, 0 } },
+       { INT2PRI39, 0, 32, 8, { 0, 0, 0, WDT4B } },
+       { INT2PRI40, 0, 32, 8, { 0, 0, 0, DMINT17 } },
+       { INT2PRI41, 0, 32, 8, { DDRECC, 0, WDT6B, WDT5B } },
+       { INT2PRI42, 0, 32, 8, { 0, 0, 0, LPC8 } },
+       { INT2PRI43, 0, 32, 8, { 0, WDT7B, PCIE_BRIDGE, WDT8B } },
+       { INT2PRI44, 0, 32, 8, { WDT2B, GETHER2, 0, 0 } },
+       { INT2PRI45, 0, 32, 8, { 0, 0, LPC5, SERMUX3 } },
+       { INT2PRI46, 0, 32, 8, { WDT0B, WDT1B, WDT3B, GETHER0 } },
+       { INT2PRI47, 0, 32, 8, { DMINT12, DMINT13, DMINT14, DMINT15 } },
+};
+
+static struct intc_sense_reg sense_registers_irq8to15[] __initdata = {
+       { 0xffd100f8, 32, 2, /* ICR2 */   { IRQ15, IRQ14, IRQ13, IRQ12,
+                                           IRQ11, IRQ10, IRQ9, IRQ8 } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7757", vectors, groups,
-                        mask_registers, prio_registers, NULL);
+                        mask_registers, prio_registers,
+                        sense_registers_irq8to15);
 
 /* Support for external interrupt pins in IRQ mode */
 static struct intc_vect vectors_irq0123[] __initdata = {
index 4049d99..1208b09 100644 (file)
@@ -20,9 +20,9 @@
 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL;
 DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
 
-static struct kprobe saved_current_opcode;
-static struct kprobe saved_next_opcode;
-static struct kprobe saved_next_opcode2;
+static DEFINE_PER_CPU(struct kprobe, saved_current_opcode);
+static DEFINE_PER_CPU(struct kprobe, saved_next_opcode);
+static DEFINE_PER_CPU(struct kprobe, saved_next_opcode2);
 
 #define OPCODE_JMP(x)  (((x) & 0xF0FF) == 0x402b)
 #define OPCODE_JSR(x)  (((x) & 0xF0FF) == 0x400b)
@@ -102,16 +102,21 @@ int __kprobes kprobe_handle_illslot(unsigned long pc)
 
 void __kprobes arch_remove_kprobe(struct kprobe *p)
 {
-       if (saved_next_opcode.addr != 0x0) {
+       struct kprobe *saved = &__get_cpu_var(saved_next_opcode);
+
+       if (saved->addr) {
                arch_disarm_kprobe(p);
-               arch_disarm_kprobe(&saved_next_opcode);
-               saved_next_opcode.addr = 0x0;
-               saved_next_opcode.opcode = 0x0;
-
-               if (saved_next_opcode2.addr != 0x0) {
-                       arch_disarm_kprobe(&saved_next_opcode2);
-                       saved_next_opcode2.addr = 0x0;
-                       saved_next_opcode2.opcode = 0x0;
+               arch_disarm_kprobe(saved);
+
+               saved->addr = NULL;
+               saved->opcode = 0;
+
+               saved = &__get_cpu_var(saved_next_opcode2);
+               if (saved->addr) {
+                       arch_disarm_kprobe(saved);
+
+                       saved->addr = NULL;
+                       saved->opcode = 0;
                }
        }
 }
@@ -141,57 +146,59 @@ static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
  */
 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
 {
-       kprobe_opcode_t *addr = NULL;
-       saved_current_opcode.addr = (kprobe_opcode_t *) (regs->pc);
-       addr = saved_current_opcode.addr;
+       __get_cpu_var(saved_current_opcode).addr = (kprobe_opcode_t *)regs->pc;
 
        if (p != NULL) {
+               struct kprobe *op1, *op2;
+
                arch_disarm_kprobe(p);
 
+               op1 = &__get_cpu_var(saved_next_opcode);
+               op2 = &__get_cpu_var(saved_next_opcode2);
+
                if (OPCODE_JSR(p->opcode) || OPCODE_JMP(p->opcode)) {
                        unsigned int reg_nr = ((p->opcode >> 8) & 0x000F);
-                       saved_next_opcode.addr =
-                           (kprobe_opcode_t *) regs->regs[reg_nr];
+                       op1->addr = (kprobe_opcode_t *) regs->regs[reg_nr];
                } else if (OPCODE_BRA(p->opcode) || OPCODE_BSR(p->opcode)) {
                        unsigned long disp = (p->opcode & 0x0FFF);
-                       saved_next_opcode.addr =
+                       op1->addr =
                            (kprobe_opcode_t *) (regs->pc + 4 + disp * 2);
 
                } else if (OPCODE_BRAF(p->opcode) || OPCODE_BSRF(p->opcode)) {
                        unsigned int reg_nr = ((p->opcode >> 8) & 0x000F);
-                       saved_next_opcode.addr =
+                       op1->addr =
                            (kprobe_opcode_t *) (regs->pc + 4 +
                                                 regs->regs[reg_nr]);
 
                } else if (OPCODE_RTS(p->opcode)) {
-                       saved_next_opcode.addr = (kprobe_opcode_t *) regs->pr;
+                       op1->addr = (kprobe_opcode_t *) regs->pr;
 
                } else if (OPCODE_BF(p->opcode) || OPCODE_BT(p->opcode)) {
                        unsigned long disp = (p->opcode & 0x00FF);
                        /* case 1 */
-                       saved_next_opcode.addr = p->addr + 1;
+                       op1->addr = p->addr + 1;
                        /* case 2 */
-                       saved_next_opcode2.addr =
+                       op2->addr =
                            (kprobe_opcode_t *) (regs->pc + 4 + disp * 2);
-                       saved_next_opcode2.opcode = *(saved_next_opcode2.addr);
-                       arch_arm_kprobe(&saved_next_opcode2);
+                       op2->opcode = *(op2->addr);
+                       arch_arm_kprobe(op2);
 
                } else if (OPCODE_BF_S(p->opcode) || OPCODE_BT_S(p->opcode)) {
                        unsigned long disp = (p->opcode & 0x00FF);
                        /* case 1 */
-                       saved_next_opcode.addr = p->addr + 2;
+                       op1->addr = p->addr + 2;
                        /* case 2 */
-                       saved_next_opcode2.addr =
+                       op2->addr =
                            (kprobe_opcode_t *) (regs->pc + 4 + disp * 2);
-                       saved_next_opcode2.opcode = *(saved_next_opcode2.addr);
-                       arch_arm_kprobe(&saved_next_opcode2);
+                       op2->opcode = *(op2->addr);
+                       arch_arm_kprobe(op2);
 
                } else {
-                       saved_next_opcode.addr = p->addr + 1;
+                       op1->addr = p->addr + 1;
                }
 
-               saved_next_opcode.opcode = *(saved_next_opcode.addr);
-               arch_arm_kprobe(&saved_next_opcode);
+               op1->opcode = *(op1->addr);
+               arch_arm_kprobe(op1);
        }
 }
 
@@ -376,21 +383,23 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
                cur->post_handler(cur, regs, 0);
        }
 
-       if (saved_next_opcode.addr != 0x0) {
-               arch_disarm_kprobe(&saved_next_opcode);
-               saved_next_opcode.addr = 0x0;
-               saved_next_opcode.opcode = 0x0;
+       p = &__get_cpu_var(saved_next_opcode);
+       if (p->addr) {
+               arch_disarm_kprobe(p);
+               p->addr = NULL;
+               p->opcode = 0;
 
-               addr = saved_current_opcode.addr;
-               saved_current_opcode.addr = 0x0;
+               addr = __get_cpu_var(saved_current_opcode).addr;
+               __get_cpu_var(saved_current_opcode).addr = NULL;
 
                p = get_kprobe(addr);
                arch_arm_kprobe(p);
 
-               if (saved_next_opcode2.addr != 0x0) {
-                       arch_disarm_kprobe(&saved_next_opcode2);
-                       saved_next_opcode2.addr = 0x0;
-                       saved_next_opcode2.opcode = 0x0;
+               p = &__get_cpu_var(saved_next_opcode2);
+               if (p->addr) {
+                       arch_disarm_kprobe(p);
+                       p->addr = NULL;
+                       p->opcode = 0;
                }
        }
 
@@ -572,14 +581,5 @@ static struct kprobe trampoline_p = {
 
 int __init arch_init_kprobes(void)
 {
-       saved_next_opcode.addr = 0x0;
-       saved_next_opcode.opcode = 0x0;
-
-       saved_current_opcode.addr = 0x0;
-       saved_current_opcode.opcode = 0x0;
-
-       saved_next_opcode2.addr = 0x0;
-       saved_next_opcode2.opcode = 0x0;
-
        return register_kprobe(&trampoline_p);
 }
diff --git a/arch/sh/kernel/ptrace.c b/arch/sh/kernel/ptrace.c
new file mode 100644 (file)
index 0000000..0a05983
--- /dev/null
@@ -0,0 +1,33 @@
+#include <linux/ptrace.h>
+
+/**
+ * regs_query_register_offset() - query register offset from its name
+ * @name:      the name of a register
+ *
+ * regs_query_register_offset() returns the offset of a register in struct
+ * pt_regs from its name. If the name is invalid, this returns -EINVAL;
+ */
+int regs_query_register_offset(const char *name)
+{
+       const struct pt_regs_offset *roff;
+       for (roff = regoffset_table; roff->name != NULL; roff++)
+               if (!strcmp(roff->name, name))
+                       return roff->offset;
+       return -EINVAL;
+}
+
+/**
+ * regs_query_register_name() - query register name from its offset
+ * @offset:    the offset of a register in struct pt_regs.
+ *
+ * regs_query_register_name() returns the name of a register from its
+ * offset in struct pt_regs. If the @offset is invalid, this returns NULL;
+ */
+const char *regs_query_register_name(unsigned int offset)
+{
+       const struct pt_regs_offset *roff;
+       for (roff = regoffset_table; roff->name != NULL; roff++)
+               if (roff->offset == offset)
+                       return roff->name;
+       return NULL;
+}
index 6c4bbba..2cd42b5 100644 (file)
@@ -274,6 +274,33 @@ static int dspregs_active(struct task_struct *target,
 }
 #endif
 
+const struct pt_regs_offset regoffset_table[] = {
+       REGS_OFFSET_NAME(0),
+       REGS_OFFSET_NAME(1),
+       REGS_OFFSET_NAME(2),
+       REGS_OFFSET_NAME(3),
+       REGS_OFFSET_NAME(4),
+       REGS_OFFSET_NAME(5),
+       REGS_OFFSET_NAME(6),
+       REGS_OFFSET_NAME(7),
+       REGS_OFFSET_NAME(8),
+       REGS_OFFSET_NAME(9),
+       REGS_OFFSET_NAME(10),
+       REGS_OFFSET_NAME(11),
+       REGS_OFFSET_NAME(12),
+       REGS_OFFSET_NAME(13),
+       REGS_OFFSET_NAME(14),
+       REGS_OFFSET_NAME(15),
+       REG_OFFSET_NAME(pc),
+       REG_OFFSET_NAME(pr),
+       REG_OFFSET_NAME(sr),
+       REG_OFFSET_NAME(gbr),
+       REG_OFFSET_NAME(mach),
+       REG_OFFSET_NAME(macl),
+       REG_OFFSET_NAME(tra),
+       REG_OFFSET_END,
+};
+
 /*
  * These are our native regset flavours.
  */
index 5fd644d..b978170 100644 (file)
@@ -252,6 +252,85 @@ static int fpregs_active(struct task_struct *target,
 }
 #endif
 
+const struct pt_regs_offset regoffset_table[] = {
+       REG_OFFSET_NAME(pc),
+       REG_OFFSET_NAME(sr),
+       REG_OFFSET_NAME(syscall_nr),
+       REGS_OFFSET_NAME(0),
+       REGS_OFFSET_NAME(1),
+       REGS_OFFSET_NAME(2),
+       REGS_OFFSET_NAME(3),
+       REGS_OFFSET_NAME(4),
+       REGS_OFFSET_NAME(5),
+       REGS_OFFSET_NAME(6),
+       REGS_OFFSET_NAME(7),
+       REGS_OFFSET_NAME(8),
+       REGS_OFFSET_NAME(9),
+       REGS_OFFSET_NAME(10),
+       REGS_OFFSET_NAME(11),
+       REGS_OFFSET_NAME(12),
+       REGS_OFFSET_NAME(13),
+       REGS_OFFSET_NAME(14),
+       REGS_OFFSET_NAME(15),
+       REGS_OFFSET_NAME(16),
+       REGS_OFFSET_NAME(17),
+       REGS_OFFSET_NAME(18),
+       REGS_OFFSET_NAME(19),
+       REGS_OFFSET_NAME(20),
+       REGS_OFFSET_NAME(21),
+       REGS_OFFSET_NAME(22),
+       REGS_OFFSET_NAME(23),
+       REGS_OFFSET_NAME(24),
+       REGS_OFFSET_NAME(25),
+       REGS_OFFSET_NAME(26),
+       REGS_OFFSET_NAME(27),
+       REGS_OFFSET_NAME(28),
+       REGS_OFFSET_NAME(29),
+       REGS_OFFSET_NAME(30),
+       REGS_OFFSET_NAME(31),
+       REGS_OFFSET_NAME(32),
+       REGS_OFFSET_NAME(33),
+       REGS_OFFSET_NAME(34),
+       REGS_OFFSET_NAME(35),
+       REGS_OFFSET_NAME(36),
+       REGS_OFFSET_NAME(37),
+       REGS_OFFSET_NAME(38),
+       REGS_OFFSET_NAME(39),
+       REGS_OFFSET_NAME(40),
+       REGS_OFFSET_NAME(41),
+       REGS_OFFSET_NAME(42),
+       REGS_OFFSET_NAME(43),
+       REGS_OFFSET_NAME(44),
+       REGS_OFFSET_NAME(45),
+       REGS_OFFSET_NAME(46),
+       REGS_OFFSET_NAME(47),
+       REGS_OFFSET_NAME(48),
+       REGS_OFFSET_NAME(49),
+       REGS_OFFSET_NAME(50),
+       REGS_OFFSET_NAME(51),
+       REGS_OFFSET_NAME(52),
+       REGS_OFFSET_NAME(53),
+       REGS_OFFSET_NAME(54),
+       REGS_OFFSET_NAME(55),
+       REGS_OFFSET_NAME(56),
+       REGS_OFFSET_NAME(57),
+       REGS_OFFSET_NAME(58),
+       REGS_OFFSET_NAME(59),
+       REGS_OFFSET_NAME(60),
+       REGS_OFFSET_NAME(61),
+       REGS_OFFSET_NAME(62),
+       REGS_OFFSET_NAME(63),
+       TREGS_OFFSET_NAME(0),
+       TREGS_OFFSET_NAME(1),
+       TREGS_OFFSET_NAME(2),
+       TREGS_OFFSET_NAME(3),
+       TREGS_OFFSET_NAME(4),
+       TREGS_OFFSET_NAME(5),
+       TREGS_OFFSET_NAME(6),
+       TREGS_OFFSET_NAME(7),
+       REG_OFFSET_END,
+};
+
 /*
  * These are our native regset flavours.
  */
index b1fca66..ca6a5ca 100644 (file)
@@ -9,6 +9,7 @@
 #include <asm/addrspace.h>
 #include <asm/reboot.h>
 #include <asm/system.h>
+#include <asm/tlbflush.h>
 
 void (*pm_power_off)(void);
 EXPORT_SYMBOL(pm_power_off);
@@ -25,6 +26,9 @@ static void native_machine_restart(char * __unused)
 {
        local_irq_disable();
 
+       /* Destroy all of the TLBs in preparation for reset by MMU */
+       __flush_tlb_global();
+
        /* Address error with SR.BL=1 first. */
        trigger_address_error();
 
index c86a085..0387932 100644 (file)
@@ -38,11 +38,12 @@ void *dma_generic_alloc_coherent(struct device *dev, size_t size,
        void *ret, *ret_nocache;
        int order = get_order(size);
 
+       gfp |= __GFP_ZERO;
+
        ret = (void *)__get_free_pages(gfp, order);
        if (!ret)
                return NULL;
 
-       memset(ret, 0, size);
        /*
         * Pages from the page allocator may have data present in
         * cache. So flush the cache before using uncached memory.
index d0e2491..105f559 100644 (file)
@@ -47,7 +47,6 @@ static pte_t *__get_pte_phys(unsigned long addr)
        pgd_t *pgd;
        pud_t *pud;
        pmd_t *pmd;
-       pte_t *pte;
 
        pgd = pgd_offset_k(addr);
        if (pgd_none(*pgd)) {
@@ -67,8 +66,7 @@ static pte_t *__get_pte_phys(unsigned long addr)
                return NULL;
        }
 
-       pte = pte_offset_kernel(pmd, addr);
-       return pte;
+       return pte_offset_kernel(pmd, addr);
 }
 
 static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
@@ -125,13 +123,45 @@ void __clear_fixmap(enum fixed_addresses idx, pgprot_t prot)
        clear_pte_phys(address, prot);
 }
 
+static pmd_t * __init one_md_table_init(pud_t *pud)
+{
+       if (pud_none(*pud)) {
+               pmd_t *pmd;
+
+               pmd = alloc_bootmem_pages(PAGE_SIZE);
+               pud_populate(&init_mm, pud, pmd);
+               BUG_ON(pmd != pmd_offset(pud, 0));
+       }
+
+       return pmd_offset(pud, 0);
+}
+
+static pte_t * __init one_page_table_init(pmd_t *pmd)
+{
+       if (pmd_none(*pmd)) {
+               pte_t *pte;
+
+               pte = alloc_bootmem_pages(PAGE_SIZE);
+               pmd_populate_kernel(&init_mm, pmd, pte);
+               BUG_ON(pte != pte_offset_kernel(pmd, 0));
+       }
+
+       return pte_offset_kernel(pmd, 0);
+}
+
+static pte_t * __init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
+                                           unsigned long vaddr, pte_t *lastpte)
+{
+       return pte;
+}
+
 void __init page_table_range_init(unsigned long start, unsigned long end,
                                         pgd_t *pgd_base)
 {
        pgd_t *pgd;
        pud_t *pud;
        pmd_t *pmd;
-       pte_t *pte;
+       pte_t *pte = NULL;
        int i, j, k;
        unsigned long vaddr;
 
@@ -144,19 +174,13 @@ void __init page_table_range_init(unsigned long start, unsigned long end,
        for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) {
                pud = (pud_t *)pgd;
                for ( ; (j < PTRS_PER_PUD) && (vaddr != end); pud++, j++) {
-#ifdef __PAGETABLE_PMD_FOLDED
-                       pmd = (pmd_t *)pud;
-#else
-                       pmd = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
-                       pud_populate(&init_mm, pud, pmd);
+                       pmd = one_md_table_init(pud);
+#ifndef __PAGETABLE_PMD_FOLDED
                        pmd += k;
 #endif
                        for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
-                               if (pmd_none(*pmd)) {
-                                       pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
-                                       pmd_populate_kernel(&init_mm, pmd, pte);
-                                       BUG_ON(pte != pte_offset_kernel(pmd, 0));
-                               }
+                               pte = page_table_kmap_check(one_page_table_init(pmd),
+                                                           pmd, vaddr, pte);
                                vaddr += PMD_SIZE;
                        }
                        k = 0;
index 3fbe03c..a6a20d6 100644 (file)
@@ -119,3 +119,19 @@ void local_flush_tlb_mm(struct mm_struct *mm)
                local_irq_restore(flags);
        }
 }
+
+void __flush_tlb_global(void)
+{
+       unsigned long flags;
+
+       local_irq_save(flags);
+
+       /*
+        * This is the most destructive of the TLB flushing options,
+        * and will tear down all of the UTLB/ITLB mappings, including
+        * wired entries.
+        */
+       __raw_writel(__raw_readl(MMUCR) | MMUCR_TI, MMUCR);
+
+       local_irq_restore(flags);
+}
index 03db41c..7f5810f 100644 (file)
@@ -455,6 +455,11 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
         flush_tlb_all();
 }
 
+void __flush_tlb_global(void)
+{
+       flush_tlb_all();
+}
+
 void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
 {
 }
index b25aa55..9f56eb9 100644 (file)
@@ -52,6 +52,8 @@ MIGOR                 SH_MIGOR
 RSK7201                        SH_RSK7201
 RSK7203                        SH_RSK7203
 AP325RXA               SH_AP325RXA
+SH2007                 SH_SH2007
+SH7757LCR              SH_SH7757LCR
 SH7763RDP              SH_SH7763RDP
 SH7785LCR              SH_SH7785LCR
 SH7785LCR_PT           SH_SH7785LCR_PT
index ae47344..0861aa5 100644 (file)
@@ -92,6 +92,7 @@ obj-$(CONFIG_EISA)            += eisa/
 obj-y                          += lguest/
 obj-$(CONFIG_CPU_FREQ)         += cpufreq/
 obj-$(CONFIG_CPU_IDLE)         += cpuidle/
+obj-$(CONFIG_DMA_ENGINE)       += dma/
 obj-$(CONFIG_MMC)              += mmc/
 obj-$(CONFIG_MEMSTICK)         += memstick/
 obj-$(CONFIG_NEW_LEDS)         += leds/
@@ -104,7 +105,6 @@ obj-$(CONFIG_ARCH_SHMOBILE) += sh/
 ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
 obj-y                          += clocksource/
 endif
-obj-$(CONFIG_DMA_ENGINE)       += dma/
 obj-$(CONFIG_DCA)              += dca/
 obj-$(CONFIG_HID)              += hid/
 obj-$(CONFIG_PPC_PS3)          += ps3/
index 717305d..a446116 100644 (file)
@@ -308,7 +308,7 @@ static irqreturn_t sh_cmt_interrupt(int irq, void *dev_id)
         * isr before we end up here.
         */
        if (p->flags & FLAG_CLOCKSOURCE)
-               p->total_cycles += p->match_value;
+               p->total_cycles += p->match_value + 1;
 
        if (!(p->flags & FLAG_REPROGRAM))
                p->next_match_value = p->max_match_value;
@@ -403,7 +403,7 @@ static cycle_t sh_cmt_clocksource_read(struct clocksource *cs)
        raw = sh_cmt_get_counter(p, &has_wrapped);
 
        if (unlikely(has_wrapped))
-               raw += p->match_value;
+               raw += p->match_value + 1;
        spin_unlock_irqrestore(&p->lock, flags);
 
        return value + raw;
@@ -445,7 +445,7 @@ static int sh_cmt_register_clocksource(struct sh_cmt_priv *p,
 
        /* clk_get_rate() needs an enabled clock */
        clk_enable(p->clk);
-       p->rate = clk_get_rate(p->clk) / (p->width == 16) ? 512 : 8;
+       p->rate = clk_get_rate(p->clk) / ((p->width == 16) ? 512 : 8);
        clk_disable(p->clk);
 
        /* TODO: calculate good shift from rate and counter bit width */
@@ -478,7 +478,7 @@ static void sh_cmt_clock_event_start(struct sh_cmt_priv *p, int periodic)
        ced->min_delta_ns = clockevent_delta2ns(0x1f, ced);
 
        if (periodic)
-               sh_cmt_set_next(p, (p->rate + HZ/2) / HZ);
+               sh_cmt_set_next(p, ((p->rate + HZ/2) / HZ) - 1);
        else
                sh_cmt_set_next(p, p->max_match_value);
 }
@@ -523,9 +523,9 @@ static int sh_cmt_clock_event_next(unsigned long delta,
 
        BUG_ON(ced->mode != CLOCK_EVT_MODE_ONESHOT);
        if (likely(p->flags & FLAG_IRQCONTEXT))
-               p->next_match_value = delta;
+               p->next_match_value = delta - 1;
        else
-               sh_cmt_set_next(p, delta);
+               sh_cmt_set_next(p, delta - 1);
 
        return 0;
 }
index 598c49a..2707f5e 100644 (file)
@@ -538,15 +538,17 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
 {
        struct resource *res;
        int ret = -ENXIO;
-       int q, m;
-       int k = 0;
-       int n = 0;
+       int n, k = 0;
 
        while ((res = platform_get_resource(dev, IORESOURCE_IRQ, k))) {
                for (n = res->start; hook && n <= res->end; n++) {
                        if (request_irq(n, sh_mobile_i2c_isr, IRQF_DISABLED,
-                                       dev_name(&dev->dev), dev))
+                                       dev_name(&dev->dev), dev)) {
+                               for (n--; n >= res->start; n--)
+                                       free_irq(n, dev);
+
                                goto rollback;
+                       }
                }
                k++;
        }
@@ -554,16 +556,17 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
        if (hook)
                return k > 0 ? 0 : -ENOENT;
 
-       k--;
        ret = 0;
 
  rollback:
-       for (q = k; k >= 0; k--) {
-               for (m = n; m >= res->start; m--)
-                       free_irq(m, dev);
+       k--;
+
+       while (k >= 0) {
+               res = platform_get_resource(dev, IORESOURCE_IRQ, k);
+               for (n = res->start; n <= res->end; n++)
+                       free_irq(n, dev);
 
-               res = platform_get_resource(dev, IORESOURCE_IRQ, k - 1);
-               m = res->end;
+               k--;
        }
 
        return ret;
index 9b52f77..d2352ac 100644 (file)
 # define SCSPTR0       0xffe00024      /* 16 bit SCIF */
 # define SCSPTR1       0xffe10024      /* 16 bit SCIF */
 # define SCIF_ORER     0x0001          /* Overrun error bit */
-# define SCSCR_INIT(port)      0x3a    /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */
+
+#if defined(CONFIG_SH_SH2007)
+/* TIE=0,RIE=0,TE=1,RE=1,REIE=1,CKE1=0 */
+# define SCSCR_INIT(port)      0x38
+#else
+/* TIE=0,RIE=0,TE=1,RE=1,REIE=1,CKE1=1 */
+# define SCSCR_INIT(port)      0x3a
+#endif
+
 #elif defined(CONFIG_CPU_SUBTYPE_SH7785) || \
       defined(CONFIG_CPU_SUBTYPE_SH7786)
 # define SCSPTR0       0xffea0024      /* 16 bit SCIF */
@@ -616,9 +624,10 @@ static inline int sci_rxd_in(struct uart_port *port)
  * -- Mitch Davis - 15 Jul 2000
  */
 
-#if defined(CONFIG_CPU_SUBTYPE_SH7780) || \
-    defined(CONFIG_CPU_SUBTYPE_SH7785) || \
-    defined(CONFIG_CPU_SUBTYPE_SH7786)
+#if (defined(CONFIG_CPU_SUBTYPE_SH7780)  || \
+     defined(CONFIG_CPU_SUBTYPE_SH7785)  || \
+     defined(CONFIG_CPU_SUBTYPE_SH7786)) && \
+    !defined(CONFIG_SH_SH2007)
 #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1)
 #elif defined(CONFIG_CPU_SUBTYPE_SH7705) || \
       defined(CONFIG_CPU_SUBTYPE_SH7720) || \
index 5d84ada..cede14e 100644 (file)
@@ -73,22 +73,14 @@ long clk_rate_table_round(struct clk *clk,
 {
        unsigned long rate_error, rate_error_prev = ~0UL;
        unsigned long rate_best_fit = rate;
-       unsigned long highest, lowest;
        int i;
 
-       highest = lowest = 0;
-
        for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
                unsigned long freq = freq_table[i].frequency;
 
                if (freq == CPUFREQ_ENTRY_INVALID)
                        continue;
 
-               if (freq > highest)
-                       highest = freq;
-               if (freq < lowest)
-                       lowest = freq;
-
                rate_error = abs(freq - rate);
                if (rate_error < rate_error_prev) {
                        rate_best_fit = freq;
@@ -99,11 +91,6 @@ long clk_rate_table_round(struct clk *clk,
                        break;
        }
 
-       if (rate >= highest)
-               rate_best_fit = highest;
-       if (rate <= lowest)
-               rate_best_fit = lowest;
-
        return rate_best_fit;
 }
 
@@ -354,10 +341,10 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
                        ret = clk_reparent(clk, parent);
 
                if (ret == 0) {
-                       pr_debug("clock: set parent of %s to %s (new rate %ld)\n",
-                                clk->name, clk->parent->name, clk->rate);
                        if (clk->ops->recalc)
                                clk->rate = clk->ops->recalc(clk);
+                       pr_debug("clock: set parent of %s to %s (new rate %ld)\n",
+                                clk->name, clk->parent->name, clk->rate);
                        propagate_rate(clk);
                }
        } else
index 36170be..b0ccd0b 100644 (file)
@@ -127,6 +127,7 @@ static int siu_pcm_wr_set(struct siu_port *port_info,
        sg_init_table(&sg, 1);
        sg_set_page(&sg, pfn_to_page(PFN_DOWN(buff)),
                    size, offset_in_page(buff));
+       sg_dma_len(&sg) = size;
        sg_dma_address(&sg) = buff;
 
        desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan,
@@ -176,6 +177,7 @@ static int siu_pcm_rd_set(struct siu_port *port_info,
        sg_init_table(&sg, 1);
        sg_set_page(&sg, pfn_to_page(PFN_DOWN(buff)),
                    size, offset_in_page(buff));
+       sg_dma_len(&sg) = size;
        sg_dma_address(&sg) = buff;
 
        desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan,