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.
32 #define AR_NUM_GPIO 6 /* 6 GPIO pins */
33 #define AR_GPIOD_MASK 0x0000002F /* GPIO data reg r/w mask */
36 * Configure GPIO Output lines
39 ar5212GpioCfgOutput(struct ath_hal *ah, uint32_t gpio, HAL_GPIO_MUX_TYPE type) in ar5212GpioCfgOutput() argument
41 HALASSERT(gpio < AR_NUM_GPIO); in ar5212GpioCfgOutput()
48 OS_REG_READ(ah, AR_GPIOCR) | AR_GPIOCR_CR_A(gpio)); in ar5212GpioCfgOutput()
54 * Configure GPIO Input lines
57 ar5212GpioCfgInput(struct ath_hal *ah, uint32_t gpio) in ar5212GpioCfgInput() argument
59 HALASSERT(gpio < AR_NUM_GPIO); in ar5212GpioCfgInput()
62 (OS_REG_READ(ah, AR_GPIOCR) &~ AR_GPIOCR_CR_A(gpio)) in ar5212GpioCfgInput()
63 | AR_GPIOCR_CR_N(gpio)); in ar5212GpioCfgInput()
69 * Once configured for I/O - set output lines
72 ar5212GpioSet(struct ath_hal *ah, uint32_t gpio, uint32_t val) in ar5212GpioSet() argument
76 HALASSERT(gpio < AR_NUM_GPIO); in ar5212GpioSet()
79 reg &= ~(1 << gpio); in ar5212GpioSet()
80 reg |= (val&1) << gpio; in ar5212GpioSet()
87 * Once configured for I/O - get input lines
90 ar5212GpioGet(struct ath_hal *ah, uint32_t gpio) in ar5212GpioGet() argument
92 if (gpio < AR_NUM_GPIO) { in ar5212GpioGet()
94 val = ((val & AR_GPIOD_MASK) >> gpio) & 0x1; in ar5212GpioGet()
102 * Set the GPIO Interrupt
105 ar5212GpioSetIntr(struct ath_hal *ah, u_int gpio, uint32_t ilevel) in ar5212GpioSetIntr() argument
109 /* XXX bounds check gpio */ in ar5212GpioSetIntr()
111 val &= ~(AR_GPIOCR_CR_A(gpio) | in ar5212GpioSetIntr()
113 val |= AR_GPIOCR_CR_N(gpio) | AR_GPIOCR_INT(gpio) | AR_GPIOCR_INT_ENA; in ar5212GpioSetIntr()
123 (void) ar5212SetInterrupts(ah, AH5212(ah)->ah_maskReg | HAL_INT_GPIO); in ar5212GpioSetIntr()