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

Commit 1bd0962e authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by Ralf Baechle
Browse files

[MIPS] jmr3927: use generic txx9 gpio



Use generic txx9 gpio (and gpiolib) for JMR3927 board.

Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 4cad154b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -613,6 +613,7 @@ config TOSHIBA_JMR3927
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_BIG_ENDIAN
	select GENERIC_HARDIRQS_NO__DO_IRQ
	select GENERIC_HARDIRQS_NO__DO_IRQ
	select GPIO_TXX9


config TOSHIBA_RBTX4927
config TOSHIBA_RBTX4927
	bool "Toshiba RBTX49[23]7 board"
	bool "Toshiba RBTX49[23]7 board"
+8 −3
Original line number Original line Diff line number Diff line
@@ -36,11 +36,13 @@
#include <linux/pm.h>
#include <linux/pm.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/clk.h>
#include <linux/gpio.h>
#ifdef CONFIG_SERIAL_TXX9
#ifdef CONFIG_SERIAL_TXX9
#include <linux/serial_core.h>
#include <linux/serial_core.h>
#endif
#endif


#include <asm/txx9tmr.h>
#include <asm/txx9tmr.h>
#include <asm/txx9pio.h>
#include <asm/reboot.h>
#include <asm/reboot.h>
#include <asm/jmr3927/jmr3927.h>
#include <asm/jmr3927/jmr3927.h>
#include <asm/mipsregs.h>
#include <asm/mipsregs.h>
@@ -340,9 +342,12 @@ static void __init tx3927_setup(void)


	/* PIO */
	/* PIO */
	/* PIO[15:12] connected to LEDs */
	/* PIO[15:12] connected to LEDs */
	tx3927_pioptr->dir = 0x0000f000;
	__raw_writel(0x0000f000, &tx3927_pioptr->dir);
	tx3927_pioptr->maskcpu = 0;
	__raw_writel(0, &tx3927_pioptr->maskcpu);
	tx3927_pioptr->maskext = 0;
	__raw_writel(0, &tx3927_pioptr->maskext);
	txx9_gpio_init(TX3927_PIO_REG, 0, 16);
	gpio_request(11, "dipsw1");
	gpio_request(10, "dipsw2");
	{
	{
		unsigned int conf;
		unsigned int conf;


+2 −2
Original line number Original line Diff line number Diff line
@@ -99,8 +99,8 @@
#define jmr3927_led_and_set(n/*0-16*/)	jmr3927_ioc_reg_out((~(n)) & jmr3927_ioc_reg_in(JMR3927_IOC_LED_ADDR), JMR3927_IOC_LED_ADDR)
#define jmr3927_led_and_set(n/*0-16*/)	jmr3927_ioc_reg_out((~(n)) & jmr3927_ioc_reg_in(JMR3927_IOC_LED_ADDR), JMR3927_IOC_LED_ADDR)


/* DIPSW4 macro */
/* DIPSW4 macro */
#define jmr3927_dipsw1()	((tx3927_pioptr->din & (1 << 11)) == 0)
#define jmr3927_dipsw1()	(gpio_get_value(11) == 0)
#define jmr3927_dipsw2()	((tx3927_pioptr->din & (1 << 10)) == 0)
#define jmr3927_dipsw2()	(gpio_get_value(10) == 0)
#define jmr3927_dipsw3()	((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 2) == 0)
#define jmr3927_dipsw3()	((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 2) == 0)
#define jmr3927_dipsw4()	((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 1) == 0)
#define jmr3927_dipsw4()	((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 1) == 0)


+1 −1
Original line number Original line Diff line number Diff line
@@ -314,6 +314,6 @@ struct tx3927_ccfg_reg {
#define tx3927_ccfgptr		((struct tx3927_ccfg_reg *)TX3927_CCFG_REG)
#define tx3927_ccfgptr		((struct tx3927_ccfg_reg *)TX3927_CCFG_REG)
#define tx3927_tmrptr(ch)	((struct txx927_tmr_reg *)TX3927_TMR_REG(ch))
#define tx3927_tmrptr(ch)	((struct txx927_tmr_reg *)TX3927_TMR_REG(ch))
#define tx3927_sioptr(ch)	((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
#define tx3927_sioptr(ch)	((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
#define tx3927_pioptr		((struct txx927_pio_reg *)TX3927_PIO_REG)
#define tx3927_pioptr		((struct txx9_pio_reg __iomem *)TX3927_PIO_REG)


#endif /* __ASM_TX3927_H */
#endif /* __ASM_TX3927_H */
+0 −12
Original line number Original line Diff line number Diff line
@@ -22,18 +22,6 @@ struct txx927_sio_reg {
	volatile unsigned long rfifo;
	volatile unsigned long rfifo;
};
};


struct txx927_pio_reg {
	volatile unsigned long dout;
	volatile unsigned long din;
	volatile unsigned long dir;
	volatile unsigned long od;
	volatile unsigned long flag[2];
	volatile unsigned long pol;
	volatile unsigned long intc;
	volatile unsigned long maskcpu;
	volatile unsigned long maskext;
};

/*
/*
 * SIO
 * SIO
 */
 */