Lines Matching +full:per +full:- +full:pin
6 * Maxime Ripard <maxime.ripard@free-electrons.com>
32 #define SUNXI_PINCTRL_PIN(bank, pin) \ argument
33 PINCTRL_PIN(P ## bank ## _BASE + (pin), "P" #bank #pin)
62 #define IRQ_CFG_IRQ_MASK ((1 << IRQ_CFG_IRQ_BITS) - 1)
66 #define IRQ_CTRL_IRQ_MASK ((1 << IRQ_CTRL_IRQ_BITS) - 1)
70 #define IRQ_STATUS_IRQ_MASK ((1 << IRQ_STATUS_IRQ_BITS) - 1)
125 struct pinctrl_pin_desc pin; member
149 unsigned pin; member
177 .pin = _pin, \
184 .pin = _pin, \
220 * 0x00 - 0x0c Muxing values.
221 * 8 pins per register, each pin having a 4bits value
222 * 0x10 Pin values
223 * 32 bits per register, each pin corresponding to one bit
224 * 0x14 - 0x18 Drive level
225 * 16 pins per register, each pin having a 2bits value
226 * 0x1c - 0x20 Pull-Up values
227 * 16 pins per register, each pin having a 2bits value
232 * The following functions calculate from the pin number the register
235 static inline u32 sunxi_mux_reg(u16 pin) in sunxi_mux_reg() argument
237 u8 bank = pin / PINS_PER_BANK; in sunxi_mux_reg()
240 offset += pin % PINS_PER_BANK / MUX_PINS_PER_REG * 0x04; in sunxi_mux_reg()
244 static inline u32 sunxi_mux_offset(u16 pin) in sunxi_mux_offset() argument
246 u32 pin_num = pin % MUX_PINS_PER_REG; in sunxi_mux_offset()
250 static inline u32 sunxi_data_reg(u16 pin) in sunxi_data_reg() argument
252 u8 bank = pin / PINS_PER_BANK; in sunxi_data_reg()
255 offset += pin % PINS_PER_BANK / DATA_PINS_PER_REG * 0x04; in sunxi_data_reg()
259 static inline u32 sunxi_data_offset(u16 pin) in sunxi_data_offset() argument
261 u32 pin_num = pin % DATA_PINS_PER_REG; in sunxi_data_offset()
265 static inline u32 sunxi_dlevel_reg(u16 pin) in sunxi_dlevel_reg() argument
267 u8 bank = pin / PINS_PER_BANK; in sunxi_dlevel_reg()
270 offset += pin % PINS_PER_BANK / DLEVEL_PINS_PER_REG * 0x04; in sunxi_dlevel_reg()
274 static inline u32 sunxi_dlevel_offset(u16 pin) in sunxi_dlevel_offset() argument
276 u32 pin_num = pin % DLEVEL_PINS_PER_REG; in sunxi_dlevel_offset()
280 static inline u32 sunxi_pull_reg(u16 pin) in sunxi_pull_reg() argument
282 u8 bank = pin / PINS_PER_BANK; in sunxi_pull_reg()
285 offset += pin % PINS_PER_BANK / PULL_PINS_PER_REG * 0x04; in sunxi_pull_reg()
289 static inline u32 sunxi_pull_offset(u16 pin) in sunxi_pull_offset() argument
291 u32 pin_num = pin % PULL_PINS_PER_REG; in sunxi_pull_offset()
297 if (!desc->irq_bank_map) in sunxi_irq_hw_bank_num()
300 return desc->irq_bank_map[bank]; in sunxi_irq_hw_bank_num()
364 static inline u32 sunxi_grp_config_reg(u16 pin) in sunxi_grp_config_reg() argument
366 u8 bank = pin / PINS_PER_BANK; in sunxi_grp_config_reg()