Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 019e2574 authored by Paul Mundt's avatar Paul Mundt
Browse files

Merge branch 'sh/iomap'

parents 4705b2e8 861160bf
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ config SUPERH
	def_bool y
	select EMBEDDED
	select HAVE_CLK
	select HAVE_IDE
	select HAVE_IDE if HAS_IOPORT
	select HAVE_LMB
	select HAVE_OPROFILE
	select HAVE_GENERIC_DMA_COHERENT
@@ -174,6 +174,9 @@ config ARCH_HAS_DEFAULT_IDLE
config ARCH_HAS_CPU_IDLE_WAIT
	def_bool y

config NO_IOPORT
	bool

config IO_TRAPPED
	bool

+3 −0
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@ config SH_SDK7786
	bool "SDK7786"
	depends on CPU_SUBTYPE_SH7786
	select SYS_SUPPORTS_PCI
	select NO_IOPORT if !PCI
	help
	  Select SDK7786 if configuring for a Renesas Technology Europe
	  SH7786-65nm board.
@@ -190,6 +191,7 @@ config SH_URQUELL
	depends on CPU_SUBTYPE_SH7786
	select ARCH_REQUIRE_GPIOLIB
	select SYS_SUPPORTS_PCI
	select NO_IOPORT if !PCI

config SH_MIGOR
	bool "Migo-R"
@@ -286,6 +288,7 @@ config SH_LBOX_RE2
config SH_X3PROTO
	bool "SH-X3 Prototype board"
	depends on CPU_SUBTYPE_SHX3
	select NO_IOPORT if !PCI

config SH_MAGIC_PANEL_R2
	bool "Magic Panel R2"
+8 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@
#include <asm/io_generic.h>
#include <asm/io_trapped.h>

#ifdef CONFIG_HAS_IOPORT

#define inb(p)			sh_mv.mv_inb((p))
#define inw(p)			sh_mv.mv_inw((p))
#define inl(p)			sh_mv.mv_inl((p))
@@ -60,6 +62,8 @@
#define outsw(p,b,c)		sh_mv.mv_outsw((p), (b), (c))
#define outsl(p,b,c)		sh_mv.mv_outsl((p), (b), (c))

#endif

#define __raw_writeb(v,a)	(__chk_io_ptr(a), *(volatile u8  __force *)(a) = (v))
#define __raw_writew(v,a)	(__chk_io_ptr(a), *(volatile u16 __force *)(a) = (v))
#define __raw_writel(v,a)	(__chk_io_ptr(a), *(volatile u32 __force *)(a) = (v))
@@ -240,6 +244,8 @@ __BUILD_MEMORY_STRING(q, u64)

#define IO_SPACE_LIMIT 0xffffffff

#ifdef CONFIG_HAS_IOPORT

/*
 * This function provides a method for the generic case where a
 * board-specific ioport_map simply needs to return the port + some
@@ -255,6 +261,8 @@ static inline void __set_io_port_base(unsigned long pbase)

#define __ioport_map(p, n) sh_mv.mv_ioport_map((p), (n))

#endif

/* We really want to try and get these to memcpy etc */
void memcpy_fromio(void *, const volatile void __iomem *, unsigned long);
void memcpy_toio(volatile void __iomem *, const void *, unsigned long);
+5 −4
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@ struct sh_machine_vector {
	const char *mv_name;
	int mv_nr_irqs;

	int (*mv_irq_demux)(int irq);
	void (*mv_init_irq)(void);

#ifdef CONFIG_HAS_IOPORT
	u8 (*mv_inb)(unsigned long);
	u16 (*mv_inw)(unsigned long);
	u32 (*mv_inl)(unsigned long);
@@ -40,12 +44,9 @@ struct sh_machine_vector {
	void (*mv_outsw)(unsigned long, const void *src, unsigned long count);
	void (*mv_outsl)(unsigned long, const void *src, unsigned long count);

	int (*mv_irq_demux)(int irq);

	void (*mv_init_irq)(void);

	void __iomem *(*mv_ioport_map)(unsigned long port, unsigned int size);
	void (*mv_ioport_unmap)(void __iomem *);
#endif

	int (*mv_clk_init)(void);
	int (*mv_mode_pins)(void);
+2 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ endif
CFLAGS_REMOVE_return_address.o = -pg

obj-y	:= clkdev.o debugtraps.o dma-nommu.o dumpstack.o 		\
	   idle.o io.o io_generic.o irq.o				\
	   idle.o io.o irq.o						\
	   irq_$(BITS).o machvec.o nmi_debug.o process.o		\
	   process_$(BITS).o ptrace_$(BITS).o				\
	   reboot.o return_address.o					\
@@ -39,6 +39,7 @@ obj-$(CONFIG_DUMP_CODE) += disassemble.o
obj-$(CONFIG_HIBERNATION)	+= swsusp.o
obj-$(CONFIG_DWARF_UNWINDER)	+= dwarf.o
obj-$(CONFIG_PERF_EVENTS)	+= perf_event.o perf_callchain.o
obj-$(CONFIG_HAS_IOPORT)	+= io_generic.o

obj-$(CONFIG_HAVE_HW_BREAKPOINT)		+= hw_breakpoint.o
obj-$(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)	+= localtimer.o
Loading