Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: Solution Engine SH7705 board and CPU updates.

This fixes up SH7705 CPU support and the SE7705 board
for some of the recent changes.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.zh@hitachi.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

authored by

Nobuhiro Iwamatsu and committed by
Paul Mundt
2a8ff459 005a336e

+217 -47
+1 -1
arch/sh/Kconfig.debug
··· 33 33 default "0xffe00000" if CPU_SUBTYPE_SH7780 34 34 default "0xfffe9800" if CPU_SUBTYPE_SH7206 35 35 default "0xf8420000" if CPU_SUBTYPE_SH7619 36 - default "0xa4400000" if CPU_SUBTYPE_SH7712 36 + default "0xa4400000" if CPU_SUBTYPE_SH7712 || CPU_SUBTYPE_SH7705 37 37 default "0xffe80000" if CPU_SH4 38 38 39 39 config EARLY_PRINTK
+16 -16
arch/sh/boards/se/770x/irq.c
··· 65 65 * 8: rtc 66 66 * 12: mouse 67 67 * 14: ide0 68 - */ 68 + */ 69 69 #if defined(CONFIG_CPU_SUBTYPE_SH7705) 70 70 /* This is default value */ 71 - { 0xf-0x2, 0, 8, 0x2 , BCR_ILCRA}, 72 - { 0xf-0xa, 0, 4, 0xa , BCR_ILCRA}, 73 - { 0xf-0x5, 0, 0, 0x5 , BCR_ILCRB}, 74 - { 0xf-0x8, 0, 4, 0x8 , BCR_ILCRC}, 75 - { 0xf-0xc, 0, 0, 0xc , BCR_ILCRC}, 76 - { 0xf-0xe, 0, 12, 0xe , BCR_ILCRD}, 77 - { 0xf-0x3, 0, 4, 0x3 , BCR_ILCRD}, /* LAN */ 78 - { 0xf-0xd, 0, 8, 0xd , BCR_ILCRE}, 79 - { 0xf-0x9, 0, 4, 0x9 , BCR_ILCRE}, 80 - { 0xf-0x1, 0, 0, 0x1 , BCR_ILCRE}, 81 - { 0xf-0xf, 0, 12, 0xf , BCR_ILCRF}, 82 - { 0xf-0xb, 0, 4, 0xb , BCR_ILCRF}, 83 - { 0xf-0x7, 0, 12, 0x7 , BCR_ILCRG}, 84 - { 0xf-0x6, 0, 8, 0x6 , BCR_ILCRG}, 85 - { 0xf-0x4, 0, 4, 0x4 , BCR_ILCRG}, 71 + { 13, 0, 8, 0x0f-13 ,BCR_ILCRA}, 72 + { 5 , 0, 4, 0x0f- 5 ,BCR_ILCRA}, 73 + { 10, 0, 0, 0x0f-10, BCR_ILCRB}, 74 + { 7 , 0, 4, 0x0f- 7, BCR_ILCRC}, 75 + { 3 , 0, 0, 0x0f- 3, BCR_ILCRC}, 76 + { 1 , 0, 12, 0x0f- 1, BCR_ILCRD}, 77 + { 12, 0, 4, 0x0f-12, BCR_ILCRD}, /* LAN */ 78 + { 2 , 0, 8, 0x0f- 2, BCR_ILCRE}, /* PCIRQ2 */ 79 + { 6 , 0, 4, 0x0f- 6, BCR_ILCRE}, /* PCIRQ1 */ 80 + { 14, 0, 0, 0x0f-14, BCR_ILCRE}, /* PCIRQ0 */ 81 + { 0 , 0, 12, 0x0f , BCR_ILCRF}, 82 + { 4 , 0, 4, 0x0f- 4, BCR_ILCRF}, 83 + { 8 , 0, 12, 0x0f- 8, BCR_ILCRG}, 84 + { 9 , 0, 8, 0x0f- 9, BCR_ILCRG}, 85 + { 11, 0, 4, 0x0f-11, BCR_ILCRG}, 86 86 #else 87 87 { 14, 0, 8, 0x0f-14 ,BCR_ILCRA}, 88 88 { 12, 0, 4, 0x0f-12 ,BCR_ILCRA},
+1 -1
arch/sh/boards/se/770x/setup.c
··· 76 76 .flags = IORESOURCE_MEM, 77 77 }, 78 78 [2] = { 79 - .start = 7, 79 + .start = IRQ_CFCARD, 80 80 .flags = IORESOURCE_IRQ, 81 81 }, 82 82 };
+88 -18
arch/sh/configs/se7705_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.18 4 - # Tue Oct 3 12:03:04 2006 3 + # Linux kernel version: 2.6.21-rc5 4 + # Thu Apr 26 09:16:31 2007 5 5 # 6 6 CONFIG_SUPERH=y 7 7 CONFIG_RWSEM_GENERIC_SPINLOCK=y 8 + CONFIG_GENERIC_BUG=y 8 9 CONFIG_GENERIC_FIND_NEXT_BIT=y 9 10 CONFIG_GENERIC_HWEIGHT=y 10 11 CONFIG_GENERIC_HARDIRQS=y 11 12 CONFIG_GENERIC_IRQ_PROBE=y 12 13 CONFIG_GENERIC_CALIBRATE_DELAY=y 14 + # CONFIG_GENERIC_TIME is not set 15 + CONFIG_STACKTRACE_SUPPORT=y 16 + CONFIG_LOCKDEP_SUPPORT=y 17 + # CONFIG_ARCH_HAS_ILOG2_U32 is not set 18 + # CONFIG_ARCH_HAS_ILOG2_U64 is not set 13 19 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 14 20 15 21 # ··· 39 33 # CONFIG_UTS_NS is not set 40 34 # CONFIG_AUDIT is not set 41 35 # CONFIG_IKCONFIG is not set 36 + CONFIG_SYSFS_DEPRECATED=y 42 37 # CONFIG_RELAY is not set 38 + CONFIG_BLK_DEV_INITRD=y 43 39 CONFIG_INITRAMFS_SOURCE="" 44 40 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 45 41 CONFIG_SYSCTL=y ··· 99 91 CONFIG_SOLUTION_ENGINE=y 100 92 CONFIG_SH_SOLUTION_ENGINE=y 101 93 # CONFIG_SH_7751_SOLUTION_ENGINE is not set 94 + # CONFIG_SH_7780_SOLUTION_ENGINE is not set 102 95 # CONFIG_SH_7300_SOLUTION_ENGINE is not set 103 96 # CONFIG_SH_7343_SOLUTION_ENGINE is not set 104 97 # CONFIG_SH_73180_SOLUTION_ENGINE is not set 98 + # CONFIG_SH_7722_SOLUTION_ENGINE is not set 105 99 # CONFIG_SH_7751_SYSTEMH is not set 106 100 # CONFIG_SH_HP6XX is not set 107 - # CONFIG_SH_EC3104 is not set 108 101 # CONFIG_SH_SATURN is not set 109 102 # CONFIG_SH_DREAMCAST is not set 110 - # CONFIG_SH_BIGSUR is not set 111 103 # CONFIG_SH_MPC1211 is not set 112 104 # CONFIG_SH_SH03 is not set 113 105 # CONFIG_SH_SECUREEDGE5410 is not set 114 106 # CONFIG_SH_HS7751RVOIP is not set 115 107 # CONFIG_SH_7710VOIPGW is not set 116 108 # CONFIG_SH_RTS7751R2D is not set 117 - # CONFIG_SH_R7780RP is not set 109 + # CONFIG_SH_HIGHLANDER is not set 118 110 # CONFIG_SH_EDOSK7705 is not set 119 111 # CONFIG_SH_SH4202_MICRODEV is not set 120 112 # CONFIG_SH_LANDISK is not set 121 113 # CONFIG_SH_TITAN is not set 122 114 # CONFIG_SH_SHMIN is not set 115 + # CONFIG_SH_7206_SOLUTION_ENGINE is not set 116 + # CONFIG_SH_7619_SOLUTION_ENGINE is not set 117 + # CONFIG_SH_LBOX_RE2 is not set 123 118 # CONFIG_SH_UNKNOWN is not set 124 119 125 120 # ··· 134 123 # SH-2 Processor Support 135 124 # 136 125 # CONFIG_CPU_SUBTYPE_SH7604 is not set 126 + # CONFIG_CPU_SUBTYPE_SH7619 is not set 127 + 128 + # 129 + # SH-2A Processor Support 130 + # 131 + # CONFIG_CPU_SUBTYPE_SH7206 is not set 137 132 138 133 # 139 134 # SH-3 Processor Support ··· 151 134 # CONFIG_CPU_SUBTYPE_SH7708 is not set 152 135 # CONFIG_CPU_SUBTYPE_SH7709 is not set 153 136 # CONFIG_CPU_SUBTYPE_SH7710 is not set 137 + # CONFIG_CPU_SUBTYPE_SH7712 is not set 154 138 155 139 # 156 140 # SH-4 Processor Support ··· 176 158 # 177 159 # CONFIG_CPU_SUBTYPE_SH7770 is not set 178 160 # CONFIG_CPU_SUBTYPE_SH7780 is not set 161 + # CONFIG_CPU_SUBTYPE_SH7785 is not set 179 162 180 163 # 181 164 # SH4AL-DSP Processor Support 182 165 # 183 166 # CONFIG_CPU_SUBTYPE_SH73180 is not set 184 167 # CONFIG_CPU_SUBTYPE_SH7343 is not set 168 + # CONFIG_CPU_SUBTYPE_SH7722 is not set 185 169 186 170 # 187 171 # Memory management options ··· 193 173 CONFIG_MEMORY_START=0x0c000000 194 174 CONFIG_MEMORY_SIZE=0x02000000 195 175 CONFIG_VSYSCALL=y 176 + CONFIG_ARCH_FLATMEM_ENABLE=y 177 + CONFIG_ARCH_POPULATES_NODE_MAP=y 178 + CONFIG_PAGE_SIZE_4KB=y 179 + # CONFIG_PAGE_SIZE_8KB is not set 180 + # CONFIG_PAGE_SIZE_64KB is not set 196 181 CONFIG_SELECT_MEMORY_MODEL=y 197 182 CONFIG_FLATMEM_MANUAL=y 198 183 # CONFIG_DISCONTIGMEM_MANUAL is not set ··· 207 182 # CONFIG_SPARSEMEM_STATIC is not set 208 183 CONFIG_SPLIT_PTLOCK_CPUS=4 209 184 # CONFIG_RESOURCES_64BIT is not set 185 + CONFIG_ZONE_DMA_FLAG=0 210 186 211 187 # 212 188 # Cache configuration ··· 216 190 # CONFIG_SH_DIRECT_MAPPED is not set 217 191 # CONFIG_SH_WRITETHROUGH is not set 218 192 # CONFIG_SH_OCRAM is not set 219 - # CONFIG_CF_ENABLER is not set 193 + CONFIG_CF_ENABLER=y 194 + # CONFIG_CF_AREA5 is not set 195 + CONFIG_CF_AREA6=y 196 + # CONFIG_CF_AREA4 is not set 197 + CONFIG_CF_BASE_ADDR=0xb8000000 220 198 221 199 # 222 200 # Processor features 223 201 # 224 202 CONFIG_CPU_LITTLE_ENDIAN=y 203 + # CONFIG_CPU_BIG_ENDIAN is not set 225 204 # CONFIG_SH_FPU_EMU is not set 226 205 # CONFIG_SH_DSP is not set 227 206 # CONFIG_SH_ADC is not set 228 207 CONFIG_CPU_HAS_INTEVT=y 229 208 CONFIG_CPU_HAS_PINT_IRQ=y 209 + CONFIG_CPU_HAS_IPR_IRQ=y 230 210 CONFIG_CPU_HAS_SR_RB=y 231 211 232 212 # 233 - # Timer support 213 + # Timer and clock configuration 234 214 # 235 215 CONFIG_SH_TMU=y 216 + CONFIG_SH_TIMER_IRQ=16 217 + # CONFIG_NO_IDLE_HZ is not set 236 218 CONFIG_SH_PCLK_FREQ=33333333 237 219 238 220 # ··· 257 223 # Companion Chips 258 224 # 259 225 # CONFIG_HD6446X_SERIES is not set 226 + 227 + # 228 + # Additional SuperH Device Drivers 229 + # 260 230 CONFIG_HEARTBEAT=y 231 + # CONFIG_PUSH_SWITCH is not set 261 232 262 233 # 263 234 # Kernel features 264 235 # 265 236 # CONFIG_HZ_100 is not set 266 237 CONFIG_HZ_250=y 238 + # CONFIG_HZ_300 is not set 267 239 # CONFIG_HZ_1000 is not set 268 240 CONFIG_HZ=250 269 241 # CONFIG_KEXEC is not set ··· 327 287 CONFIG_XFRM=y 328 288 # CONFIG_XFRM_USER is not set 329 289 # CONFIG_XFRM_SUB_POLICY is not set 290 + # CONFIG_XFRM_MIGRATE is not set 330 291 # CONFIG_NET_KEY is not set 331 292 CONFIG_INET=y 332 293 # CONFIG_IP_MULTICAST is not set ··· 348 307 # CONFIG_INET_TUNNEL is not set 349 308 CONFIG_INET_XFRM_MODE_TRANSPORT=y 350 309 CONFIG_INET_XFRM_MODE_TUNNEL=y 310 + CONFIG_INET_XFRM_MODE_BEET=y 351 311 CONFIG_INET_DIAG=y 352 312 CONFIG_INET_TCP_DIAG=y 353 313 # CONFIG_TCP_CONG_ADVANCED is not set 354 314 CONFIG_TCP_CONG_CUBIC=y 355 315 CONFIG_DEFAULT_TCP_CONG="cubic" 316 + # CONFIG_TCP_MD5SIG is not set 356 317 # CONFIG_IPV6 is not set 357 318 # CONFIG_INET6_XFRM_TUNNEL is not set 358 319 # CONFIG_INET6_TUNNEL is not set ··· 431 388 # User Modules And Translation Layers 432 389 # 433 390 CONFIG_MTD_CHAR=y 391 + CONFIG_MTD_BLKDEVS=y 434 392 CONFIG_MTD_BLOCK=y 435 393 # CONFIG_FTL is not set 436 394 # CONFIG_NFTL is not set ··· 505 461 # 506 462 # Plug and Play support 507 463 # 464 + # CONFIG_PNPACPI is not set 508 465 509 466 # 510 467 # Block devices ··· 517 472 CONFIG_BLK_DEV_RAM_COUNT=16 518 473 CONFIG_BLK_DEV_RAM_SIZE=8192 519 474 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 520 - CONFIG_BLK_DEV_INITRD=y 521 475 # CONFIG_CDROM_PKTCDVD is not set 522 476 # CONFIG_ATA_OVER_ETH is not set 477 + 478 + # 479 + # Misc devices 480 + # 523 481 524 482 # 525 483 # ATA/ATAPI/MFM/RLL support ··· 697 649 # CONFIG_GEN_RTC is not set 698 650 # CONFIG_DTLK is not set 699 651 # CONFIG_R3964 is not set 700 - 701 - # 702 - # Ftape, the floppy tape device driver 703 - # 704 652 # CONFIG_RAW_DRIVER is not set 705 653 706 654 # 707 655 # TPM devices 708 656 # 709 657 # CONFIG_TCG_TPM is not set 710 - # CONFIG_TELCLOCK is not set 711 658 712 659 # 713 660 # I2C support ··· 718 675 # 719 676 # Dallas's 1-wire bus 720 677 # 678 + # CONFIG_W1 is not set 721 679 722 680 # 723 681 # Hardware Monitoring support ··· 727 683 # CONFIG_HWMON_VID is not set 728 684 # CONFIG_SENSORS_ABITUGURU is not set 729 685 # CONFIG_SENSORS_F71805F is not set 686 + # CONFIG_SENSORS_PC87427 is not set 730 687 # CONFIG_SENSORS_VT1211 is not set 731 688 # CONFIG_HWMON_DEBUG_CHIP is not set 732 689 733 690 # 734 - # Misc devices 691 + # Multifunction device drivers 735 692 # 693 + # CONFIG_MFD_SM501 is not set 736 694 737 695 # 738 696 # Multimedia devices 739 697 # 740 698 # CONFIG_VIDEO_DEV is not set 741 - CONFIG_VIDEO_V4L2=y 742 699 743 700 # 744 701 # Digital Video Broadcasting Devices ··· 749 704 # 750 705 # Graphics support 751 706 # 752 - CONFIG_FIRMWARE_EDID=y 707 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 753 708 # CONFIG_FB is not set 754 709 755 710 # 756 711 # Sound 757 712 # 758 713 # CONFIG_SOUND is not set 714 + 715 + # 716 + # HID Devices 717 + # 718 + CONFIG_HID=y 719 + # CONFIG_HID_DEBUG is not set 759 720 760 721 # 761 722 # USB support ··· 824 773 # 825 774 826 775 # 776 + # Auxiliary Display support 777 + # 778 + 779 + # 780 + # Virtualization 781 + # 782 + 783 + # 827 784 # File systems 828 785 # 829 786 CONFIG_EXT2_FS=y 830 787 # CONFIG_EXT2_FS_XATTR is not set 831 788 # CONFIG_EXT2_FS_XIP is not set 832 789 # CONFIG_EXT3_FS is not set 790 + # CONFIG_EXT4DEV_FS is not set 833 791 # CONFIG_REISERFS_FS is not set 834 792 # CONFIG_JFS_FS is not set 835 793 # CONFIG_FS_POSIX_ACL is not set 836 794 # CONFIG_XFS_FS is not set 795 + # CONFIG_GFS2_FS is not set 837 796 # CONFIG_MINIX_FS is not set 838 797 # CONFIG_ROMFS_FS is not set 839 798 CONFIG_INOTIFY=y ··· 889 828 # CONFIG_BEFS_FS is not set 890 829 # CONFIG_BFS_FS is not set 891 830 # CONFIG_EFS_FS is not set 892 - # CONFIG_JFFS_FS is not set 893 831 CONFIG_JFFS2_FS=y 894 832 CONFIG_JFFS2_FS_DEBUG=0 895 833 CONFIG_JFFS2_FS_WRITEBUFFER=y ··· 938 878 # CONFIG_NLS is not set 939 879 940 880 # 881 + # Distributed Lock Manager 882 + # 883 + 884 + # 941 885 # Profiling support 942 886 # 943 887 # CONFIG_PROFILING is not set ··· 949 885 # 950 886 # Kernel hacking 951 887 # 888 + CONFIG_TRACE_IRQFLAGS_SUPPORT=y 952 889 # CONFIG_PRINTK_TIME is not set 953 890 CONFIG_ENABLE_MUST_CHECK=y 954 891 # CONFIG_MAGIC_SYSRQ is not set 955 892 # CONFIG_UNUSED_SYMBOLS is not set 893 + # CONFIG_HEADERS_CHECK is not set 956 894 # CONFIG_DEBUG_KERNEL is not set 957 895 CONFIG_LOG_BUF_SHIFT=14 958 896 # CONFIG_DEBUG_BUGVERBOSE is not set 959 897 # CONFIG_SH_STANDARD_BIOS is not set 960 - # CONFIG_KGDB is not set 898 + # CONFIG_EARLY_SCIF_CONSOLE is not set 899 + # CONFIG_SH_KGDB is not set 961 900 962 901 # 963 902 # Security options ··· 975 908 # 976 909 # Library routines 977 910 # 911 + CONFIG_BITREVERSE=y 978 912 CONFIG_CRC_CCITT=y 979 913 # CONFIG_CRC16 is not set 980 914 CONFIG_CRC32=y ··· 983 915 CONFIG_ZLIB_INFLATE=y 984 916 CONFIG_ZLIB_DEFLATE=y 985 917 CONFIG_PLIST=y 918 + CONFIG_HAS_IOMEM=y 919 + CONFIG_HAS_IOPORT=y
+1 -1
arch/sh/kernel/cpu/irq/Makefile
··· 4 4 obj-y += imask.o 5 5 6 6 obj-$(CONFIG_CPU_HAS_IPR_IRQ) += ipr.o 7 - obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o 7 + obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o 8 8 obj-$(CONFIG_CPU_HAS_MASKREG_IRQ) += maskreg.o 9 9 obj-$(CONFIG_CPU_HAS_INTC2_IRQ) += intc2.o
+54 -2
arch/sh/kernel/cpu/irq/pint.c
··· 18 18 #include <asm/io.h> 19 19 #include <asm/machvec.h> 20 20 21 + #if defined(CONFIG_CPU_SUBTYPE_SH7705) 22 + #define INTC_INTER 0xA4000014UL 23 + #define INTC_IPRD 0xA4000018UL 24 + #define INTC_ICR2 0xA4000012UL 25 + 26 + /* PFC */ 27 + #define PORT_PACR 0xA4000100UL 28 + #define PORT_PBCR 0xA4000102UL 29 + #define PORT_PCCR 0xA4000104UL 30 + #define PORT_PDCR 0xA4000106UL 31 + #define PORT_PECR 0xA4000108UL 32 + #define PORT_PFCR 0xA400010AUL 33 + #define PORT_PGCR 0xA400010CUL 34 + #define PORT_PHCR 0xA400010EUL 35 + #define PORT_PJCR 0xA4000110UL 36 + #define PORT_PKCR 0xA4000112UL 37 + #define PORT_PLCR 0xA4000114UL 38 + #define PORT_PMCR 0xA4000118UL 39 + #define PORT_PNCR 0xA400011AUL 40 + #define PORT_PECR2 0xA4050148UL 41 + #define PORT_PFCR2 0xA405014AUL 42 + #define PORT_PNCR2 0xA405015AUL 43 + 44 + /* I/O port */ 45 + #define PORT_PADR 0xA4000120UL 46 + #define PORT_PBDR 0xA4000122UL 47 + #define PORT_PCDR 0xA4000124UL 48 + #define PORT_PDDR 0xA4000126UL 49 + #define PORT_PEDR 0xA4000128UL 50 + #define PORT_PFDR 0xA400012AUL 51 + #define PORT_PGDR 0xA400012CUL 52 + #define PORT_PHDR 0xA400012EUL 53 + #define PORT_PJDR 0xA4000130UL 54 + #define PORT_PKDR 0xA4000132UL 55 + #define PORT_PLDR 0xA4000134UL 56 + #define PORT_PMDR 0xA4000138UL 57 + #define PORT_PNDR 0xA400013AUL 58 + 59 + #define PINT0_IRQ 40 60 + #define PINT8_IRQ 41 61 + #define PINT_IRQ_BASE 86 62 + 63 + #define PINT0_IPR_ADDR INTC_IPRD 64 + #define PINT0_IPR_POS 3 65 + #define PINT0_PRIORITY 2 66 + 67 + #define PINT8_IPR_ADDR INTC_IPRD 68 + #define PINT8_IPR_POS 2 69 + #define PINT8_PRIORITY 2 70 + 71 + #endif /* CONFIG_CPU_SUBTYPE_SH7705 */ 72 + 21 73 static unsigned char pint_map[256]; 22 74 static unsigned long portcr_mask; 23 75 ··· 178 126 unsigned long creg, dreg, d, sav; 179 127 180 128 if (irq == PINT0_IRQ) { 181 - #if defined(CONFIG_CPU_SUBTYPE_SH7707) 129 + #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) 182 130 creg = PORT_PACR; 183 131 dreg = PORT_PADR; 184 132 #else ··· 196 144 197 145 return PINT_IRQ_BASE + pint_map[d]; 198 146 } else if (irq == PINT8_IRQ) { 199 - #if defined(CONFIG_CPU_SUBTYPE_SH7707) 147 + #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) 200 148 creg = PORT_PBCR; 201 149 dreg = PORT_PBDR; 202 150 #else
+52 -6
arch/sh/kernel/cpu/sh3/setup-sh7705.c
··· 2 2 * SH7705 Setup 3 3 * 4 4 * Copyright (C) 2006 Paul Mundt 5 + * Copyright (C) 2007 Nobuhiro Iwamatsu 5 6 * 6 7 * This file is subject to the terms and conditions of the GNU General Public 7 8 * License. See the file "COPYING" in the main directory of this archive ··· 15 14 16 15 static struct plat_sci_port sci_platform_data[] = { 17 16 { 18 - .mapbase = 0xa4400000, 19 - .flags = UPF_BOOT_AUTOCONF, 20 - .type = PORT_SCIF, 21 - .irqs = { 52, 53, 55, 54 }, 22 - }, { 23 17 .mapbase = 0xa4410000, 24 18 .flags = UPF_BOOT_AUTOCONF, 25 19 .type = PORT_SCIF, 26 - .irqs = { 56, 57, 59, 58 }, 20 + .irqs = { 56, 57, 59 }, 21 + }, { 22 + .mapbase = 0xa4400000, 23 + .flags = UPF_BOOT_AUTOCONF, 24 + .type = PORT_SCIF, 25 + .irqs = { 52, 53, 55 }, 27 26 }, { 28 27 .flags = 0, 29 28 } ··· 47 46 ARRAY_SIZE(sh7705_devices)); 48 47 } 49 48 __initcall(sh7705_devices_setup); 49 + 50 + static struct ipr_data sh7705_ipr_map[] = { 51 + /* IRQ, IPR-idx, shift, priority */ 52 + { 16, 0, 12, 2 }, /* TMU0 TUNI*/ 53 + { 17, 0, 8, 2 }, /* TMU1 TUNI */ 54 + { 18, 0, 4, 2 }, /* TMU2 TUNI */ 55 + { 27, 1, 12, 2 }, /* WDT ITI */ 56 + { 20, 0, 0, 2 }, /* RTC ATI (alarm) */ 57 + { 21, 0, 0, 2 }, /* RTC PRI (period) */ 58 + { 22, 0, 0, 2 }, /* RTC CUI (carry) */ 59 + { 48, 4, 12, 7 }, /* DMAC DMTE0 */ 60 + { 49, 4, 12, 7 }, /* DMAC DMTE1 */ 61 + { 50, 4, 12, 7 }, /* DMAC DMTE2 */ 62 + { 51, 4, 12, 7 }, /* DMAC DMTE3 */ 63 + { 52, 4, 8, 3 }, /* SCIF0 ERI */ 64 + { 53, 4, 8, 3 }, /* SCIF0 RXI */ 65 + { 55, 4, 8, 3 }, /* SCIF0 TXI */ 66 + { 56, 4, 4, 3 }, /* SCIF1 ERI */ 67 + { 57, 4, 4, 3 }, /* SCIF1 RXI */ 68 + { 59, 4, 4, 3 }, /* SCIF1 TXI */ 69 + }; 70 + 71 + static unsigned long ipr_offsets[] = { 72 + 0xFFFFFEE2 /* 0: IPRA */ 73 + , 0xFFFFFEE4 /* 1: IPRB */ 74 + , 0xA4000016 /* 2: IPRC */ 75 + , 0xA4000018 /* 3: IPRD */ 76 + , 0xA400001A /* 4: IPRE */ 77 + , 0xA4080000 /* 5: IPRF */ 78 + , 0xA4080002 /* 6: IPRG */ 79 + , 0xA4080004 /* 7: IPRH */ 80 + }; 81 + 82 + /* given the IPR index return the address of the IPR register */ 83 + unsigned int map_ipridx_to_addr(int idx) 84 + { 85 + if (idx >= ARRAY_SIZE(ipr_offsets)) 86 + return 0; 87 + return ipr_offsets[idx]; 88 + } 89 + 90 + void __init init_IRQ_ipr() 91 + { 92 + make_ipr_irq(sh7705_ipr_map, ARRAY_SIZE(sh7705_ipr_map)); 93 + }
+1
arch/sh/mm/Kconfig
··· 67 67 config CPU_SUBTYPE_SH7705 68 68 bool "Support SH7705 processor" 69 69 select CPU_SH3 70 + select CPU_HAS_IPR_IRQ 70 71 select CPU_HAS_PINT_IRQ 71 72 72 73 config CPU_SUBTYPE_SH7706
+3 -2
include/asm-sh/se.h
··· 69 69 #define BCR_ILCRG (PA_BCR + 12) 70 70 71 71 #if defined(CONFIG_CPU_SUBTYPE_SH7705) 72 - #define IRQ_STNIC 12 72 + #define IRQ_STNIC 12 73 + #define IRQ_CFCARD 14 73 74 #else 74 75 #define IRQ_STNIC 10 76 + #define IRQ_CFCARD 7 75 77 #endif 76 - #define IRQ_CFCARD 7 77 78 78 79 #define __IO_PREFIX se 79 80 #include <asm/io_generic.h>