* [PATCH v3 1/2] dt-bindings: arm: qcom: add TP-Link Archer AX55 v1
2024-03-13 18:25 [PATCH v3 0/2] arm64: add minimal boot support for TP-Link Archer AX55 v1 Gabor Juhos
@ 2024-03-13 18:25 ` Gabor Juhos
2024-03-13 18:25 ` [PATCH v3 2/2] arm64: dts: " Gabor Juhos
2024-03-15 15:50 ` [PATCH v3 0/2] arm64: add minimal boot support for " Rob Herring
2 siblings, 0 replies; 6+ messages in thread
From: Gabor Juhos @ 2024-03-13 18:25 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Gabor Juhos,
Conor Dooley
Document the TP-Link Archer AX55 v1 which is a dual-band
WiFi router based on the IPQ5018 SoC.
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
Changes in v3:
- rebase on top of v6.8
- Link to v2: https://lore.kernel.org/r/20240226-archer-ax55-v1-v2-1-3776eb61f432@gmail.com
Changes in v2:
- add 'Acked-by' tag from Conor
- Link to v1: https://lore.kernel.org/all/20240223-archer-ax55-v1-v1-1-99f8fa2c3858@gmail.com
---
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.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v3 2/2] arm64: dts: qcom: add TP-Link Archer AX55 v1
2024-03-13 18:25 [PATCH v3 0/2] arm64: add minimal boot support for TP-Link Archer AX55 v1 Gabor Juhos
2024-03-13 18:25 ` [PATCH v3 1/2] dt-bindings: arm: qcom: add " Gabor Juhos
@ 2024-03-13 18:25 ` Gabor Juhos
2024-03-13 18:27 ` Konrad Dybcio
2024-03-15 15:50 ` [PATCH v3 0/2] arm64: add minimal boot support for " Rob Herring
2 siblings, 1 reply; 6+ messages in thread
From: Gabor Juhos @ 2024-03-13 18:25 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Gabor Juhos
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 v3:
- change pin configuration to use "gpio20" and "gpio21" for UART pins
- rebase on top of v6.8.
- Link to v2: https://lore.kernel.org/r/20240226-archer-ax55-v1-v2-2-3776eb61f432@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
Note: running 'make CHECK_DTBS=y qcom/ipq5018-tplink-archer-ax55-v1.dtb'
shows the following:
DTC_CHK arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb
<...>/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#
This is not caused by the new device tree per se but comes from
the usb@8af8800 node defined in ipq5018.dtsi. Running the check
on 'qcom/ipq5018-rdp432-c2.dtb' shows the same.
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/ipq5018-tplink-archer-ax55-v1.dts | 132 +++++++++++++++++++++
2 files changed, 133 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..15fcb5693545d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dts
@@ -0,0 +1,132 @@
+// 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 = <&uart_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;
+ };
+
+ uart_pins: uart-pins-state {
+ pins = "gpio20", "gpio21";
+ function = "blsp0_uart0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+};
+
+&xo_board_clk {
+ clock-frequency = <24000000>;
+};
--
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 2/2] arm64: dts: qcom: add TP-Link Archer AX55 v1
2024-03-13 18:25 ` [PATCH v3 2/2] arm64: dts: " Gabor Juhos
@ 2024-03-13 18:27 ` Konrad Dybcio
2024-03-14 7:53 ` Gabor Juhos
0 siblings, 1 reply; 6+ messages in thread
From: Konrad Dybcio @ 2024-03-13 18:27 UTC (permalink / raw)
To: Gabor Juhos, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 3/13/24 19:25, 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>
> ---
> Changes in v3:
> - change pin configuration to use "gpio20" and "gpio21" for UART pins
> - rebase on top of v6.8.
Did you actually check this? And how so?
Konrad
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: qcom: add TP-Link Archer AX55 v1
2024-03-13 18:27 ` Konrad Dybcio
@ 2024-03-14 7:53 ` Gabor Juhos
0 siblings, 0 replies; 6+ messages in thread
From: Gabor Juhos @ 2024-03-14 7:53 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
2024. 03. 13. 19:27 keltezéssel, Konrad Dybcio írta:
>
>
> On 3/13/24 19:25, 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>
>> ---
>> Changes in v3:
>> - change pin configuration to use "gpio20" and "gpio21" for UART pins
>> - rebase on top of v6.8.
>
> Did you actually check this?
Yes, I have tested this.
> And how so?
First, I have checked the stock firmware which uses the same pinctrl configuration:
root@Archer_AX55:~# uname -a
Linux Archer_AX55 4.4.60 #1 SMP PREEMPT Tue Mar 14 18:25:29 CST 2023 armv7l
GNU/Linux
root@Archer_AX55:~# strings
/sys/firmware/devicetree/base/soc/pinctrl@1000000/uart_pins/blsp0_uart_rx_tx/pins
gpio20
gpio21
root@Archer_AX55:~# strings
/sys/firmware/devicetree/base/soc/pinctrl@1000000/uart_pins/blsp0_uart_rx_tx/function
blsp0_uart0
It is also visible in pinctrl-maps:
root@Archer_AX55:~# cat /sys/kernel/debug/pinctrl/pinctrl-maps
Pinctrl maps:
device 1000000.pinctrl
state default
type MUX_GROUP (2)
controlling device 1000000.pinctrl
group gpio20
function blsp0_uart0
device 1000000.pinctrl
state default
type CONFIGS_GROUP (4)
controlling device 1000000.pinctrl
group gpio20
config 00000001
device 1000000.pinctrl
state default
type MUX_GROUP (2)
controlling device 1000000.pinctrl
group gpio21
function blsp0_uart0
device 1000000.pinctrl
state default
type CONFIGS_GROUP (4)
controlling device 1000000.pinctrl
group gpio21
config 00000001
...
Additionally, this is what debug/gpio says:
root@Archer_AX55:~# grep -E 'gpio2[01]' /sys/kernel/debug/gpio
gpio20 : in 1 8mA no pull
gpio21 : in 1 8mA no pull
Then I have tested the following with v6.8 and with the previous version of the
patch.
Exported GPIO20 via sysfs ...
root@test:/# gpio=$((512+20)); echo $gpio > /sys/class/gpio/export; while
true; do for dir in high low; do echo $dir >/sys/class/gpio/gpio$gpio/direction;
sleep 3; done; done
... and measured the voltage on the UART pin header. Then I did the same with
GPIO21 as well.
This revealed that GPIO20 corresponds to RX and GPIO21 to TX.
If that matters, the downstream kernel also uses this 'trick' for some boards:
https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4/-/blob/NHSS.QSDK.12.4/arch/arm64/boot/dts/qcom/ipq5018-db-mp03.1.dts?ref_type=heads#L443
https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4/-/blob/NHSS.QSDK.12.4/arch/arm64/boot/dts/qcom/ipq5018-mp03.1.dts?ref_type=heads#L565
Regards,
Gabor
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/2] arm64: add minimal boot support for TP-Link Archer AX55 v1
2024-03-13 18:25 [PATCH v3 0/2] arm64: add minimal boot support for TP-Link Archer AX55 v1 Gabor Juhos
2024-03-13 18:25 ` [PATCH v3 1/2] dt-bindings: arm: qcom: add " Gabor Juhos
2024-03-13 18:25 ` [PATCH v3 2/2] arm64: dts: " Gabor Juhos
@ 2024-03-15 15:50 ` Rob Herring
2 siblings, 0 replies; 6+ messages in thread
From: Rob Herring @ 2024-03-15 15:50 UTC (permalink / raw)
To: Gabor Juhos
Cc: Bjorn Andersson, devicetree, linux-kernel, Conor Dooley,
Konrad Dybcio, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
Rob Herring
On Wed, 13 Mar 2024 19:25: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 v3:
> - change pin configuration to use "gpio20" and "gpio21" for UART pins
> in patch 2/2
> - rebase on top of v6.8
> - Link to v2: https://lore.kernel.org/r/20240226-archer-ax55-v1-v2-0-3776eb61f432@gmail.com
>
> 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/20240223-archer-ax55-v1-v1-0-99f8fa2c3858@gmail.com
>
> ---
> 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 | 132 +++++++++++++++++++++
> 3 files changed, 134 insertions(+)
> ---
> base-commit: 0becfaedccee979a5f270647e573b52668669a4a
> change-id: 20240221-archer-ax55-v1-73ed91a97c6e
>
> Best regards,
> --
> Gabor Juhos <j4g8y7@gmail.com>
>
>
>
My bot found new DTB 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. No need to reply
unless the platform maintainer has comments.
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 20240313-archer-ax55-v1-v3-0-cd9402efab59@gmail.com:
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#
^ permalink raw reply [flat|nested] 6+ messages in thread