Home | History | Annotate | Download | only in xilinx

Lines Matching refs:pin

48 #define	MASK_DATA_REG(pin)	(0x000 + 0x4 * ((pin) / 16))
49 #define DATA_RO_REG(pin) (0x060 + 0x4 * ((pin) / 32))
50 #define DATA_RO_BIT(pin) __BIT((pin) % 32)
51 #define DIRM_REG(pin) (0x204 + 0x40 * ((pin) / 32))
52 #define DIRM_BIT(pin) __BIT((pin) % 32)
53 #define OEN_REG(pin) (0x208 + 0x40 * ((pin) / 32))
54 #define OEN_BIT(pin) __BIT((pin) % 32)
93 zynq_gpio_ctl(struct zynq_gpio_softc *sc, u_int pin, int flags)
99 dirm = RD4(sc, DIRM_REG(pin));
100 oen = RD4(sc, OEN_REG(pin));
102 dirm &= ~DIRM_BIT(pin);
103 oen &= ~OEN_BIT(pin);
105 dirm |= DIRM_BIT(pin);
106 oen |= OEN_BIT(pin);
108 WR4(sc, OEN_REG(pin), oen);
109 WR4(sc, DIRM_REG(pin), dirm);
125 const uint8_t pin = be32toh(gpio[1]) & 0xff;
128 if (pin >= __arraycount(sc->sc_pins))
132 error = zynq_gpio_ctl(sc, pin, flags);
140 gpin->pin_nr = pin;
151 struct zynq_gpio_pin *pin = priv;
154 zynq_gpio_ctl(pin->pin_sc, pin->pin_nr, GPIO_PIN_INPUT);
157 kmem_free(pin, sizeof(*pin));
164 struct zynq_gpio_pin *pin = priv;
167 KASSERT(sc == pin->pin_sc);
169 val = zynq_gpio_pin_read(sc, pin->pin_nr);
170 if (!raw && pin->pin_actlo)
180 struct zynq_gpio_pin *pin = priv;
182 KASSERT(sc == pin->pin_sc);
184 if (!raw && pin->pin_actlo)
187 zynq_gpio_pin_write(sc, pin->pin_nr, val);
198 zynq_gpio_pin_read(void *priv, int pin)
204 KASSERT(pin < __arraycount(sc->sc_pins));
206 data = RD4(sc, DATA_RO_REG(pin));
207 val = __SHIFTOUT(data, DATA_RO_BIT(pin));
213 zynq_gpio_pin_write(void *priv, int pin, int val)
218 KASSERT(pin < __arraycount(sc->sc_pins));
220 mask_data = (0xffff & ~__BIT(pin % 16)) << 16;
222 mask_data |= __BIT(pin % 16);
224 WR4(sc, MASK_DATA_REG(pin), mask_data);
228 zynq_gpio_pin_ctl(void *priv, int pin, int flags)
232 KASSERT(pin < __arraycount(sc->sc_pins));
235 zynq_gpio_ctl(sc, pin, flags);
244 u_int pin;
251 for (pin = 0; pin < __arraycount(sc->sc_pins); pin++) {
252 sc->sc_pins[pin].pin_num = pin;
253 sc->sc_pins[pin].pin_caps = GPIO_PIN_INPUT | GPIO_PIN_OUTPUT;
254 sc->sc_pins[pin].pin_state = zynq_gpio_pin_read(sc, pin);