On Tue, Dec 4, 2018 at 3:10 AM Brian Masney <masneyb@xxxxxxxxxxxxx> wrote: > I started to work this evening on converting pinctrl-spmi-gpio.c to > hierarchical irqs using pinctrl-stm32.c as a reference. I'll be > able to test that this is working properly on the Nexus 5 by using > gpio-keys with the volume up/down buttons on the phone. I'll need to > remove the call to gpiod_to_irq() from gpio_keys.c in my local tree.. This is great news! Thank you so much for working on this! > stm32_pctl_probe() only sets up the hierarchical irqs if > interrupt-parent is defined on that node in device tree. I don't know if that is strictly required. What device tree does is just traverse upward to find the parent if no interrupt-parent is defined, it will look for a parent in the parent node then in the parent of the parent etc until it hits the default interrupt controller in the root node. > qcom-pm8941.dtsi currently doesn't have this property in the current > mainline and it is also not present in the downstream Android sources > for the Nexus 5. Does anyone know what I should put for the parent > interrupt controller? I'm a bit confused because the PM8xxx has its irqdomain inside drivers/mfd/qcom-pm8xxx.c and the PM8941 driver in drivers/mfd/qcom-spmi-pmic.c does not. This on the PM8941 there appears to be no irqchip. Then it falls upward to the spmi bus. This is (qcom-msm8974.dtsi) an interrupt-controller with four cells, so it should be: interrupt-parent = <&spmi_bus>; The irqchip and domain of the parent should be what you find in drivers/spmi/spmi-pmic-arb.c Yours, Linus Walleij