I finally managed to apply a device tree overlay on the latest current upstream kernel. I’m still facing issues, though. While I managed to extract the previously mentioned GPIO-line-name modification into a .dts
file, I couldn’t address the GPIO with the &gpioX
handler but needed to use the gpio@00000000
addressing scheme.
rk3588-rock-5b-gpio-line-names.dts
/dts-v1/;
/plugin/;
/ {
compatible = "radxa,rock-5b", "rockchip,rk3588";
};
&{/} {
pinctrl {
gpio@fd8a0000 {
gpio-line-names =
/* GPIO0_A0-A3 */
"", "", "", "",
/* GPIO0_A4-A7 */
"", "", "", "",
/* GPIO0_B0-B3 */
"", "", "", "",
/* GPIO0_B4-B7 */
"", "PIN_8", "PIN_10", "",
/* GPIO0_C0-C3 */
"", "", "", "",
/* GPIO0_C4-C7 */
"", "", "", "",
/* GPIO0_D0-D3 */
"", "", "", "",
/* GPIO0_D4-D7 */
"", "", "", "";
};
gpio@fec20000 {
gpio-line-names =
/* GPIO1_A0-A3 */
"", "", "", "",
/* GPIO1_A4-A7 */
"", "", "", "",
/* GPIO1_B0-B3 */
"", "PIN_21", "PIN_19", "PIN_23",
/* GPIO1_B4-B7 */
"PIN_24", "PIN_26", "", "PIN_31",
/* GPIO1_C0-C3 */
"", "", "", "",
/* GPIO1_C4-C7 */
"", "", "", "",
/* GPIO1_D0-D3 */
"", "", "", "",
/* GPIO1_D4-D7 */
"", "", "", "PIN_29";
};
gpio@fec30000 {
gpio-line-names =
/* GPIO2_A0-A3 */
"", "", "", "",
/* GPIO2_A4-A7 */
"", "", "", "",
/* GPIO2_B0-B3 */
"", "", "", "",
/* GPIO2_B4-B7 */
"", "", "", "",
/* GPIO2_C0-C3 */
"", "", "", "",
/* GPIO2_C4-C7 */
"", "", "", "",
/* GPIO2_D0-D3 */
"", "", "", "",
/* GPIO2_D4-D7 */
"", "", "", "";
};
gpio@fec40000 {
gpio-line-names =
/* GPIO3_A0-A3 */
"", "", "", "",
/* GPIO3_A4-A7 */
"PIN_16", "", "", "PIN_33",
/* GPIO3_B0-B3 */
"", "PIN_36", "PIN_38", "PIN_40",
/* GPIO3_B4-B7 */
"", "PIN_12", "PIN_35", "PIN_13",
/* GPIO3_C0-C3 */
"PIN_15", "PIN_11", "PIN_32", "PIN_7",
/* GPIO3_C4-C7 */
"", "", "", "",
/* GPIO3_D0-D3 */
"", "", "", "",
/* GPIO3_D4-D7 */
"", "", "", "";
};
gpio@fec50000 {
gpio-line-names =
/* GPIO4_A0-A3 */
"", "", "", "",
/* GPIO4_A4-A7 */
"", "", "", "",
/* GPIO4_B0-B3 */
"", "", "PIN_5", "PIN_3",
/* GPIO4_B4-B7 */
"", "", "", "",
/* GPIO4_C0-C3 */
"", "", "", "",
/* GPIO4_C4-C7 */
"PIN_18", "PIN_28", "PIN_27", "",
/* GPIO4_D0-D3 */
"", "", "", "",
/* GPIO4_D4-D7 */
"", "", "", "";
};
};
};
While this finally worked I cannot seem to get anything running which relies on a gpio = <&gpioX …
configuration – not even than substituting this like just described. The resulting .dts
wouldn’t compile with that change (neither directly nor flattened), while it does compile without it though it doesn’t do anything in that case.
If you got some more input on this behaviour that would be greatly appreciated.
Apart from this I got everything else I tried so far working with the current rc kernel (6.7).