Lines Matching full:ppid
53 #define PMIC_ARB_MAX_PPID BIT(12) /* PPID is 12bit */
127 u16 ppid; member
147 * @mapping_table: in-memory copy of PPID -> APID mapping table.
149 * @ppid_to_apid: in-memory copy of PPID -> APID mapping table.
210 * @ppid_to_apid: finds the apid for a given ppid.
214 * on v2 offset of per-ee and per-ppid channel.
231 int (*ppid_to_apid)(struct spmi_pmic_arb_bus *bus, u16 ppid);
643 u16 ppid = bus->apid_data[apid].ppid; in cleanup_irq() local
644 u8 sid = ppid >> 8; in cleanup_irq()
645 u8 per = ppid & 0xFF; in cleanup_irq()
659 u8 sid = (bus->apid_data[apid].ppid >> 8) & 0xF; in periph_interrupt()
660 u8 per = bus->apid_data[apid].ppid & 0xFF; in periph_interrupt()
906 u16 apid, ppid; in qpnpint_irq_domain_translate() local
919 ppid = intspec[0] << 8 | intspec[1]; in qpnpint_irq_domain_translate()
920 rc = pmic_arb->ver_ops->ppid_to_apid(bus, ppid); in qpnpint_irq_domain_translate()
1034 static int pmic_arb_ppid_to_apid_v1(struct spmi_pmic_arb_bus *bus, u16 ppid) in pmic_arb_ppid_to_apid_v1() argument
1042 apid_valid = bus->ppid_to_apid[ppid]; in pmic_arb_ppid_to_apid_v1()
1055 if (ppid & BIT(SPMI_MAPPING_BIT_INDEX(data))) { in pmic_arb_ppid_to_apid_v1()
1060 bus->ppid_to_apid[ppid] in pmic_arb_ppid_to_apid_v1()
1062 bus->apid_data[apid].ppid = ppid; in pmic_arb_ppid_to_apid_v1()
1070 bus->ppid_to_apid[ppid] in pmic_arb_ppid_to_apid_v1()
1072 bus->apid_data[apid].ppid = ppid; in pmic_arb_ppid_to_apid_v1()
1089 static u16 pmic_arb_find_apid(struct spmi_pmic_arb_bus *bus, u16 ppid) in pmic_arb_find_apid() argument
1112 apidd->ppid = id; in pmic_arb_find_apid()
1113 if (id == ppid) { in pmic_arb_find_apid()
1150 static int pmic_arb_ppid_to_apid_v2(struct spmi_pmic_arb_bus *bus, u16 ppid) in pmic_arb_ppid_to_apid_v2() argument
1154 apid_valid = bus->ppid_to_apid[ppid]; in pmic_arb_ppid_to_apid_v2()
1156 apid_valid = pmic_arb_find_apid(bus, ppid); in pmic_arb_ppid_to_apid_v2()
1168 u16 i, apid, ppid, apid_max; in pmic_arb_read_apid_map_v5() local
1173 * In order to allow multiple EEs to write to a single PPID in arbiter in pmic_arb_read_apid_map_v5()
1174 * version 5 and 7, there is more than one APID mapped to each PPID. in pmic_arb_read_apid_map_v5()
1177 * which has the IRQ owner bit set for a given PPID will receive in pmic_arb_read_apid_map_v5()
1178 * interrupts from the PPID. in pmic_arb_read_apid_map_v5()
1197 ppid = (regval >> 8) & PMIC_ARB_PPID_MASK; in pmic_arb_read_apid_map_v5()
1205 valid = bus->ppid_to_apid[ppid] & PMIC_ARB_APID_VALID; in pmic_arb_read_apid_map_v5()
1206 apid = bus->ppid_to_apid[ppid] & ~PMIC_ARB_APID_VALID; in pmic_arb_read_apid_map_v5()
1210 /* First PPID mapping or one for this EE */ in pmic_arb_read_apid_map_v5()
1211 bus->ppid_to_apid[ppid] = i | PMIC_ARB_APID_VALID; in pmic_arb_read_apid_map_v5()
1215 * Duplicate PPID mapping after the one for this EE; in pmic_arb_read_apid_map_v5()
1221 apidd->ppid = ppid; in pmic_arb_read_apid_map_v5()
1226 dev_dbg(&bus->spmic->dev, "PPID APID Write-EE IRQ-EE\n"); in pmic_arb_read_apid_map_v5()
1227 for (ppid = 0; ppid < PMIC_ARB_MAX_PPID; ppid++) { in pmic_arb_read_apid_map_v5()
1228 apid = bus->ppid_to_apid[ppid]; in pmic_arb_read_apid_map_v5()
1233 ppid, apid, apidd->write_ee, apidd->irq_ee); in pmic_arb_read_apid_map_v5()
1240 static int pmic_arb_ppid_to_apid_v5(struct spmi_pmic_arb_bus *bus, u16 ppid) in pmic_arb_ppid_to_apid_v5() argument
1242 if (!(bus->ppid_to_apid[ppid] & PMIC_ARB_APID_VALID)) in pmic_arb_ppid_to_apid_v5()
1245 return bus->ppid_to_apid[ppid] & ~PMIC_ARB_APID_VALID; in pmic_arb_ppid_to_apid_v5()
1248 /* v2 offset per ppid and per ee */
1254 u16 ppid; in pmic_arb_offset_v2() local
1257 ppid = sid << 8 | ((addr >> 8) & 0xFF); in pmic_arb_offset_v2()
1258 rc = pmic_arb_ppid_to_apid_v2(bus, ppid); in pmic_arb_offset_v2()
1293 dev_err(&bus->spmic->dev, "could not read APID->PPID mapping table, rc= %d\n", in pmic_arb_init_apid_v5()
1312 u16 ppid = (sid << 8) | (addr >> 8); in pmic_arb_offset_v5() local
1314 rc = pmic_arb_ppid_to_apid_v5(bus, ppid); in pmic_arb_offset_v5()
1384 dev_err(&bus->spmic->dev, "could not read APID->PPID mapping table, rc= %d\n", in pmic_arb_init_apid_v7()
1403 u16 ppid = (sid << 8) | (addr >> 8); in pmic_arb_offset_v7() local
1405 rc = pmic_arb->ver_ops->ppid_to_apid(bus, ppid); in pmic_arb_offset_v7()