Skip to content

Commit

Permalink
ARM: shmobile: move custom gpio functions to sh-gpio.h
Browse files Browse the repository at this point in the history
Move custom shmobile gpio code to a sh-gpio.h to remove the dependency
on mach/gpio.h. shmobile always uses gpiolib, so we can remove
__GPIOLIB_COMPLEX define from mach/gpio.h.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
  • Loading branch information
Rob Herring committed Sep 14, 2012
1 parent 74595e1 commit 6679185
Show file tree
Hide file tree
Showing 13 changed files with 64 additions and 68 deletions.
2 changes: 2 additions & 0 deletions arch/arm/mach-shmobile/board-ap4evb.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
#include <asm/mach/arch.h>
#include <asm/setup.h>

#include "sh-gpio.h"

/*
* Address Interface BusWidth note
* ------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-shmobile/board-armadillo800eva.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
#include <sound/sh_fsi.h>
#include <sound/simple_card.h>

#include "sh-gpio.h"

/*
* CON1 Camera Module
* CON2 Extension Bus
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-shmobile/board-g4evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>

#include "sh-gpio.h"

/*
* SDHI
*
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-shmobile/board-mackerel.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@
#include <asm/mach/arch.h>
#include <asm/mach-types.h>

#include "sh-gpio.h"

/*
* Address Interface BusWidth note
* ------------------------------------------------------------------
Expand Down
63 changes: 1 addition & 62 deletions arch/arm/mach-shmobile/include/mach/gpio.h
Original file line number Diff line number Diff line change
@@ -1,62 +1 @@
/*
* Generic GPIO API and pinmux table support
*
* Copyright (c) 2008 Magnus Damm
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H

#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/sh_pfc.h>
#include <linux/io.h>

#ifdef CONFIG_GPIOLIB

static inline int irq_to_gpio(unsigned int irq)
{
return -ENOSYS;
}

#else

#define __ARM_GPIOLIB_COMPLEX

#endif /* CONFIG_GPIOLIB */

/*
* FIXME !!
*
* current gpio frame work doesn't have
* the method to control only pull up/down/free.
* this function should be replaced by correct gpio function
*/
static inline void __init gpio_direction_none(u32 addr)
{
__raw_writeb(0x00, addr);
}

static inline void __init gpio_request_pullup(u32 addr)
{
u8 data = __raw_readb(addr);

data &= 0x0F;
data |= 0xC0;
__raw_writeb(data, addr);
}

static inline void __init gpio_request_pulldown(u32 addr)
{
u8 data = __raw_readb(addr);

data &= 0x0F;
data |= 0xA0;

__raw_writeb(data, addr);
}

#endif /* __ASM_ARCH_GPIO_H */
/* empty */
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-r8a7740.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <mach/r8a7740.h>
#include <mach/irqs.h>

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-r8a7779.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <linux/ioport.h>
#include <mach/r8a7779.h>

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-sh7367.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <mach/sh7367.h>

#define CPU_ALL_PORT(fn, pfx, sfx) \
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-sh7372.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <mach/irqs.h>
#include <mach/sh7372.h>

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-sh7377.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <mach/sh7377.h>

#define CPU_ALL_PORT(fn, pfx, sfx) \
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-shmobile/pfc-sh73a0.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/sh_pfc.h>
#include <mach/sh73a0.h>
#include <mach/irqs.h>

Expand Down
48 changes: 48 additions & 0 deletions arch/arm/mach-shmobile/sh-gpio.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Generic GPIO API and pinmux table support
*
* Copyright (c) 2008 Magnus Damm
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H

#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/io.h>

/*
* FIXME !!
*
* current gpio frame work doesn't have
* the method to control only pull up/down/free.
* this function should be replaced by correct gpio function
*/
static inline void __init gpio_direction_none(u32 addr)
{
__raw_writeb(0x00, addr);
}

static inline void __init gpio_request_pullup(u32 addr)
{
u8 data = __raw_readb(addr);

data &= 0x0F;
data |= 0xC0;
__raw_writeb(data, addr);
}

static inline void __init gpio_request_pulldown(u32 addr)
{
u8 data = __raw_readb(addr);

data &= 0x0F;
data |= 0xA0;

__raw_writeb(data, addr);
}

#endif /* __ASM_ARCH_GPIO_H */
1 change: 1 addition & 0 deletions drivers/sh/pfc/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/consumer.h>
#include <linux/sh_pfc.h>

struct sh_pfc_chip {
struct sh_pfc *pfc;
Expand Down

0 comments on commit 6679185

Please sign in to comment.