fw_devlink on will break all snps,dw-apb-gpio users

From: Jisheng Zhang
Date: Wed Oct 14 2020 - 07:12:56 EST


Hi,

If set fw_devlink as on, any consumers of dw apb gpio won't probe.

The related dts looks like:

gpio0: gpio@2400 {
compatible = "snps,dw-apb-gpio";
#address-cells = <1>;
#size-cells = <0>;

porta: gpio-port@0 {
compatible = "snps,dw-apb-gpio-port";
gpio-controller;
#gpio-cells = <2>;
ngpios = <32>;
reg = <0>;
};
};

device_foo {
status = "okay"
...;
reset-gpio = <&porta, 0, GPIO_ACTIVE_HIGH>;
};

If I change the reset-gpio property to use another kind of gpio phandle,
e.g gpio expander, then device_foo can be probed successfully.

The gpio expander dt node looks like:

expander3: gpio@44 {
compatible = "fcs,fxl6408";
pinctrl-names = "default";
pinctrl-0 = <&expander3_pmux>;
reg = <0x44>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&portb>;
interrupts = <23 IRQ_TYPE_NONE>;
interrupt-controller;
#interrupt-cells = <2>;
};

The common pattern looks like the devlink can't cope with suppliers from
child dt node.

Any suggestions?

Thanks in advance,
Jisheng