···402402403403source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"404404405405-#source "arch/sh/boards/renesas/rts7751r2d/Kconfig"405405+source "arch/sh/boards/renesas/rts7751r2d/Kconfig"406406407407config SH_PCLK_FREQ408408 int "Peripheral clock frequency (in Hz)"
+1-1
arch/sh/boards/renesas/hs7751rvoip/Makefile
···22# Makefile for the HS7751RVoIP specific parts of the kernel33#4455-obj-y := setup.o io.o irq.o led.o55+obj-y := setup.o io.o irq.o6677obj-$(CONFIG_PCI) += pci.o88
-26
arch/sh/boards/renesas/hs7751rvoip/led.c
···11-/*22- * linux/arch/sh/kernel/setup_hs7751rvoip.c33- *44- * Copyright (C) 2000 Kazumoto Kojima55- *66- * Renesas Technology Sales HS7751RVoIP Support.77- *88- * Modified for HS7751RVoIP by99- * Atom Create Engineering Co., Ltd. 2002.1010- * Lineo uSolutions, Inc. 2003.1111- */1212-1313-#include <asm/io.h>1414-#include <asm/hs7751rvoip/hs7751rvoip.h>1515-1616-extern unsigned int debug_counter;1717-1818-void debug_led_disp(void)1919-{2020- unsigned short value;2121-2222- value = (unsigned char)debug_counter++;2323- ctrl_outb((0xf0|value), PA_OUTPORTR);2424- if (value == 0x0f)2525- debug_counter = 0;2626-}
+12
arch/sh/boards/renesas/rts7751r2d/Kconfig
···11+if SH_RTS7751R2D22+33+menu "RTS7751R2D options"44+55+config RTS7751R2D_REV1166+ bool "RTS7751R2D Rev. 1.1 board support"77+ help88+ Selecting this option will support version rev. 1.1.99+endmenu1010+1111+endif1212+
+53-42
arch/sh/boards/renesas/rts7751r2d/io.c
···13131414#include <linux/kernel.h>1515#include <linux/types.h>1616-#include <asm/io.h>1717-#include <asm/rts7751r2d/rts7751r2d.h>1818-#include <asm/addrspace.h>1919-2020-#include <linux/module.h>2116#include <linux/pci.h>2217#include "../../../drivers/pci/pci-sh7751.h"1818+#include <asm/rts7751r2d/rts7751r2d.h>1919+#include <asm/io.h>2020+#include <asm/addrspace.h>23212422/*2523 * The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)···33353436#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))35373636-#define maybebadio(name,port) \3737- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \3838- #name, (port), (__u32) __builtin_return_address(0))3939-4038static inline void delay(void)4139{4240 ctrl_inw(0xa0000000);···4652 else4753 return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));4854 else4949- maybebadio(port2adr, (unsigned long)port);5555+ maybebadio((unsigned long)port);50565157 return port;5258}···132138unsigned short rts7751r2d_inw(unsigned long port)133139{134140 if (CHECK_AX88796L_PORT(port))135135- maybebadio(inw, port);141141+ maybebadio(port);136142 else if (PXSEG(port))137143 return *(volatile unsigned short *)port;138144 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))139145 return *(volatile unsigned short *)PCI_IOMAP(port);140146 else141141- maybebadio(inw, port);147147+ maybebadio(port);142148143149 return 0;144150}···146152unsigned int rts7751r2d_inl(unsigned long port)147153{148154 if (CHECK_AX88796L_PORT(port))149149- maybebadio(inl, port);155155+ maybebadio(port);150156 else if (PXSEG(port))151157 return *(volatile unsigned long *)port;152158 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))153159 return *(volatile unsigned long *)PCI_IOMAP(port);154160 else155155- maybebadio(inl, port);161161+ maybebadio(port);156162157163 return 0;158164}···185191void rts7751r2d_outw(unsigned short value, unsigned long port)186192{187193 if (CHECK_AX88796L_PORT(port))188188- maybebadio(outw, port);194194+ maybebadio(port);189195 else if (PXSEG(port))190196 *(volatile unsigned short *)port = value;191197 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))192198 *(volatile unsigned short *)PCI_IOMAP(port) = value;193199 else194194- maybebadio(outw, port);200200+ maybebadio(port);195201}196202197203void rts7751r2d_outl(unsigned int value, unsigned long port)198204{199205 if (CHECK_AX88796L_PORT(port))200200- maybebadio(outl, port);206206+ maybebadio(port);201207 else if (PXSEG(port))202208 *(volatile unsigned long *)port = value;203209 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))204210 *(volatile unsigned long *)PCI_IOMAP(port) = value;205211 else206206- maybebadio(outl, port);212212+ maybebadio(port);207213}208214209215void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)210216{217217+ unsigned long a = (unsigned long)addr;211218 volatile __u8 *bp;212219 volatile __u16 *p;213213- unsigned char *s = addr;214220215221 if (CHECK_AX88796L_PORT(port)) {216222 p = (volatile unsigned short *)port88796l(port, 0);217217- while (count--) *s++ = *p & 0xff;223223+ while (count--)224224+ ctrl_outb(*p & 0xff, a++);218225 } else if (PXSEG(port))219219- while (count--) *s++ = *(volatile unsigned char *)port;226226+ while (count--)227227+ ctrl_outb(ctrl_inb(port), a++);220228 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {221229 bp = (__u8 *)PCI_IOMAP(port);222222- while (count--) *s++ = *bp;230230+ while (count--)231231+ ctrl_outb(*bp, a++);223232 } else {224233 p = (volatile unsigned short *)port2adr(port);225225- while (count--) *s++ = *p & 0xff;234234+ while (count--)235235+ ctrl_outb(*p & 0xff, a++);226236 }227237}228238229239void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)230240{241241+ unsigned long a = (unsigned long)addr;231242 volatile __u16 *p;232232- __u16 *s = addr;233243234244 if (CHECK_AX88796L_PORT(port))235245 p = (volatile unsigned short *)port88796l(port, 1);···243245 p = (volatile unsigned short *)PCI_IOMAP(port);244246 else245247 p = (volatile unsigned short *)port2adr(port);246246- while (count--) *s++ = *p;248248+ while (count--)249249+ ctrl_outw(*p, a++);247250}248251249252void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)250253{251254 if (CHECK_AX88796L_PORT(port))252252- maybebadio(insl, port);255255+ maybebadio(port);253256 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {254254- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);255255- __u32 *s = addr;257257+ unsigned long a = (unsigned long)addr;256258257257- while (count--) *s++ = *p;259259+ while (count--) {260260+ ctrl_outl(ctrl_inl(PCI_IOMAP(port)), a);261261+ a += 4;262262+ }258263 } else259259- maybebadio(insl, port);264264+ maybebadio(port);260265}261266262267void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)263268{269269+ unsigned long a = (unsigned long)addr;264270 volatile __u8 *bp;265271 volatile __u16 *p;266266- const __u8 *s = addr;267272268273 if (CHECK_AX88796L_PORT(port)) {269274 p = (volatile unsigned short *)port88796l(port, 0);270270- while (count--) *p = *s++;275275+ while (count--)276276+ *p = ctrl_inb(a++);271277 } else if (PXSEG(port))272272- while (count--) *(volatile unsigned char *)port = *s++;278278+ while (count--)279279+ ctrl_outb(a++, port);273280 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {274281 bp = (__u8 *)PCI_IOMAP(port);275275- while (count--) *bp = *s++;282282+ while (count--)283283+ *bp = ctrl_inb(a++);276284 } else {277285 p = (volatile unsigned short *)port2adr(port);278278- while (count--) *p = *s++;286286+ while (count--)287287+ *p = ctrl_inb(a++);279288 }280289}281290282291void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)283292{293293+ unsigned long a = (unsigned long)addr;284294 volatile __u16 *p;285285- const __u16 *s = addr;286295287296 if (CHECK_AX88796L_PORT(port))288297 p = (volatile unsigned short *)port88796l(port, 1);···299294 p = (volatile unsigned short *)PCI_IOMAP(port);300295 else301296 p = (volatile unsigned short *)port2adr(port);302302- while (count--) *p = *s++;297297+298298+ while (count--) {299299+ ctrl_outw(*p, a);300300+ a += 2;301301+ }303302}304303305304void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)306305{307306 if (CHECK_AX88796L_PORT(port))308308- maybebadio(outsl, port);307307+ maybebadio(port);309308 else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {310310- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);311311- const __u32 *s = addr;309309+ unsigned long a = (unsigned long)addr;312310313313- while (count--) *p = *s++;311311+ while (count--) {312312+ ctrl_outl(ctrl_inl(a), PCI_IOMAP(port));313313+ a += 4;314314+ }314315 } else315315- maybebadio(outsl, port);316316+ maybebadio(port);316317}317318318319void *rts7751r2d_ioremap(unsigned long offset, unsigned long size)
-9
arch/sh/boards/renesas/rts7751r2d/led.c
···5353 ctrl_outw(value, PA_OUTPORT);5454}55555656-void debug_led_disp(void)5757-{5858- unsigned short value;5959-6060- value = (unsigned short)debug_counter++;6161- rts7751r2d_led(value);6262- if (value == 0xff)6363- debug_counter = 0;6464-}