diff -urN linux-4.0/Makefile linux-4.0_cat724/Makefile --- linux-4.0/Makefile 2015-04-13 07:12:50.000000000 +0900 +++ linux-4.0_cat724/Makefile 2015-04-14 21:10:03.003647276 +0900 @@ -248,8 +248,8 @@ # "make" in the configured kernel build directory always uses that. # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile -ARCH ?= $(SUBARCH) -CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) +ARCH ?= sh +CROSS_COMPILE ?= sh4-linux-gnu- # Architecture as present in compile.h UTS_MACHINE := $(ARCH) @@ -712,9 +712,10 @@ ifdef CONFIG_DEBUG_INFO_SPLIT KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g) else -KBUILD_CFLAGS += -g +KBUILD_CFLAGS += -gdwarf-3 endif -KBUILD_AFLAGS += -Wa,-gdwarf-2 +#KBUILD_AFLAGS += -Wa,-gdwarf-3 +KBUILD_AFLAGS += -gdwarf-3 endif ifdef CONFIG_DEBUG_INFO_DWARF4 KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,) @@ -1224,6 +1225,7 @@ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \ + -o -name '*.BAK' \ -type f -print | xargs rm -f diff -urN linux-4.0/arch/sh/Makefile linux-4.0_cat724/arch/sh/Makefile --- linux-4.0/arch/sh/Makefile 2015-04-13 07:12:50.000000000 +0900 +++ linux-4.0_cat724/arch/sh/Makefile 2015-04-14 15:19:59.539776131 +0900 @@ -150,6 +150,7 @@ machdir-$(CONFIG_SH_LBOX_RE2) += mach-lboxre2 machdir-$(CONFIG_SH_CAYMAN) += mach-cayman machdir-$(CONFIG_SH_RSK) += mach-rsk +machdir-$(CONFIG_SH_CAT724) += mach-cat724 ifneq ($(machdir-y),) core-y += $(addprefix arch/sh/boards/, \ diff -urN linux-4.0/arch/sh/boards/Kconfig linux-4.0_cat724/arch/sh/boards/Kconfig --- linux-4.0/arch/sh/boards/Kconfig 2015-04-13 07:12:50.000000000 +0900 +++ linux-4.0_cat724/arch/sh/boards/Kconfig 2015-04-14 16:25:42.419375044 +0900 @@ -241,6 +241,14 @@ help Renesas "R0P7724LC0011/21RL (EcoVec)" support. +config SH_CAT724 + bool "CAT724" + depends on CPU_SUBTYPE_SH7724 + select ARCH_REQUIRE_GPIOLIB + select REGULATOR_FIXED_VOLTAGE if REGULATOR + help + SiliconLinux CAT724 + config SH_SH7763RDP bool "SH7763RDP" depends on CPU_SUBTYPE_SH7763 diff -urN linux-4.0/arch/sh/boards/mach-cat724/Makefile linux-4.0_cat724/arch/sh/boards/mach-cat724/Makefile --- linux-4.0/arch/sh/boards/mach-cat724/Makefile 1970-01-01 09:00:00.000000000 +0900 +++ linux-4.0_cat724/arch/sh/boards/mach-cat724/Makefile 2011-06-14 02:03:16.000000000 +0900 @@ -0,0 +1,10 @@ +# +# Makefile for the CAT724 +# +# 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. +# + +obj-y := setup.o sdram.o gpioinit.o + diff -urN linux-4.0/arch/sh/boards/mach-cat724/gpioinit.c linux-4.0_cat724/arch/sh/boards/mach-cat724/gpioinit.c --- linux-4.0/arch/sh/boards/mach-cat724/gpioinit.c 1970-01-01 09:00:00.000000000 +0900 +++ linux-4.0_cat724/arch/sh/boards/mach-cat724/gpioinit.c 2015-04-14 19:15:14.566499804 +0900 @@ -0,0 +1,251 @@ +#include +#include +#include + +/* + * GPIOF_IN - configure as input + * GPIOF_OUT_INIT_LOW - configured as output, initial level LOW + * GPIOF_OUT_INIT_HIGH - configured as output, initial level HIGH + */ + +static struct gpio cat724_gpios[] = { +{ GPIO_PTA0, GPIOF_IN, "GPIO_PTA0" }, +{ GPIO_PTA1, GPIOF_IN, "GPIO_PTA1" }, +{ GPIO_PTA2, GPIOF_IN, "GPIO_PTA2" }, +{ GPIO_PTA3, GPIOF_IN, "GPIO_PTA3" }, +{ GPIO_PTA4, GPIOF_IN, "GPIO_PTA4" }, +{ GPIO_PTA5, GPIOF_IN, "GPIO_PTA5" }, +{ GPIO_PTA6, GPIOF_IN, "GPIO_PTA6" }, +{ GPIO_PTA7, GPIOF_IN, "GPIO_PTA7" }, + +{ GPIO_PTB0, GPIOF_IN, "GPIO_PTB0" }, +{ GPIO_PTB1, GPIOF_IN, "GPIO_PTB1" }, +{ GPIO_PTB2, GPIOF_IN, "GPIO_PTB2" }, +{ GPIO_PTB3, GPIOF_IN, "GPIO_PTB3" }, +{ GPIO_PTB4, GPIOF_IN, "GPIO_PTB4" }, +{ GPIO_PTB5, GPIOF_IN, "GPIO_PTB5" }, +// { GPIO_PTB6, GPIOF_IN, "GPIO_PTB6" }, // TPUTO0 o—Í +// { GPIO_PTB7, GPIOF_IN, "GPIO_PTB7" }, // TPUTO1 o—Í + +{ GPIO_PTC0, GPIOF_IN, "GPIO_PTC0" }, +{ GPIO_PTC1, GPIOF_IN, "GPIO_PTC1" }, +{ GPIO_PTC2, GPIOF_IN, "GPIO_PTC2" }, +{ GPIO_PTC3, GPIOF_IN, "GPIO_PTC3" }, +{ GPIO_PTC4, GPIOF_IN, "GPIO_PTC4" }, +{ GPIO_PTC5, GPIOF_IN, "GPIO_PTC5" }, +{ GPIO_PTC6, GPIOF_IN, "GPIO_PTC6" }, +{ GPIO_PTC7, GPIOF_IN, "GPIO_PTC7" }, + +{ GPIO_PTD0, GPIOF_IN, "GPIO_PTD0" }, +{ GPIO_PTD1, GPIOF_IN, "GPIO_PTD1" }, +{ GPIO_PTD2, GPIOF_IN, "GPIO_PTD2" }, +{ GPIO_PTD3, GPIOF_IN, "GPIO_PTD3" }, +{ GPIO_PTD4, GPIOF_IN, "GPIO_PTD4" }, +{ GPIO_PTD5, GPIOF_IN, "GPIO_PTD5" }, +{ GPIO_PTD6, GPIOF_IN, "GPIO_PTD6" }, +{ GPIO_PTD7, GPIOF_IN, "GPIO_PTD7" }, + +{ GPIO_PTE0, GPIOF_IN, "GPIO_PTE0" }, +{ GPIO_PTE1, GPIOF_IN, "GPIO_PTE1" }, +{ GPIO_PTE2, GPIOF_IN, "GPIO_PTE2" }, +{ GPIO_PTE3, GPIOF_IN, "GPIO_PTE3" }, +{ GPIO_PTE4, GPIOF_IN, "GPIO_PTE4" }, +{ GPIO_PTE5, GPIOF_IN, "GPIO_PTE5" }, +{ GPIO_PTE6, GPIOF_IN, "GPIO_PTE6" }, +{ GPIO_PTE7, GPIOF_IN, "GPIO_PTE7" }, + +{ GPIO_PTF0, GPIOF_IN, "GPIO_PTF0" }, /* RXD2 */ +{ GPIO_PTF1, GPIOF_IN, "GPIO_PTF1" }, +// { GPIO_PTF2, GPIOF_IN, "GPIO_PTF2" }, /* TXD0 */ +{ GPIO_PTF3, GPIOF_IN, "GPIO_PTF3" }, +{ GPIO_PTF4, GPIOF_IN, "GPIO_PTF4" }, +{ GPIO_PTF5, GPIOF_IN, "GPIO_PTF5" }, +{ GPIO_PTF6, GPIOF_IN, "GPIO_PTF6" }, +{ GPIO_PTF7, GPIOF_IN, "GPIO_PTF7" }, + +{ GPIO_PTG0, GPIOF_OUT_INIT_HIGH, "GPIO_PTG0" }, /* LED1 */ +{ GPIO_PTG1, GPIOF_OUT_INIT_HIGH, "GPIO_PTG1" }, /* LED2 */ +{ GPIO_PTG2, GPIOF_OUT_INIT_HIGH, "GPIO_PTG2" }, /* LED3 */ +{ GPIO_PTG3, GPIOF_OUT_INIT_HIGH, "GPIO_PTG3" }, /* LED4 */ +{ GPIO_PTG4, GPIOF_IN, "GPIO_PTG4" }, +{ GPIO_PTG5, GPIOF_IN, "GPIO_PTG5" }, +// { GPIO_PTG6, GPIOF_IN, "GPIO_PTG6" }, // don't exists +// { GPIO_PTG7, GPIOF_IN, "GPIO_PTG7" }, // don't exists + +{ GPIO_PTH0, GPIOF_IN, "GPIO_PTH0" }, +{ GPIO_PTH1, GPIOF_IN, "GPIO_PTH1" }, +{ GPIO_PTH2, GPIOF_IN, "GPIO_PTH2" }, +{ GPIO_PTH3, GPIOF_IN, "GPIO_PTH3" }, +{ GPIO_PTH4, GPIOF_IN, "GPIO_PTH4" }, +{ GPIO_PTH5, GPIOF_IN, "GPIO_PTH5" }, +{ GPIO_PTH6, GPIOF_IN, "GPIO_PTH6" }, +{ GPIO_PTH7, GPIOF_IN, "GPIO_PTH7" }, + +// { GPIO_PTJ0, GPIOF_IN, "GPIO_PTJ0" }, /* BA22 */ +// { GPIO_PTJ1, GPIOF_IN, "GPIO_PTJ1" }, /* BA23 */ +// { GPIO_PTJ2, GPIOF_IN, "GPIO_PTJ2" }, /* BA24 */ +// { GPIO_PTJ3, GPIOF_IN, "GPIO_PTJ3" }, /* BA25 */ +// { GPIO_PTJ4, GPIOF_IN, "GPIO_PTJ4" }, // don't exists +// { GPIO_PTJ5, GPIOF_IN, "GPIO_PTJ5" }, /* n.c. */ +{ GPIO_PTJ6, GPIOF_IN, "GPIO_PTJ6" }, /* status led */ +{ GPIO_PTJ7, GPIOF_IN, "GPIO_PTJ7" }, /* status led */ + +{ GPIO_PTK0, GPIOF_IN, "GPIO_PTK0" }, +{ GPIO_PTK1, GPIOF_IN, "GPIO_PTK1" }, +{ GPIO_PTK2, GPIOF_IN, "GPIO_PTK2" }, +{ GPIO_PTK3, GPIOF_IN, "GPIO_PTK3" }, +{ GPIO_PTK4, GPIOF_IN, "GPIO_PTK4" }, +{ GPIO_PTK5, GPIOF_IN, "GPIO_PTK5" }, +{ GPIO_PTK6, GPIOF_IN, "GPIO_PTK6" }, +{ GPIO_PTK7, GPIOF_IN, "GPIO_PTK7" }, + +{ GPIO_PTL0, GPIOF_IN, "GPIO_PTL0" }, +{ GPIO_PTL1, GPIOF_IN, "GPIO_PTL1" }, +{ GPIO_PTL2, GPIOF_IN, "GPIO_PTL2" }, +{ GPIO_PTL3, GPIOF_IN, "GPIO_PTL3" }, +{ GPIO_PTL4, GPIOF_IN, "GPIO_PTL4" }, +{ GPIO_PTL5, GPIOF_IN, "GPIO_PTL5" }, +{ GPIO_PTL6, GPIOF_IN, "GPIO_PTL6" }, +{ GPIO_PTL7, GPIOF_IN, "GPIO_PTL7" }, + +// { GPIO_PTM0, GPIOF_OUT_INIT_HIGH, "GPIO_PTM0" }, /* mmc1 power */ +{ GPIO_PTM1, GPIOF_IN, "GPIO_PTM1" }, +{ GPIO_PTM2, GPIOF_IN, "GPIO_PTM2" }, +{ GPIO_PTM3, GPIOF_IN, "GPIO_PTM3" }, +{ GPIO_PTM4, GPIOF_IN, "GPIO_PTM4" }, +{ GPIO_PTM5, GPIOF_IN, "GPIO_PTM5" }, +{ GPIO_PTM6, GPIOF_IN, "GPIO_PTM6" }, +{ GPIO_PTM7, GPIOF_IN, "GPIO_PTM7" }, + +{ GPIO_PTN0, GPIOF_IN, "GPIO_PTN0" }, +{ GPIO_PTN1, GPIOF_IN, "GPIO_PTN1" }, +{ GPIO_PTN2, GPIOF_IN, "GPIO_PTN2" }, +{ GPIO_PTN3, GPIOF_IN, "GPIO_PTN3" }, +{ GPIO_PTN4, GPIOF_IN, "GPIO_PTN4" }, +{ GPIO_PTN5, GPIOF_IN, "GPIO_PTN5" }, +{ GPIO_PTN6, GPIOF_IN, "GPIO_PTN6" }, +{ GPIO_PTN7, GPIOF_IN, "GPIO_PTN7" }, + +// { GPIO_PTQ0, GPIOF_IN, "GPIO_PTQ0" }, /* D0 */ +// { GPIO_PTQ1, GPIOF_IN, "GPIO_PTQ1" }, /* D1 */ +// { GPIO_PTQ2, GPIOF_IN, "GPIO_PTQ2" }, /* D2 */ +// { GPIO_PTQ3, GPIOF_IN, "GPIO_PTQ3" }, /* D3 */ +// { GPIO_PTQ4, GPIOF_IN, "GPIO_PTQ4" }, /* D4 */ +// { GPIO_PTQ5, GPIOF_IN, "GPIO_PTQ5" }, /* D5 */ +// { GPIO_PTQ6, GPIOF_IN, "GPIO_PTQ6" }, /* D6 */ +// { GPIO_PTQ7, GPIOF_IN, "GPIO_PTQ7" }, /* D7 */ + +// { GPIO_PTR0, GPIOF_IN, "GPIO_PTR0" }, /* I2C scl */ +// { GPIO_PTR1, GPIOF_IN, "GPIO_PTR1" }, /* I2C sda */ +// { GPIO_PTR2, GPIOF_IN, "GPIO_PTR2" }, /* WAIT */ +// { GPIO_PTR3, GPIOF_IN, "GPIO_PTR3" }, /* LCDCLK */ +{ GPIO_PTR4, GPIOF_IN, "GPIO_PTR4" }, /* dipsw1-1 */ +{ GPIO_PTR5, GPIOF_IN, "GPIO_PTR5" }, /* dipsw1-2 */ +// { GPIO_PTR6, GPIOF_IN, "GPIO_PTR6" }, /* CS6A */ +// { GPIO_PTR7, GPIOF_IN, "GPIO_PTR7" }, /* CS6B */ + +{ GPIO_PTS0, GPIOF_IN, "GPIO_PTS0" }, +{ GPIO_PTS1, GPIOF_IN, "GPIO_PTS1" }, +{ GPIO_PTS2, GPIOF_IN, "GPIO_PTS2" }, +{ GPIO_PTS3, GPIOF_IN, "GPIO_PTS3" }, +{ GPIO_PTS4, GPIOF_IN, "GPIO_PTS4" }, +{ GPIO_PTS5, GPIOF_IN, "GPIO_PTS5" }, +{ GPIO_PTS6, GPIOF_IN, "GPIO_PTS6" }, +// { GPIO_PTS7, GPIOF_IN, "GPIO_PTS7" }, // don't exists + +// { GPIO_PTT0, GPIOF_IN, "GPIO_PTT0" }, /* D8 */ +// { GPIO_PTT1, GPIOF_IN, "GPIO_PTT1" }, /* D9 */ +// { GPIO_PTT2, GPIOF_IN, "GPIO_PTT2" }, /* D10 */ +// { GPIO_PTT3, GPIOF_IN, "GPIO_PTT3" }, /* D11 */ +// { GPIO_PTT4, GPIOF_IN, "GPIO_PTT4" }, /* D12 */ +// { GPIO_PTT5, GPIOF_IN, "GPIO_PTT5" }, /* D13 */ +// { GPIO_PTT6, GPIOF_IN, "GPIO_PTT6" }, /* D14 */ +// { GPIO_PTT7, GPIOF_IN, "GPIO_PTT7" }, /* D15 */ + +{ GPIO_PTU0, GPIOF_IN, "GPIO_PTU0" }, +{ GPIO_PTU1, GPIOF_IN, "GPIO_PTU1" }, +{ GPIO_PTU2, GPIOF_IN, "GPIO_PTU2" }, +{ GPIO_PTU3, GPIOF_IN, "GPIO_PTU3" }, +{ GPIO_PTU4, GPIOF_IN, "GPIO_PTU4" }, +{ GPIO_PTU5, GPIOF_IN, "GPIO_PTU5" }, +{ GPIO_PTU6, GPIOF_IN, "GPIO_PTU6" }, /* dipsw1-3 */ +{ GPIO_PTU7, GPIOF_IN, "GPIO_PTU7" }, /* dipsw1-4 */ + + +{ GPIO_PTV0, GPIOF_IN, "GPIO_PTV0" }, +{ GPIO_PTV1, GPIOF_IN, "GPIO_PTV1" }, +{ GPIO_PTV2, GPIOF_IN, "GPIO_PTV2" }, +{ GPIO_PTV3, GPIOF_IN, "GPIO_PTV3" }, +{ GPIO_PTV4, GPIOF_IN, "GPIO_PTV4" }, +{ GPIO_PTV5, GPIOF_IN, "GPIO_PTV5" }, +{ GPIO_PTV6, GPIOF_IN, "GPIO_PTV6" }, +{ GPIO_PTV7, GPIOF_IN, "GPIO_PTV7" }, + + +// { GPIO_PTW0, GPIOF_IN, "GPIO_PTW0" }, /* SD1 CLK */ +// { GPIO_PTW1, GPIOF_IN, "GPIO_PTW1" }, /* SD1 CMD */ +// { GPIO_PTW2, GPIOF_IN, "GPIO_PTW2" }, /* SD1 D0 */ +// { GPIO_PTW3, GPIOF_IN, "GPIO_PTW3" }, /* SD1 D1 */ +// { GPIO_PTW4, GPIOF_IN, "GPIO_PTW4" }, /* SD1 D2 */ +// { GPIO_PTW5, GPIOF_IN, "GPIO_PTW5" }, /* SD1 D3 */ +// { GPIO_PTW6, GPIOF_IN, "GPIO_PTW6" }, /* SD1 WP */ +// { GPIO_PTW7, GPIOF_IN, "GPIO_PTW7" }, /* SD1 CD */ + + +{ GPIO_PTX0, GPIOF_IN, "GPIO_PTX0" }, /* USB0 OverCurrent */ +{ GPIO_PTX1, GPIOF_OUT_INIT_HIGH, "GPIO_PTX1" }, /* USB0 5VOutput */ +{ GPIO_PTX2, GPIOF_IN, "GPIO_PTX2" }, +{ GPIO_PTX3, GPIOF_IN, "GPIO_PTX3" }, +{ GPIO_PTX4, GPIOF_IN, "GPIO_PTX4" }, +{ GPIO_PTX5, GPIOF_IN, "GPIO_PTX5" }, +{ GPIO_PTX6, GPIOF_IN, "GPIO_PTX6" }, /* USB1 OverCurrent */ +{ GPIO_PTX7, GPIOF_OUT_INIT_HIGH, "GPIO_PTX7" }, /* USB1 5VOutput */ + + +// { GPIO_PTY0, GPIOF_IN, "GPIO_PTY0" }, /* SD0 CLK */ +// { GPIO_PTY1, GPIOF_IN, "GPIO_PTY1" }, /* SD0 CMD */ +// { GPIO_PTY2, GPIOF_IN, "GPIO_PTY2" }, /* SD0 D0 */ +// { GPIO_PTY3, GPIOF_IN, "GPIO_PTY3" }, /* SD0 D1 */ +// { GPIO_PTY4, GPIOF_IN, "GPIO_PTY4" }, /* SD0 D2 */ +// { GPIO_PTY5, GPIOF_IN, "GPIO_PTY5" }, /* SD0 D3 */ +// { GPIO_PTY6, GPIOF_IN, "GPIO_PTY6" }, /* SD0 WP */ +// { GPIO_PTY7, GPIOF_IN, "GPIO_PTY7" }, /* SD0 CD */ + + +// { GPIO_PTZ0, GPIOF_IN, "GPIO_PTZ0" }, /* IRQ0 */ +// { GPIO_PTZ1, GPIOF_IN, "GPIO_PTZ1" }, /* IRQ1 */ +// { GPIO_PTZ2, GPIOF_IN, "GPIO_PTZ2" }, /* IRQ2 */ +// { GPIO_PTZ3, GPIOF_IN, "GPIO_PTZ3" }, /* TXD3 */ +// { GPIO_PTZ4, GPIOF_IN, "GPIO_PTZ4" }, /* RXD3 */ +// { GPIO_PTZ5, GPIOF_IN, "GPIO_PTZ5" }, /* IRQ5 */ +// { GPIO_PTZ6, GPIOF_IN, "GPIO_PTZ6" }, /* RTS3 */ +// { GPIO_PTZ7, GPIOF_IN, "GPIO_PTZ7" }, /* CTS3 */ +}; + +#define HIZCRA 0xA4050158 +#define DRVCRB 0xA405018C + +int cat724_gpioinit(void){ + int err; + int i; + printk("%s()\n",__func__); + + err = gpio_request_array(cat724_gpios, ARRAY_SIZE(cat724_gpios)); + + for(i=0; i +#include +#include +#include +#include +#include + +/* code to enter and leave self-refresh. must be self-contained. + * this code will be copied to on-chip memory and executed from there. + */ + .balign 4 +ENTRY(cat724_sdram_enter_start) + + /* DBSC: put memory in self-refresh mode */ + + ED 0xFD000010, 0x00000000 /* DBEN */ + ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ + ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ + ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ + ED 0xFD000040, 0x00000001 /* DBRFPDN0 */ + + rts + nop + +ENTRY(cat724_sdram_enter_end) + + .balign 4 +ENTRY(cat724_sdram_leave_start) + + mov.l @(SH_SLEEP_MODE, r5), r0 + tst #SUSP_SH_RSTANDBY, r0 + bf resume_rstandby + + /* DBSC: put memory in auto-refresh mode */ + + ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ + WAIT 1 + ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ + ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ + ED 0xFD000010, 0x00000001 /* DBEN */ + ED 0xFD000040, 0x00010000 /* DBRFPDN0 */ + + rts + nop + +resume_rstandby: + + /* DBSC: re-initialize and put in auto-refresh */ + + ED 0xFD000108, 0x00000181 /* DBPDCNT0 */ + ED 0xFD000020, 0x015B0002 /* DBCONF */ + ED 0xFD000030, 0x03061502 /* DBTR0 was 0x03071502 */ + ED 0xFD000034, 0x02020102 /* DBTR1 was 0x02020102 */ + ED 0xFD000038, 0x01090305 /* DBTR2 was 0x01090405 */ + ED 0xFD00003C, 0x00000002 /* DBTR3 */ + ED 0xFD000008, 0x00000005 /* DBKIND */ + ED 0xFD000040, 0x00000001 /* DBRFPDN0 */ + ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ + ED 0xFD000018, 0x00000001 /* DBCKECNT */ + + mov #100,r0 +WAIT_400NS: + dt r0 + bf WAIT_400NS + + ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ + ED 0xFD000060, 0x00020000 /* DBMRCNT (EMR2) */ + ED 0xFD000060, 0x00030000 /* DBMRCNT (EMR3) */ + ED 0xFD000060, 0x00010004 /* DBMRCNT (EMR) */ + ED 0xFD000060, 0x00000532 /* DBMRCNT (MRS) */ + ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ + ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ + ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ + ED 0xFD000060, 0x00000432 /* DBMRCNT (MRS) */ + ED 0xFD000060, 0x000103c0 /* DBMRCNT (EMR) */ + ED 0xFD000060, 0x00010040 /* DBMRCNT (EMR) */ + + mov #100,r0 +WAIT_400NS_2: + dt r0 + bf WAIT_400NS_2 + + ED 0xFD000010, 0x00000001 /* DBEN */ + ED 0xFD000044, 0x00000613 /* DBRFPDN1 was 0x0000050f */ + ED 0xFD000048, 0x238c003a /* DBRFPDN2 was 0x236800e6 */ + + mov.l DUMMY,r0 + mov.l @r0, r1 /* force single dummy read */ + + ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ + ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ + ED 0xFD000108, 0x00000080 /* DBPDCNT0 */ + ED 0xFD000040, 0x00010000 /* DBRFPDN0 */ + + rts + nop + + .balign 4 +DUMMY: .long 0xac400000 + +ENTRY(cat724_sdram_leave_end) diff -urN linux-4.0/arch/sh/boards/mach-cat724/setup.c linux-4.0_cat724/arch/sh/boards/mach-cat724/setup.c --- linux-4.0/arch/sh/boards/mach-cat724/setup.c 1970-01-01 09:00:00.000000000 +0900 +++ linux-4.0_cat724/arch/sh/boards/mach-cat724/setup.c 2015-04-14 19:26:38.252962248 +0900 @@ -0,0 +1,844 @@ +/* + * Copyright (C) 2011 SiliconLinux + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include