iPXE
ath5k_gpio.c File Reference
#include "ath5k.h"
#include "reg.h"
#include "base.h"

Go to the source code of this file.

Functions

 FILE_LICENCE (MIT)
 FILE_SECBOOT (FORBIDDEN)
int ath5k_hw_set_gpio_input (struct ath5k_hw *ah, u32 gpio)
int ath5k_hw_set_gpio_output (struct ath5k_hw *ah, u32 gpio)
u32 ath5k_hw_get_gpio (struct ath5k_hw *ah, u32 gpio)
int ath5k_hw_set_gpio (struct ath5k_hw *ah, u32 gpio, u32 val)
void ath5k_hw_set_gpio_intr (struct ath5k_hw *ah, unsigned int gpio, u32 interrupt_level)

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( MIT )

◆ FILE_SECBOOT()

FILE_SECBOOT ( FORBIDDEN )

◆ ath5k_hw_set_gpio_input()

int ath5k_hw_set_gpio_input ( struct ath5k_hw * ah,
u32 gpio )

Definition at line 35 of file ath5k_gpio.c.

36{
37 if (gpio >= AR5K_NUM_GPIO)
38 return -EINVAL;
39
43
44 return 0;
45}
#define AR5K_GPIOCR_OUT(n)
Definition reg.h:937
#define AR5K_NUM_GPIO
Definition reg.h:928
#define AR5K_GPIOCR_IN(n)
Definition reg.h:934
#define AR5K_GPIOCR
Definition reg.h:930
static u32 ath5k_hw_reg_read(struct ath5k_hw *ah, u16 reg)
Definition ath5k.h:1216
static void ath5k_hw_reg_write(struct ath5k_hw *ah, u32 val, u16 reg)
Definition ath5k.h:1224
#define EINVAL
Invalid argument.
Definition errno.h:429
uint8_t ah
Definition registers.h:1
A GPIO pin.
Definition gpio.h:18

References ah, AR5K_GPIOCR, AR5K_GPIOCR_IN, AR5K_GPIOCR_OUT, AR5K_NUM_GPIO, ath5k_hw_reg_read(), ath5k_hw_reg_write(), EINVAL, and u32.

Referenced by ath5k_hw_reset(), and ath5k_rfkill_set_intr().

◆ ath5k_hw_set_gpio_output()

int ath5k_hw_set_gpio_output ( struct ath5k_hw * ah,
u32 gpio )

◆ ath5k_hw_get_gpio()

u32 ath5k_hw_get_gpio ( struct ath5k_hw * ah,
u32 gpio )

Definition at line 65 of file ath5k_gpio.c.

66{
67 if (gpio >= AR5K_NUM_GPIO)
68 return 0xffffffff;
69
70 /* GPIO input magic */
72 0x1;
73}
#define AR5K_GPIODI_M
Definition reg.h:949
#define AR5K_GPIODI
Definition reg.h:948

References ah, AR5K_GPIODI, AR5K_GPIODI_M, AR5K_NUM_GPIO, ath5k_hw_reg_read(), and u32.

Referenced by ath5k_hw_reset(), ath5k_is_rfkill_set(), and ath5k_rfkill_set_intr().

◆ ath5k_hw_set_gpio()

int ath5k_hw_set_gpio ( struct ath5k_hw * ah,
u32 gpio,
u32 val )

Definition at line 78 of file ath5k_gpio.c.

79{
80 u32 data;
81
82 if (gpio >= AR5K_NUM_GPIO)
83 return -EINVAL;
84
85 /* GPIO output magic */
87
88 data &= ~(1 << gpio);
89 data |= (val & 1) << gpio;
90
92
93 return 0;
94}
#define AR5K_GPIODO
Definition reg.h:943
uint8_t data[48]
Additional event data.
Definition ena.h:11
void __asmcall int val
Definition setjmp.h:12
#define u32
Definition vga.h:21

References ah, AR5K_GPIODO, AR5K_NUM_GPIO, ath5k_hw_reg_read(), ath5k_hw_reg_write(), data, EINVAL, u32, and val.

Referenced by ath5k_rfkill_disable(), and ath5k_rfkill_enable().

◆ ath5k_hw_set_gpio_intr()

void ath5k_hw_set_gpio_intr ( struct ath5k_hw * ah,
unsigned int gpio,
u32 interrupt_level )

Definition at line 99 of file ath5k_gpio.c.

101{
102 u32 data;
103
104 if (gpio >= AR5K_NUM_GPIO)
105 return;
106
107 /*
108 * Set the GPIO interrupt
109 */
114
115 ath5k_hw_reg_write(ah, interrupt_level ? data :
117
118 ah->ah_imr |= AR5K_IMR_GPIO;
119
120 /* Enable GPIO interrupts */
122}
#define AR5K_GPIOCR_INT_SEL(n)
Definition reg.h:938
#define AR5K_GPIOCR_INT_SELH
Definition reg.h:933
#define AR5K_IMR_GPIO
Definition reg.h:410
#define AR5K_PIMR
Definition reg.h:381
#define AR5K_GPIOCR_INT_ENA
Definition reg.h:931
#define AR5K_REG_ENABLE_BITS(ah, _reg, _flags)
Definition ath5k.h:106

References ah, AR5K_GPIOCR, AR5K_GPIOCR_INT_ENA, AR5K_GPIOCR_INT_SEL, AR5K_GPIOCR_INT_SELH, AR5K_GPIOCR_OUT, AR5K_IMR_GPIO, AR5K_NUM_GPIO, AR5K_PIMR, AR5K_REG_ENABLE_BITS, ath5k_hw_reg_read(), ath5k_hw_reg_write(), data, and u32.

Referenced by ath5k_hw_reset(), and ath5k_rfkill_set_intr().