So back to my initial proposal, with a slight modification moving
pwr_event first (e.g. as it is not a wakeup interrupt):
qusb2-:
- const: pwr_event
- const: qusb2_phy
- const: ss_phy_irq (optional)
qusb2:
- const: pwr_event
- const: hs_phy_irq
- const: qusb2_phy
- const: ss_phy_irq (optional)
femto-:
- const: pwr_event
- const: dp_hs_phy_irq
- const: dm_hs_phy_irq
- const: ss_phy_irq (optional)
femto:
- const: pwr_event
- const: hs_phy_irq
- const: dp_hs_phy_irq
- const: dm_hs_phy_irq
- const: ss_phy_irq (optional)
That ss_phy_irq is optional would be expressed as minItems being one
less than maxItems for each permutation.