Lines Matching refs:offset
62 static rt_uint16_t *gicv3_dist_espi_reg(rt_uint32_t offset) in gicv3_dist_espi_reg() argument
68 int idx = rt_hashmap_32(offset, __reg_map_bits); in gicv3_dist_espi_reg()
70 LOG_D("%s ESPI Map<0x%04x> = %2d", "Distributor", offset, idx); in gicv3_dist_espi_reg()
136 static rt_uint32_t gicv3_hwirq_convert_offset_index(int hwirq, rt_uint32_t offset, rt_uint32_t *ind… in gicv3_hwirq_convert_offset_index() argument
151 offset = *gicv3_dist_espi_reg(offset); in gicv3_hwirq_convert_offset_index()
158 return offset; in gicv3_hwirq_convert_offset_index()
174 static void *gicv3_hwirq_reg_base(int hwirq, rt_uint32_t offset, rt_uint32_t *index) in gicv3_hwirq_reg_base() argument
187 return base + gicv3_hwirq_convert_offset_index(hwirq, offset, index); in gicv3_hwirq_reg_base()
190 static rt_bool_t gicv3_hwirq_peek(int hwirq, rt_uint32_t offset) in gicv3_hwirq_peek() argument
193 void *base = gicv3_hwirq_reg_base(hwirq, offset, &index); in gicv3_hwirq_peek()
198 static void gicv3_hwirq_poke(int hwirq, rt_uint32_t offset) in gicv3_hwirq_poke() argument
201 void *base = gicv3_hwirq_reg_base(hwirq, offset, &index); in gicv3_hwirq_poke()
506 rt_uint32_t index, offset; in gicv3_irq_set_priority() local
517 offset = gicv3_hwirq_convert_offset_index(hwirq, GICD_IPRIORITYR, &index); in gicv3_irq_set_priority()
518 HWREG8(base + offset + index) = priority; in gicv3_irq_set_priority()
528 rt_uint32_t offset, index; in gicv3_irq_set_affinity() local
533 offset = gicv3_hwirq_convert_offset_index(hwirq, GICD_IROUTER, &index); in gicv3_irq_set_affinity()
539 HWREG64(_gic.dist_base + offset + (index * 8)) = val; in gicv3_irq_set_affinity()
549 rt_uint32_t index, offset; in gicv3_irq_set_triger_mode() local
562 offset = gicv3_hwirq_convert_offset_index(hwirq, GICD_ICFGR, &index); in gicv3_irq_set_triger_mode()
564 ret = gic_common_configure_irq(base + offset, hwirq, mode, RT_NULL, RT_NULL); in gicv3_irq_set_triger_mode()
627 rt_uint32_t offset = 0; in gicv3_irq_set_state() local
637 offset = state ? GICD_ISPENDR : GICD_ICPENDR; in gicv3_irq_set_state()
640 offset = state ? GICD_ISACTIVER : GICD_ICACTIVER; in gicv3_irq_set_state()
652 offset = GICD_ISENABLER; in gicv3_irq_set_state()
660 if (!err && offset) in gicv3_irq_set_state()
662 gicv3_hwirq_poke(hwirq, offset); in gicv3_irq_set_state()
671 rt_uint32_t offset = 0; in gicv3_irq_get_state() local
676 offset = GICD_ISPENDR; in gicv3_irq_get_state()
679 offset = GICD_ISACTIVER; in gicv3_irq_get_state()
682 offset = GICD_ISENABLER; in gicv3_irq_get_state()
691 *out_state = gicv3_hwirq_peek(hwirq, offset); in gicv3_irq_get_state()