commit eed257a53095c0a9c56c8c42f9f8595736fe7cc0 Author: Jiri Slaby Date: Mon Jul 16 08:44:51 2007 +0200 hal: gpio cleanup diff --git a/ath5k.h b/ath5k.h index 77e21dd..5bdb6da 100644 --- a/ath5k.h +++ b/ath5k.h @@ -1048,10 +1048,10 @@ unsigned int ath5k_hw_get_slot_time(struct ath_hw *hal); int ath5k_hw_setup_rx_desc(struct ath_hw *hal, struct ath_desc *desc, u32 size, unsigned int flags); /* GPIO Functions */ void ath5k_hw_set_ledstate(struct ath_hw *hal, unsigned int state); -bool ath5k_hw_set_gpio_output(struct ath_hw *hal, u32 gpio); -bool ath5k_hw_set_gpio_input(struct ath_hw *hal, u32 gpio); +int ath5k_hw_set_gpio_output(struct ath_hw *hal, u32 gpio); +int ath5k_hw_set_gpio_input(struct ath_hw *hal, u32 gpio); u32 ath5k_hw_get_gpio(struct ath_hw *hal, u32 gpio); -bool ath5k_hw_set_gpio(struct ath_hw *hal, u32 gpio, u32 val); +int ath5k_hw_set_gpio(struct ath_hw *hal, u32 gpio, u32 val); void ath5k_hw_set_gpio_intr(struct ath_hw *hal, unsigned int gpio, u32 interrupt_level); /* Regulatory Domain/Channels Setup */ unsigned int ath_hal_mhz2ieee(unsigned int freq, u_int flags); diff --git a/ath5k_hw.c b/ath5k_hw.c index 121d464..4460105 100644 --- a/ath5k_hw.c +++ b/ath5k_hw.c @@ -4286,8 +4286,7 @@ static int ath5k_hw_proc_new_rx_status(struct ath_hw *hal, /* * Set led state */ -void -ath5k_hw_set_ledstate(struct ath_hw *hal, unsigned int state) +void ath5k_hw_set_ledstate(struct ath_hw *hal, unsigned int state) { u32 led; /*5210 has different led mode handling*/ @@ -4345,79 +4344,74 @@ ath5k_hw_set_ledstate(struct ath_hw *hal, unsigned int state) /* * Set GPIO outputs */ -bool -ath5k_hw_set_gpio_output(struct ath_hw *hal, u32 gpio) +int ath5k_hw_set_gpio_output(struct ath_hw *hal, u32 gpio) { AR5K_TRACE; if (gpio > AR5K_NUM_GPIO) - return false; + return -EINVAL; ath5k_hw_reg_write(hal, (ath5k_hw_reg_read(hal, AR5K_GPIOCR) &~ AR5K_GPIOCR_OUT(gpio)) | AR5K_GPIOCR_OUT(gpio), AR5K_GPIOCR); - return true; + return 0; } /* * Set GPIO inputs */ -bool -ath5k_hw_set_gpio_input(struct ath_hw *hal, u32 gpio) +int ath5k_hw_set_gpio_input(struct ath_hw *hal, u32 gpio) { AR5K_TRACE; if (gpio > AR5K_NUM_GPIO) - return false; + return -EINVAL; ath5k_hw_reg_write(hal, (ath5k_hw_reg_read(hal, AR5K_GPIOCR) &~ AR5K_GPIOCR_OUT(gpio)) | AR5K_GPIOCR_IN(gpio), AR5K_GPIOCR); - return true; + return 0; } /* * Get GPIO state */ -u32 -ath5k_hw_get_gpio(struct ath_hw *hal, u32 gpio) +u32 ath5k_hw_get_gpio(struct ath_hw *hal, u32 gpio) { AR5K_TRACE; if (gpio > AR5K_NUM_GPIO) return 0xffffffff; /* GPIO input magic */ - return (((ath5k_hw_reg_read(hal, AR5K_GPIODI) & - AR5K_GPIODI_M) >> gpio) & 0x1); + return ((ath5k_hw_reg_read(hal, AR5K_GPIODI) & AR5K_GPIODI_M) >> gpio) & + 0x1; } /* * Set GPIO state */ -bool -ath5k_hw_set_gpio(struct ath_hw *hal, u32 gpio, u32 val) +int ath5k_hw_set_gpio(struct ath_hw *hal, u32 gpio, u32 val) { u32 data; AR5K_TRACE; if (gpio > AR5K_NUM_GPIO) - return false; + return -EINVAL; /* GPIO output magic */ data = ath5k_hw_reg_read(hal, AR5K_GPIODO); data &= ~(1 << gpio); - data |= (val&1) << gpio; + data |= (val & 1) << gpio; ath5k_hw_reg_write(hal, data, AR5K_GPIODO); - return true; + return 0; } /* * Initialize the GPIO interrupt (RFKill switch) */ -void -ath5k_hw_set_gpio_intr(struct ath_hw *hal, unsigned int gpio, - u32 interrupt_level) +void ath5k_hw_set_gpio_intr(struct ath_hw *hal, unsigned int gpio, + u32 interrupt_level) { u32 data;