126 uint8_t reg_idx = num >> 4UL;
127 uint8_t pin_idx = num & 0xFUL;
137 val = cpr_ctl_muxctl1_get();
138 val = (val & (~(0x3 << (pin_idx << 1)))) | (mux << (pin_idx << 1));
139 cpr_ctl_muxctl1_set(val);
140 }
else if (reg_idx == 1) {
141 val = cpr_ctl_muxctl2_get();
142 val = (val & (~(0x3 << (pin_idx << 1)))) | (mux << (pin_idx << 1));
143 cpr_ctl_muxctl2_set(val);
144 }
else if (reg_idx == 2) {
145 val = cpr_ctl_muxctl3_get();
146 val = (val & (~(0x3 << (pin_idx << 1)))) | (mux << (pin_idx << 1));
147 cpr_ctl_muxctl3_set(val);
154 uint8_t reg_idx = num >> 2UL;
155 uint8_t pin_idx = num & 0x3UL;
160 val = cpr_gpio_fun_sel_get(reg_idx);
162 val = (val & ~(0x1FUL << (pin_idx << 3UL))) | (sel << (pin_idx << 3UL));
164 cpr_gpio_fun_sel_set(reg_idx, val);
173 reg_idx = num >> 4UL;
174 pin_idx = num & 0xFUL;
182 val = cprao_aon_pectrl1_get();
183 SET_BIT(val, 1 << ((pin_idx << 1) + 1));
184 CLEAR_BIT(val, 1 << (pin_idx << 1));
185 cprao_aon_pectrl1_set(val);
186 }
else if (reg_idx == 1) {
188 val = cprao_aon_pectrl2_get();
189 SET_BIT(val, 1 << ((pin_idx << 1) + 1));
190 CLEAR_BIT(val, 1 << (pin_idx << 1));
191 cprao_aon_pectrl2_set(val);
192 }
else if (reg_idx == 2) {
194 val = cprao_aon_puctrl1_get();
195 SET_BIT(val, 1 << ((pin_idx << 1) + 1));
196 CLEAR_BIT(val, 1 << (pin_idx << 1));
197 cprao_aon_puctrl1_set(val);
201 val = cprao_aon_pectrl1_get();
202 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
203 SET_BIT(val, 1 << (pin_idx << 1));
204 cprao_aon_pectrl1_set(val);
205 }
else if (reg_idx == 1) {
207 val = cprao_aon_pectrl2_get();
208 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
209 SET_BIT(val, 1 << (pin_idx << 1));
210 cprao_aon_pectrl2_set(val);
211 }
else if (reg_idx == 2) {
213 val = cprao_aon_puctrl1_get();
214 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
215 SET_BIT(val, 1 << (pin_idx << 1));
216 cprao_aon_puctrl1_set(val);
220 val = cprao_aon_pectrl1_get();
221 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
222 CLEAR_BIT(val, 1 << (pin_idx << 1));
223 cprao_aon_pectrl1_set(val);
224 }
else if (reg_idx == 1) {
226 val = cprao_aon_pectrl2_get();
227 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
228 CLEAR_BIT(val, 1 << (pin_idx << 1));
229 cprao_aon_pectrl2_set(val);
230 }
else if (reg_idx == 2) {
232 val = cprao_aon_puctrl1_get();
233 CLEAR_BIT(val, 1 << ((pin_idx << 1) + 1));
234 CLEAR_BIT(val, 1 << (pin_idx << 1));
235 cprao_aon_puctrl1_set(val);
243 uint8_t reg_idx = num >> 2UL;
244 uint8_t pin_idx = num & 0x3UL;
246 val = gpio_intr_ctrl_get(reg_idx);
247 val = (val & ~(0xF0000UL) & ~(0xFUL << (pin_idx << 2UL))) |
248 (inter << (pin_idx << 2UL)) | ((0x01UL << pin_idx) << 16UL);
249 gpio_intr_ctrl_set(reg_idx, val);
254 uint8_t reg_idx = num >> 4UL;
255 uint8_t pin_idx = num & 0xFUL;
258 val = (direction << pin_idx) | (1 << 16 << pin_idx);
260 gpio_port_ddr_set(reg_idx, val);
265 uint8_t reg_idx = num >> 5UL;
266 uint8_t pin_idx = num & 0x1FUL;
268 uint32_t value = gpio_ext_port_get(reg_idx);
270 return (value & (0x01UL << pin_idx)) ? (1) : (0);
275 uint8_t reg_idx = num >> 4UL;
276 uint8_t pin_idx = num & 0xFUL;
278 gpio_port_dr_set(reg_idx, (1 << DR_WE_LSB | pin_state) << pin_idx);
283 uint8_t reg_idx = num >> 4UL;
284 uint8_t pin_idx = num & 0xFUL;
286 if ((gpio_port_dr_get(reg_idx) & (1 << pin_idx)) !=
GPIO_PIN_RESET) {
287 gpio_port_dr_set(reg_idx, (1 << DR_WE_LSB |
GPIO_PIN_RESET) << pin_idx);
289 gpio_port_dr_set(reg_idx, (1 << DR_WE_LSB |
GPIO_PIN_SET) << pin_idx);
298 intr_sta = gpio_intr_status_c_get(0);
300 gpio_intr_clr_set(0, (uint32_t)intr_sta);
302 intr_sta = gpio_intr_status_c_get(1);
303 val |= intr_sta << 32;
304 gpio_intr_clr_set(1, (uint32_t)intr_sta);
GPIO_FUN_SEL_TypeDef FunSel
void xc_gpio_fun_sel(uint8_t num, GPIO_FUN_SEL_TypeDef sel)
void xc_gpio_toggle_pin(uint8_t num)
void xc_gpio_direction_config(uint8_t num, GPIO_DIR_TypeDef direction)
void xc_gpio_mux_ctl(uint8_t num, GPIO_MUX_TypeDef mux)
xc_gpio_init
void xc_gpio_init(GPIO_InitCfg_t *init_cfg)
xc_gpio_init
void xc_gpio_it_config(uint8_t num, GPIO_INT_TypeDef inter)
uint32_t xc_gpio_read_pin(uint8_t num)
__WEAK void gpio_intr_callback(uint64_t intr_sta)
void xc_gpio_pull_config(uint8_t num, GPIO_PULL_TypeDef pull)
void xc_gpio_write_pin(uint8_t num, GPIO_PinState pin_state)