Skip to content

Commit

Permalink
sh: HS7751RVoIP board updates.
Browse files Browse the repository at this point in the history
Various cleanups for HS7751RVoIP. Mostly just getting
rid of the old mach.c and splitting codec configuration
in to its own Kconfig.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Sep 27, 2006
1 parent 7e27b9b commit e8fb67f
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 68 deletions.
2 changes: 1 addition & 1 deletion arch/sh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ config SH_TMU

endmenu

#source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"

#source "arch/sh/boards/renesas/rts7751r2d/Kconfig"

Expand Down
12 changes: 12 additions & 0 deletions arch/sh/boards/renesas/hs7751rvoip/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
if SH_HS7751RVOIP

menu "HS7751RVoIP options"

config HS7751RVOIP_CODEC
bool "Support VoIP Codec section"
help
Selecting this option will support CODEC section.

endmenu

endif
2 changes: 1 addition & 1 deletion arch/sh/boards/renesas/hs7751rvoip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Makefile for the HS7751RVoIP specific parts of the kernel
#

obj-y := mach.o setup.o io.o irq.o led.o
obj-y := setup.o io.o irq.o led.o

obj-$(CONFIG_PCI) += pci.o

54 changes: 0 additions & 54 deletions arch/sh/boards/renesas/hs7751rvoip/mach.c

This file was deleted.

63 changes: 51 additions & 12 deletions arch/sh/boards/renesas/hs7751rvoip/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,55 @@
#include <linux/hdreg.h>
#include <linux/ide.h>
#include <linux/pm.h>
#include <asm/io.h>
#include <asm/hs7751rvoip/hs7751rvoip.h>

/* defined in mm/ioremap.c */
extern void * p3_ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags);
#include <asm/hs7751rvoip/io.h>
#include <asm/io.h>
#include <asm/machvec.h>
#include <asm/rtc.h>
#include <asm/irq.h>

unsigned int debug_counter;

static void __init hs7751rvoip_init_irq(void)
{
#if defined(CONFIG_HS7751RVOIP_CODEC)
make_ipr_irq(DMTE0_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY);
make_ipr_irq(DMTE1_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY);
#endif

init_hs7751rvoip_IRQ();
}

struct sh_machine_vector mv_hs7751rvoip __initmv = {
.mv_nr_irqs = 72,

.mv_inb = hs7751rvoip_inb,
.mv_inw = hs7751rvoip_inw,
.mv_inl = hs7751rvoip_inl,
.mv_outb = hs7751rvoip_outb,
.mv_outw = hs7751rvoip_outw,
.mv_outl = hs7751rvoip_outl,

.mv_inb_p = hs7751rvoip_inb_p,
.mv_inw_p = hs7751rvoip_inw,
.mv_inl_p = hs7751rvoip_inl,
.mv_outb_p = hs7751rvoip_outb_p,
.mv_outw_p = hs7751rvoip_outw,
.mv_outl_p = hs7751rvoip_outl,

.mv_insb = hs7751rvoip_insb,
.mv_insw = hs7751rvoip_insw,
.mv_insl = hs7751rvoip_insl,
.mv_outsb = hs7751rvoip_outsb,
.mv_outsw = hs7751rvoip_outsw,
.mv_outsl = hs7751rvoip_outsl,

.mv_ioremap = hs7751rvoip_ioremap,
.mv_isa_port2addr = hs7751rvoip_isa_port2addr,
.mv_init_irq = hs7751rvoip_init_irq,
};
ALIAS_MV(hs7751rvoip)

const char *get_system_type(void)
{
return "HS7751RVoIP";
Expand All @@ -51,16 +92,15 @@ void *area6_io8_base;
void *area5_io16_base;
void *area6_io16_base;

int __init cf_init(void)
static int __init hs7751rvoip_cf_init(void)
{
pgprot_t prot;
unsigned long paddrbase, psize;
unsigned long paddrbase;

/* open I/O area window */
paddrbase = virt_to_phys((void *)(PA_AREA5_IO+0x00000800));
psize = PAGE_SIZE;
prot = PAGE_KERNEL_PCC(1, _PAGE_PCC_COM16);
area5_io16_base = p3_ioremap(paddrbase, psize, prot.pgprot);
area5_io16_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
if (!area5_io16_base) {
printk("allocate_cf_area : can't open CF I/O window!\n");
return -ENOMEM;
Expand All @@ -69,19 +109,18 @@ int __init cf_init(void)
/* XXX : do we need attribute and common-memory area also? */

paddrbase = virt_to_phys((void *)PA_AREA6_IO);
psize = PAGE_SIZE;
#if defined(CONFIG_HS7751RVOIP_CODEC)
prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_COM8);
#else
prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO8);
#endif
area6_io8_base = p3_ioremap(paddrbase, psize, prot.pgprot);
area6_io8_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
if (!area6_io8_base) {
printk("allocate_cf_area : can't open CODEC I/O 8bit window!\n");
return -ENOMEM;
}
prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO16);
area6_io16_base = p3_ioremap(paddrbase, psize, prot.pgprot);
area6_io16_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
if (!area6_io16_base) {
printk("allocate_cf_area : can't open CODEC I/O 16bit window!\n");
return -ENOMEM;
Expand All @@ -90,4 +129,4 @@ int __init cf_init(void)
return 0;
}

__initcall (cf_init);
__initcall(hs7751rvoip_cf_init);
6 changes: 6 additions & 0 deletions include/asm-sh/hs7751rvoip/hs7751rvoip.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,10 @@
#define IRQ_RINGING 4 /* Ringing IRQ */
#define IRQ_CODEC 5 /* CODEC IRQ */

/* arch/sh/boards/renesas/hs7751rvoip/irq.c */
void init_hs7751rvoip_IRQ(void);

/* arch/sh/boards/renesas/hs7751rvoip/io.c */
void *hs7751rvoip_ioremap(unsigned long, unsigned long);

#endif /* __ASM_SH_RENESAS_HS7751RVOIP */

0 comments on commit e8fb67f

Please sign in to comment.