Message ID | 20240226-archer-ax55-v1-v2-2-3776eb61f432@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: add minimal boot support for TP-Link Archer AX55 v1 | expand |
On 2/26/24 18:12, Gabor Juhos wrote: > Add device tree source for the TP-Link Archer AX55 v1 [1] > which is a dual-band WiFi router based on the IPQ5018 SoC. > > At the moment, only the UART, the GPIO LEDs and buttons > are usable, but it makes it possible to boot an initramfs > image on the device. > > The device tree can be extended in the future, once support > for other periherals will be available for the platform. > > 1. https://www.tp-link.com/en/home-networking/wifi-router/archer-ax55/v1/ > > Signed-off-by: Gabor Juhos <j4g8y7@gmail.com> > --- [...] > + > +&uart1_pins { > + /* > + * Remove "gpio31" from the default pins in order to be able > + * to use that for the WPS button. > + */ > + pins = "gpio32", "gpio33", "gpio34"; I believe you can even shorten it down to gpio32/33, 4pin uart screams flow control, and I'm not sure if it's there only one-way Konrad
Hi Konrad, 2024. 03. 12. 21:37 keltezéssel, Konrad Dybcio írta: > > > On 2/26/24 18:12, Gabor Juhos wrote: >> Add device tree source for the TP-Link Archer AX55 v1 [1] >> which is a dual-band WiFi router based on the IPQ5018 SoC. >> >> At the moment, only the UART, the GPIO LEDs and buttons >> are usable, but it makes it possible to boot an initramfs >> image on the device. >> >> The device tree can be extended in the future, once support >> for other periherals will be available for the platform. >> >> 1. https://www.tp-link.com/en/home-networking/wifi-router/archer-ax55/v1/ >> >> Signed-off-by: Gabor Juhos <j4g8y7@gmail.com> >> --- > > [...] > >> + >> +&uart1_pins { >> + /* >> + * Remove "gpio31" from the default pins in order to be able >> + * to use that for the WPS button. >> + */ >> + pins = "gpio32", "gpio33", "gpio34"; > > I believe you can even shorten it down to gpio32/33, 4pin uart > screams flow control, and I'm not sure if it's there only one-way Thank you for the tip! The board only uses the TX and RX lines so I have removed "gpio34" and the console works without that. But since I have no documentation about which GPIOs are assigned to TX and RX, I did not stop here and checked the other two gpios as well. The interesting thing is that the console works even if "gpio32" or "gpio33" gets removed instead of "gpio34". It also works after the function of all three pins being set to "gpio" instead of the current "blsp1_uart1". This indicates that the pins are not related to UART TX/RX on this board at all. It seems that "gpio20" and "gpio21" are used instead, and the function of those must be set to "blsp0_uart0" even if the "blsp1_uart1" device is used. It is quite confusing. :( Nevertheless, I will send a new version. Regards, Gabor
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 39889d5f8e123..d3ba1e22d6ddd 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony-xperia-kitakami-karin_windy.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq5018-rdp432-c2.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq5018-tplink-archer-ax55-v1.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp441.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp442.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp468.dtb diff --git a/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dts b/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dts new file mode 100644 index 0000000000000..10fff50bb8161 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dts @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> + +#include "ipq5018.dtsi" + +/ { + model = "TP-Link Archer AX55 v1"; + compatible = "tplink,archer-ax55-v1", "qcom,ipq5018"; + + aliases { + serial0 = &blsp1_uart1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + + led-0 { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_LAN; + gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>; + }; + + led-1 { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WAN; + gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>; + }; + + led-2 { + /* WLAN 2.4GHz */ + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WLAN; + function-enumerator = <0>; + gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>; + }; + + led-3 { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_POWER; + gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>; + }; + + led-4 { + color = <LED_COLOR_ID_ORANGE>; + function = LED_FUNCTION_WAN; + gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; + }; + + led-5 { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_USB; + gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>; + }; + + led-6 { + /* WLAN 5GHz */ + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WLAN; + function-enumerator = <1>; + gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>; + }; + }; + + buttons { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button-reset { + debounce-interval = <60>; + gpios = <&tlmm 25 GPIO_ACTIVE_LOW>; + label = "reset"; + linux,code = <KEY_RESTART>; + }; + + button-wps { + debounce-interval = <60>; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + label = "wps"; + linux,code = <KEY_WPS_BUTTON>; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&uart1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&sleep_clk { + clock-frequency = <32000>; +}; + +&tlmm { + button_pins: button-pins-state { + pins = "gpio25", "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + led_pins: led-pins-state { + pins = "gpio10", "gpio11", "gpio13", "gpio18", "gpio22", + "gpio38", "gpio39"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; +}; + +&uart1_pins { + /* + * Remove "gpio31" from the default pins in order to be able + * to use that for the WPS button. + */ + pins = "gpio32", "gpio33", "gpio34"; +}; + +&xo_board_clk { + clock-frequency = <24000000>; +};
Add device tree source for the TP-Link Archer AX55 v1 [1] which is a dual-band WiFi router based on the IPQ5018 SoC. At the moment, only the UART, the GPIO LEDs and buttons are usable, but it makes it possible to boot an initramfs image on the device. The device tree can be extended in the future, once support for other periherals will be available for the platform. 1. https://www.tp-link.com/en/home-networking/wifi-router/archer-ax55/v1/ Signed-off-by: Gabor Juhos <j4g8y7@gmail.com> --- Changes in v2: - reorder the properties in TLMM pin configuration nodes to follow the usual order pointed out by Krzysztof - Link to v1: https://lore.kernel.org/all/20240223-archer-ax55-v1-v1-2-99f8fa2c3858@gmail.com --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../dts/qcom/ipq5018-tplink-archer-ax55-v1.dts | 133 +++++++++++++++++++++ 2 files changed, 134 insertions(+)