Commit ce65cc8f authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle

MIPS: Alchemy: devboards: Convert to gpio calls.

Replace a few open-coded GPIO register accesses with gpio calls.
Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent b6c9f105
...@@ -27,8 +27,9 @@ ...@@ -27,8 +27,9 @@
* 675 Mass Ave, Cambridge, MA 02139, USA. * 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#include <asm/cacheflush.h> #include <linux/gpio.h>
#include <asm/cacheflush.h>
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
void au1000_restart(char *command) void au1000_restart(char *command)
...@@ -161,7 +162,7 @@ void au1000_halt(void) ...@@ -161,7 +162,7 @@ void au1000_halt(void)
#else #else
printk(KERN_NOTICE "\n** You can safely turn off the power\n"); printk(KERN_NOTICE "\n** You can safely turn off the power\n");
#ifdef CONFIG_MIPS_MIRAGE #ifdef CONFIG_MIPS_MIRAGE
au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT); gpio_direction_output(210, 1);
#endif #endif
#ifdef CONFIG_MIPS_DB1200 #ifdef CONFIG_MIPS_DB1200
au_writew(au_readw(0xB980001C) | (1 << 14), 0xB980001C); au_writew(au_readw(0xB980001C) | (1 << 14), 0xB980001C);
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
* 675 Mass Ave, Cambridge, MA 02139, USA. * 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#include <linux/gpio.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
...@@ -94,12 +95,12 @@ void __init board_setup(void) ...@@ -94,12 +95,12 @@ void __init board_setup(void)
#endif #endif
bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */ bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */
#ifdef CONFIG_MIPS_MIRAGE
/* Enable GPIO[31:0] inputs */ /* Enable GPIO[31:0] inputs */
au_writel(0, SYS_PININPUTEN); alchemy_gpio1_input_enable();
/* GPIO[20] is output, tristate the other input primary GPIOs */ #ifdef CONFIG_MIPS_MIRAGE
au_writel(~(1 << 20), SYS_TRIOUTCLR); /* GPIO[20] is output */
alchemy_gpio_direction_output(20, 0);
/* Set GPIO[210:208] instead of SSI_0 */ /* Set GPIO[210:208] instead of SSI_0 */
pin_func = au_readl(SYS_PINFUNC) | SYS_PF_S0; pin_func = au_readl(SYS_PINFUNC) | SYS_PF_S0;
...@@ -118,8 +119,7 @@ void __init board_setup(void) ...@@ -118,8 +119,7 @@ void __init board_setup(void)
* Enable speaker amplifier. This should * Enable speaker amplifier. This should
* be part of the audio driver. * be part of the audio driver.
*/ */
au_writel(au_readl(GPIO2_DIR) | 0x200, GPIO2_DIR); alchemy_gpio_direction_output(209, 1);
au_writel(0x02000200, GPIO2_OUTPUT);
#endif #endif
au_sync(); au_sync();
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
*/ */
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
...@@ -130,8 +131,11 @@ void __init board_setup(void) ...@@ -130,8 +131,11 @@ void __init board_setup(void)
pin_func |= SYS_PF_USB; pin_func |= SYS_PF_USB;
au_writel(pin_func, SYS_PINFUNC); au_writel(pin_func, SYS_PINFUNC);
au_writel(0x2800, SYS_TRIOUTCLR);
au_writel(0x0030, SYS_OUTPUTCLR); alchemy_gpio_direction_input(11);
alchemy_gpio_direction_input(13);
alchemy_gpio_direction_output(4, 0);
alchemy_gpio_direction_output(5, 0);
#endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) */ #endif /* defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) */
/* Make GPIO 15 an input (for interrupt line) */ /* Make GPIO 15 an input (for interrupt line) */
...@@ -140,7 +144,7 @@ void __init board_setup(void) ...@@ -140,7 +144,7 @@ void __init board_setup(void)
pin_func |= SYS_PF_I2S; pin_func |= SYS_PF_I2S;
au_writel(pin_func, SYS_PINFUNC); au_writel(pin_func, SYS_PINFUNC);
au_writel(0x8000, SYS_TRIOUTCLR); alchemy_gpio_direction_input(15);
static_cfg0 = au_readl(MEM_STCFG0) & ~0xc00; static_cfg0 = au_readl(MEM_STCFG0) & ~0xc00;
au_writel(static_cfg0, MEM_STCFG0); au_writel(static_cfg0, MEM_STCFG0);
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
* 675 Mass Ave, Cambridge, MA 02139, USA. * 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#include <linux/gpio.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
...@@ -88,7 +89,7 @@ void __init board_setup(void) ...@@ -88,7 +89,7 @@ void __init board_setup(void)
/* Set AUX clock to 12 MHz * 8 = 96 MHz */ /* Set AUX clock to 12 MHz * 8 = 96 MHz */
au_writel(8, SYS_AUXPLL); au_writel(8, SYS_AUXPLL);
au_writel(0, SYS_PININPUTEN); alchemy_gpio1_input_enable();
udelay(100); udelay(100);
#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
......
...@@ -23,8 +23,9 @@ ...@@ -23,8 +23,9 @@
* 675 Mass Ave, Cambridge, MA 02139, USA. * 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
...@@ -90,11 +91,12 @@ void __init board_setup(void) ...@@ -90,11 +91,12 @@ void __init board_setup(void)
au_writel(0, SYS_PINSTATERD); au_writel(0, SYS_PINSTATERD);
udelay(100); udelay(100);
#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
/* GPIO201 is input for PCMCIA card detect */ /* GPIO201 is input for PCMCIA card detect */
/* GPIO203 is input for PCMCIA interrupt request */ /* GPIO203 is input for PCMCIA interrupt request */
au_writel(au_readl(GPIO2_DIR) & ~((1 << 1) | (1 << 3)), GPIO2_DIR); alchemy_gpio_direction_input(201);
alchemy_gpio_direction_input(203);
#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
/* Zero and disable FREQ2 */ /* Zero and disable FREQ2 */
sys_freqctrl = au_readl(SYS_FREQCTRL0); sys_freqctrl = au_readl(SYS_FREQCTRL0);
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/sysfs.h> #include <linux/sysfs.h>
#include <asm/mach-au1x00/au1000.h> #include <asm/mach-au1x00/au1000.h>
#include <asm/mach-au1x00/gpio.h>
/* /*
* Generic suspend userspace interface for Alchemy development boards. * Generic suspend userspace interface for Alchemy development boards.
...@@ -26,7 +27,7 @@ static unsigned long db1x_pm_last_wakesrc; ...@@ -26,7 +27,7 @@ static unsigned long db1x_pm_last_wakesrc;
static int db1x_pm_enter(suspend_state_t state) static int db1x_pm_enter(suspend_state_t state)
{ {
/* enable GPIO based wakeup */ /* enable GPIO based wakeup */
au_writel(1, SYS_PININPUTEN); alchemy_gpio1_input_enable();
/* clear and setup wake cause and source */ /* clear and setup wake cause and source */
au_writel(0, SYS_WAKEMSK); au_writel(0, SYS_WAKEMSK);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment