The purpose of this series to add minimal boot support for the
TP-Link Archer AX55 v1 dual-band wireless router.
There are two patches:
- the first one adds the compatible for the board into the dt-bindings
documentation,
- the second patch introduces a minimal device tree source which can be
used for booting initramfs images
---
Changes in v2:
- reorder pin configuration properties in patch 2/2
- add 'Acked-by' tag to patch 1/2
- Link to v1: https://lore.kernel.org/r/[email protected]
---
Gabor Juhos (2):
dt-bindings: arm: qcom: add TP-Link Archer AX55 v1
arm64: dts: qcom: add TP-Link Archer AX55 v1
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/ipq5018-tplink-archer-ax55-v1.dts | 133 +++++++++++++++++++++
3 files changed, 135 insertions(+)
---
base-commit: b401b621758e46812da61fa58a67c3fd8d91de0d
change-id: 20240221-archer-ax55-v1-73ed91a97c6e
Best regards,
--
Gabor Juhos <[email protected]>
Document the TP-Link Archer AX55 v1 which is a dual-band
WiFi router based on the IPQ5018 SoC.
Signed-off-by: Gabor Juhos <[email protected]>
Acked-by: Conor Dooley <[email protected]>
---
Changes in v2:
- add 'Acked-by' tag from Conor
- Link to v1: https://lore.kernel.org/all/[email protected]
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 1a5fb889a4440..ff0a3b64f37a5 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -351,6 +351,7 @@ properties:
- items:
- enum:
- qcom,ipq5018-rdp432-c2
+ - tplink,archer-ax55-v1
- const: qcom,ipq5018
- items:
--
2.43.2
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 <[email protected]>
---
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/[email protected]
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/ipq5018-tplink-archer-ax55-v1.dts | 133 +++++++++++++++++++++
2 files changed, 134 insertions(+)
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>;
+};
--
2.43.2
On Mon, 26 Feb 2024 18:12:38 +0100, Gabor Juhos wrote:
> The purpose of this series to add minimal boot support for the
> TP-Link Archer AX55 v1 dual-band wireless router.
>
> There are two patches:
> - the first one adds the compatible for the board into the dt-bindings
> documentation,
> - the second patch introduces a minimal device tree source which can be
> used for booting initramfs images
>
> ---
> Changes in v2:
> - reorder pin configuration properties in patch 2/2
> - add 'Acked-by' tag to patch 1/2
> - Link to v1: https://lore.kernel.org/r/[email protected]
>
> ---
> Gabor Juhos (2):
> dt-bindings: arm: qcom: add TP-Link Archer AX55 v1
> arm64: dts: qcom: add TP-Link Archer AX55 v1
>
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/ipq5018-tplink-archer-ax55-v1.dts | 133 +++++++++++++++++++++
> 3 files changed, 135 insertions(+)
> ---
> base-commit: b401b621758e46812da61fa58a67c3fd8d91de0d
> change-id: 20240221-archer-ax55-v1-73ed91a97c6e
>
> Best regards,
> --
> Gabor Juhos <[email protected]>
>
>
>
My bot found new DT warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y qcom/ipq5018-tplink-archer-ax55-v1.dtb' for [email protected]:
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names:0: 'pwr_event' was expected
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
Hello Rob,
2024. 02. 27. 14:45 keltezéssel, Rob Herring írta:
> My bot found new DT warnings on the .dts files added or changed in this
> series.
>
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not.
>
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
>
> pip3 install dtschema --upgrade
>
>
> New warnings running 'make CHECK_DTBS=y qcom/ipq5018-tplink-archer-ax55-v1.dtb' for [email protected]:
>
> arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short
> from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
> arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short
> from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
> arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupts: [[0, 62, 4]] is too short
> from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
> arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names:0: 'pwr_event' was expected
> from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
> arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: usb@8af8800: interrupt-names: ['hs_phy_irq'] is too short
> from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
>
These are caused by the 'usb@8af8800' defined in the SoC .dtsi
(arch/arm64/boot/dts/qcom/ipq5018.dtsi) file. I saw the warnings, and I have
indicated that in the previous version of the patch [1].
Sorry, I should have kept that note in the current version as well.
Regards,
Gabor
1. https://lore.kernel.org/r/[email protected]
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 <[email protected]>
> ---
[...]
> +
> +&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 <[email protected]>
>> ---
>
> [...]
>
>> +
>> +&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