Changeset 8911


Ignore:
Timestamp:
2007-09-21T14:37:50+02:00 (10 years ago)
Author:
ejka
Message:

make gpio conformant to generic gpio spec.

Location:
trunk/target/linux/ar7/files
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar7/files/arch/mips/ar7/gpio.c

    r8756 r8911  
    2121#include <asm/ar7/gpio.h> 
    2222 
    23 static char *ar7_gpio_list[AR7_GPIO_MAX] = { 0, }; 
     23static const char *ar7_gpio_list[AR7_GPIO_MAX] = { 0, }; 
    2424 
    25 int gpio_request(unsigned gpio, char *label) 
     25int gpio_request(unsigned gpio, const char *label) 
    2626{ 
    2727        if (gpio >= AR7_GPIO_MAX) 
  • trunk/target/linux/ar7/files/arch/mips/ar7/platform.c

    r8774 r8911  
    5959                goto out_enabled; 
    6060 
    61         if ((result = gpio_direction_output(pdata->gpio_bit))) 
     61        if ((result = gpio_direction_output(pdata->gpio_bit, 0))) 
    6262                goto out_gpio_enabled; 
    6363 
    64         gpio_set_value(pdata->gpio_bit, 0); 
    6564        mdelay(50); 
    6665 
  • trunk/target/linux/ar7/files/drivers/char/ar7_gpio.c

    r8764 r8911  
    7474                case 'O': 
    7575                case '>': 
    76                         gpio_direction_output(pin); 
     76                        gpio_direction_output(pin, 0); 
    7777                        break; 
    7878                default: 
  • trunk/target/linux/ar7/files/drivers/leds/leds-ar7.c

    r8764 r8911  
    7474 
    7575        ar7_gpio_enable(AR7_GPIO_BIT_STATUS_LED); 
    76         gpio_direction_output(AR7_GPIO_BIT_STATUS_LED); 
     76        gpio_direction_output(AR7_GPIO_BIT_STATUS_LED, 0); 
    7777 
    7878out: 
  • trunk/target/linux/ar7/files/include/asm-mips/ar7/gpio.h

    r8756 r8911  
    2323#define AR7_GPIO_MAX 32 
    2424 
    25 extern int gpio_request(unsigned gpio, char *label); 
     25extern int gpio_request(unsigned gpio, const char *label); 
    2626extern void gpio_free(unsigned gpio); 
    2727 
    2828/* Common GPIO layer */ 
    29 static inline int gpio_direction_input(unsigned gpio) 
    30 { 
    31         void __iomem *gpio_dir = 
    32                 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR); 
    33  
    34         if (gpio >= AR7_GPIO_MAX) 
    35                 return -EINVAL; 
    36  
    37         writel(readl(gpio_dir) | (1 << gpio), gpio_dir); 
    38  
    39         return 0; 
    40 } 
    41  
    42 static inline int gpio_direction_output(unsigned gpio) 
    43 { 
    44         void __iomem *gpio_dir = 
    45                 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR); 
    46  
    47         if (gpio >= AR7_GPIO_MAX) 
    48                 return -EINVAL; 
    49  
    50         writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir); 
    51  
    52         return 0; 
    53 } 
    54  
    5529static inline int gpio_get_value(unsigned gpio) 
    5630{ 
     
    7751                tmp |= 1 << gpio; 
    7852        writel(tmp, gpio_out); 
     53} 
     54 
     55static inline int gpio_direction_input(unsigned gpio) 
     56{ 
     57        void __iomem *gpio_dir = 
     58                (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR); 
     59 
     60        if (gpio >= AR7_GPIO_MAX) 
     61                return -EINVAL; 
     62 
     63        writel(readl(gpio_dir) | (1 << gpio), gpio_dir); 
     64 
     65        return 0; 
     66} 
     67 
     68static inline int gpio_direction_output(unsigned gpio, int value) 
     69{ 
     70        void __iomem *gpio_dir = 
     71                (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR); 
     72 
     73        if (gpio >= AR7_GPIO_MAX) 
     74                return -EINVAL; 
     75 
     76        gpio_set_value(gpio, value); 
     77        writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir); 
     78 
     79        return 0; 
    7980} 
    8081 
Note: See TracChangeset for help on using the changeset viewer.