Re: [PATCH 1/3] arm64: dts: qcom: add Linksys EA9350 V3

From: Krzysztof Kozlowski
Date: Wed Oct 02 2024 - 08:26:07 EST


On 02/10/2024 14:08, Karl Chan wrote:
> Add device tree source for Linksys EA9350 V3 which is a WiFi router based on the IPQ5018 SoC.
>
> As of now , only the UART,USB,USB LED,buttons is working.The front PWM LED require the IPQ PWM driver.Therefore the PWM LED isn't configed in the tree.
>
> Also The original firmware from Linksys can only boot ARM32 kernels.
>
> As of now There seems to be no way to boot ARM64 kernels on those device.
>
> However, it is possible to use this device tree by compiling an ARM32 kernel instead.
>
> Signed-off-by: Karl Chan <exxxxkc@xxxxxxxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/ipq5018-linksys-jamaica.dts | 114 ++++++++++++++++++
> 2 files changed, 115 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index ae002c7cf126..9ddc1b695478 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -12,6 +12,7 @@ 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) += ipq5018-linksys-jamaica.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-linksys-jamaica.dts b/arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
> new file mode 100644
> index 000000000000..b6cb88884193
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
> @@ -0,0 +1,114 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +
> +/dts-v1/;
> +
> +/*
> + * NOTE: The original firmware from Linksys can only boot ARM32 kernels.
> + *
> + * As of now There seems to be no way to boot ARM64 kernels on those device.
> + *
> + * However, it is possible to use this device tree by compiling an ARM32 kernel
> + * instead. For clarity and build testing this device tree is maintained next
> + * to the other IPQ5018 device trees. However, it is actually used through
> + * arch/arm/boot/dts/qcom/qcom-ipq5018-linksys-jamaica.dts
> + */
> +
> +#include "ipq5018.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/gpio/gpio.h>
> +
> +

Just one blank line.

> +/ {
> + model = "Linksys EA9350 V3";
> + compatible = "linksys,jamaica", "qcom,ipq5018";

Please put bindings patch before users.

> +
> + 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_WHITE>;
> + function = LED_FUNCTION_USB;
> + gpios = <&tlmm 19 GPIO_ACTIVE_HIGH>;
> + };
> +

Drop blank line.

> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-0 = <&button_pins>;
> + pinctrl-names = "default";
> +
> + button-0 {
> + label = "reset";
> + linux,code = <KEY_RESTART>;
> + gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
> + debounce-interval = <60>;
> + };
> +
> + button-1 {
> + label = "wps";
> + linux,code = <KEY_WPS_BUTTON>;
> + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
> + debounce-interval = <60>;
> + };
> + };
> +

Drop blank line.

> +};
> +
> +&blsp1_uart1 {
> + pinctrl-0 = <&uart1_pins>;
> + pinctrl-names = "default";
> + status = "okay";
> +};
> +
> +&sleep_clk {
> + clock-frequency = <32000>;
> +};
> +
> +&usbphy0 {
> + status = "okay";
> +};
> +
> +&usb {
> + status = "okay";
> +};
> +
> +&usb_dwc {
> + dr_mode = "host";
> +};
> +
> +&tlmm {

Keep alphabetical order (or tlmm goes to the end).

> + button_pins: button-pins-state {
> + pins = "gpio27", "gpio28";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-up;
> + };
> +
> + led_pins: led-pins-state {
> + pins = "gpio19";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +

Drop blank line.

> +};
> +
> +&sleep_clk {
> + clock-frequency = <32000>;
> +};
> +
> +&xo_board_clk {
> + clock-frequency = <24000000>;
> +};

Best regards,
Krzysztof