Lines Matching refs:n
141 for (int n = 0; n < GPIO_n_ports_pins[p]; n++) { in nrf_gpio_init() local
142 NRF_GPIO_regs[p].PIN_CNF[n] = 0x2; /* Disconnected out of reset */ in nrf_gpio_init()
161 void nrf_gpio_eval_input(unsigned int port, unsigned int n, bool value);
187 void nrf_gpio_test_change_pin_level(unsigned int port, unsigned int n, bool value) { in nrf_gpio_test_change_pin_level() argument
188 nrf_gpio_eval_input(port, n, value); in nrf_gpio_test_change_pin_level()
199 bool nrf_gpio_get_pin_level(unsigned int port, unsigned int n) { in nrf_gpio_get_pin_level() argument
200 return (gpio_st[port].IO_level >> n) & 0x1; in nrf_gpio_get_pin_level()
203 #define CHECK_PIN_EXISTS(port, n, dir) \ argument
204 if (port >= NHW_GPIO_TOTAL_INST || (uint)n >= (uint)gpio_st[port].nbr_pins) { \
207 __func__, port, n); \
250 void nrf_gpio_peri_pin_control(unsigned int port, unsigned int n, in nrf_gpio_peri_pin_control() argument
256 if (port >= NHW_GPIO_TOTAL_INST || (int)n >= st->nbr_pins) { /* LCOV_EXCL_BR_LINE */ in nrf_gpio_peri_pin_control()
260 uint32_t mask = 1<<n; in nrf_gpio_peri_pin_control()
266 st->out_override |= (uint32_t)(override_output?1:0) << n; in nrf_gpio_peri_pin_control()
271 st->input_override |= (uint32_t)(override_input?1:0) << n; in nrf_gpio_peri_pin_control()
274 st->input_override_connected |= (uint32_t)(override_input==3?1:0) << n; in nrf_gpio_peri_pin_control()
280 st->dir_override |= (uint32_t)(override_dir?1:0) << n; in nrf_gpio_peri_pin_control()
283 st->dir_override_set |= (uint32_t)(override_dir==3?1:0) << n; in nrf_gpio_peri_pin_control()
287 st->per_intoggle_callbacks[n] = fptr; in nrf_gpio_peri_pin_control()
288 st->per_intoggle_cb_data[n] = fptr_data; in nrf_gpio_peri_pin_control()
290 st->external_OUT &= ~((uint32_t)1 << n); in nrf_gpio_peri_pin_control()
291 st->external_OUT |= (uint32_t)(new_level?1:0) << n; in nrf_gpio_peri_pin_control()
312 void nrf_gpio_peri_change_output(unsigned int port, unsigned int n, bool value) in nrf_gpio_peri_change_output() argument
314 CHECK_PIN_EXISTS(port, n, "output"); /* LCOV_EXCL_BR_LINE */ in nrf_gpio_peri_change_output()
318 if (((st->out_override >> n) & 0x1) != 1) { /* LCOV_EXCL_START */ in nrf_gpio_peri_change_output()
321 __func__, port, n); in nrf_gpio_peri_change_output()
324 if (((get_dir(port) >> n) & 0x1) != 1) { in nrf_gpio_peri_change_output()
328 __func__, port, n); in nrf_gpio_peri_change_output()
331 st->external_OUT &= ~((uint32_t)1 << n); in nrf_gpio_peri_change_output()
332 st->external_OUT |= (uint32_t)value << n; in nrf_gpio_peri_change_output()
400 bool nrf_gpio_get_IN(unsigned int port, unsigned int n) { in nrf_gpio_get_IN() argument
401 return (NRF_GPIO_regs[port].IN >> n) & 0x1; in nrf_gpio_get_IN()
408 static void nrf_gpio_input_change_sideeffects(unsigned int port, unsigned int n) in nrf_gpio_input_change_sideeffects() argument
411 bool level = nrf_gpio_get_IN(port,n); in nrf_gpio_input_change_sideeffects()
413 if (st->per_intoggle_callbacks[n] != NULL) { in nrf_gpio_input_change_sideeffects()
414 st->per_intoggle_callbacks[n](port, n, level, st->per_intoggle_cb_data[n]); in nrf_gpio_input_change_sideeffects()
417 test_intoggle_callback(port, n, level); in nrf_gpio_input_change_sideeffects()
433 for (int n = __builtin_ffs(diff) - 1; n >= 0; n = __builtin_ffs(diff) - 1) { in nrf_gpio_eval_inputs() local
434 nrf_gpio_input_change_sideeffects(port, n); in nrf_gpio_eval_inputs()
435 diff &= ~(1 << n); in nrf_gpio_eval_inputs()
453 void nrf_gpio_eval_input(unsigned int port, unsigned int n, bool value) in nrf_gpio_eval_input() argument
455 CHECK_PIN_EXISTS(port, n, "input"); /* LCOV_EXCL_BR_LINE */ in nrf_gpio_eval_input()
459 if ((dir >> n) & 0x1) { /* LCOV_EXCL_START */ in nrf_gpio_eval_input()
463 __func__, port, n); in nrf_gpio_eval_input()
467 int diff = ((gpio_st[port].IO_level >> n) & 0x1) ^ (uint32_t)value; in nrf_gpio_eval_input()
474 gpio_st[port].IO_level ^= (uint32_t)1 << n; in nrf_gpio_eval_input()
482 static void nrf_gpio_output_change_sideeffects(unsigned int port,unsigned int n, bool value) in nrf_gpio_output_change_sideeffects() argument
484 nrf_gpio_backend_write_output_change(port, n, value); in nrf_gpio_output_change_sideeffects()
486 test_outtoggle_callback(port, n, value); in nrf_gpio_output_change_sideeffects()
488 nrf_gpio_backend_short_propagate(port, n, value); in nrf_gpio_output_change_sideeffects()
517 for (int n = __builtin_ffs(diff) - 1; n >= 0; n = __builtin_ffs(diff) - 1) { in nrf_gpio_eval_outputs() local
518 nrf_gpio_output_change_sideeffects(port, n, (new_output >> n) & 0x1); in nrf_gpio_eval_outputs()
519 diff &= ~(1 << n); in nrf_gpio_eval_outputs()
553 for (int n = 0; n < gpio_st[port].nbr_pins; n++ ) { in nrf_gpio_regw_sideeffects_DIR() local
554 NRF_GPIO_regs[port].PIN_CNF[n] &= ~GPIO_PIN_CNF_DIR_Msk; in nrf_gpio_regw_sideeffects_DIR()
555 NRF_GPIO_regs[port].PIN_CNF[n] |= (NRF_GPIO_regs[port].DIR >> n) & 0x1; in nrf_gpio_regw_sideeffects_DIR()
622 void nrf_gpio_regw_sideeffects_PIN_CNF(unsigned int port, unsigned int n) { in nrf_gpio_regw_sideeffects_PIN_CNF() argument
630 uint dir = NRF_GPIO_regs[port].PIN_CNF[n] & GPIO_PIN_CNF_DIR_Msk; in nrf_gpio_regw_sideeffects_PIN_CNF()
632 if (dir != ((NRF_GPIO_regs[port].DIR >> n) & 0x1)) { in nrf_gpio_regw_sideeffects_PIN_CNF()
633 NRF_GPIO_regs[port].DIR ^= 1 << n; in nrf_gpio_regw_sideeffects_PIN_CNF()
645 uint input = (NRF_GPIO_regs[port].PIN_CNF[n] & GPIO_PIN_CNF_INPUT_Msk) in nrf_gpio_regw_sideeffects_PIN_CNF()
647 if (input != ((st->INPUT_mask >> n) & 0x1)) { in nrf_gpio_regw_sideeffects_PIN_CNF()
648 st->INPUT_mask ^= 1 << n; in nrf_gpio_regw_sideeffects_PIN_CNF()
652 int sense = (NRF_GPIO_regs[port].PIN_CNF[n] & GPIO_PIN_CNF_SENSE_Msk) in nrf_gpio_regw_sideeffects_PIN_CNF()
654 if (((sense >> 1) & 0x1) != ((st->SENSE_mask >> n) & 0x1)) { in nrf_gpio_regw_sideeffects_PIN_CNF()
655 st->SENSE_mask ^= 1 << n; in nrf_gpio_regw_sideeffects_PIN_CNF()
658 if ((sense & 0x1) != ((st->SENSE_inv >> n) & 0x1)) { in nrf_gpio_regw_sideeffects_PIN_CNF()
659 st->SENSE_inv ^= 1 << n; in nrf_gpio_regw_sideeffects_PIN_CNF()