Sorry for the late answer.
We've already seen this solution but our syntax doesn't match with your exemples.
For exemple, for the UART0, we have this :
pinctrl@01c20800 {
...
uart0@0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x29>;
phandle = <0x29>;
};
...
};
...
serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28000 0x400>;
interrupts = <0x1>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x10>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x29>;
};
instead of :
uart0: serial@01c28000 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
So we tried to add this to enable the UART2, but it failed :
pinctrl@01c20800 {
...
uart2@0 {
allwinner,pins = "PI18", "PI19";
allwinner,function = "uart2";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x30>;
phandle = <0x30>;
};
...
};
...
serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28800 0x400>;
interrupts = <0x3>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x12>;
pinctrl-names = "default";
pinctrl-0 = <0x30>;
status = "okay";
};
When we try your exemple, we have this error during the compilation :
ERROR (phandle_references): Reference to non-existent node or label "uart2_pins_a"
ERROR: Input tree has errors, aborting (use -f to force output)
And when we replace "uart2_pins_a" by 0x30 (to match with the uart2 phandle), it compiles but doesn't work, and the previous command return the same things (dmesg and cat on /proc/tty/driver/serial).