Lines Matching +full:gpio +full:- +full:lines
1 /*-
2 * SPDX-License-Identifier: ISC
4 * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
5 * Copyright (c) 2002-2008 Atheros Communications, Inc.
31 #define AR_NUM_GPIO 6 /* 6 GPIO pins */
32 #define AR5312_GPIOD_MASK 0x0000002F /* GPIO data reg r/w mask */
35 * Configure GPIO Output lines
38 ar5312GpioCfgOutput(struct ath_hal *ah, uint32_t gpio, HAL_GPIO_MUX_TYPE type) in ar5312GpioCfgOutput() argument
40 uint32_t gpioOffset = (AR5312_GPIO_BASE - ((uint32_t) ah->ah_sh)); in ar5312GpioCfgOutput()
42 HALASSERT(gpio < AR_NUM_GPIO); in ar5312GpioCfgOutput()
45 (OS_REG_READ(ah, gpioOffset+AR5312_GPIOCR) &~ AR_GPIOCR_CR_A(gpio)) in ar5312GpioCfgOutput()
46 | AR_GPIOCR_CR_A(gpio)); in ar5312GpioCfgOutput()
52 * Configure GPIO Input lines
55 ar5312GpioCfgInput(struct ath_hal *ah, uint32_t gpio) in ar5312GpioCfgInput() argument
57 uint32_t gpioOffset = (AR5312_GPIO_BASE - ((uint32_t) ah->ah_sh)); in ar5312GpioCfgInput()
59 HALASSERT(gpio < AR_NUM_GPIO); in ar5312GpioCfgInput()
62 (OS_REG_READ(ah, gpioOffset+AR5312_GPIOCR) &~ AR_GPIOCR_CR_A(gpio)) in ar5312GpioCfgInput()
63 | AR_GPIOCR_CR_N(gpio)); in ar5312GpioCfgInput()
69 * Once configured for I/O - set output lines
72 ar5312GpioSet(struct ath_hal *ah, uint32_t gpio, uint32_t val) in ar5312GpioSet() argument
75 uint32_t gpioOffset = (AR5312_GPIO_BASE - ((uint32_t) ah->ah_sh)); in ar5312GpioSet()
77 HALASSERT(gpio < AR_NUM_GPIO); in ar5312GpioSet()
80 reg &= ~(1 << gpio); in ar5312GpioSet()
81 reg |= (val&1) << gpio; in ar5312GpioSet()
88 * Once configured for I/O - get input lines
91 ar5312GpioGet(struct ath_hal *ah, uint32_t gpio) in ar5312GpioGet() argument
93 uint32_t gpioOffset = (AR5312_GPIO_BASE - ((uint32_t) ah->ah_sh)); in ar5312GpioGet()
95 if (gpio < AR_NUM_GPIO) { in ar5312GpioGet()
97 val = ((val & AR5312_GPIOD_MASK) >> gpio) & 0x1; in ar5312GpioGet()
105 * Set the GPIO Interrupt
108 ar5312GpioSetIntr(struct ath_hal *ah, u_int gpio, uint32_t ilevel) in ar5312GpioSetIntr() argument
111 uint32_t gpioOffset = (AR5312_GPIO_BASE - ((uint32_t) ah->ah_sh)); in ar5312GpioSetIntr()
113 /* XXX bounds check gpio */ in ar5312GpioSetIntr()
115 val &= ~(AR_GPIOCR_CR_A(gpio) | in ar5312GpioSetIntr()
117 val |= AR_GPIOCR_CR_N(gpio) | AR_GPIOCR_INT(gpio) | AR_GPIOCR_INT_ENA; in ar5312GpioSetIntr()
127 (void) ar5212SetInterrupts(ah, AH5212(ah)->ah_maskReg | HAL_INT_GPIO); in ar5312GpioSetIntr()