From c74ed3282cf0aabd550203f0e500c0f4dcd2a872 Mon Sep 17 00:00:00 2001 From: aiamadeus <2789289348@qq.com> Date: Wed, 20 Nov 2024 22:26:09 +0800 Subject: [PATCH] rockchip: add HINLINK H29K CPE Board --- package/boot/uboot-rk35xx/Makefile | 1 + .../boot/dts/rockchip/rk3528-opc-h29k.dts | 403 ++++++++++++++++++ target/linux/rockchip/image/armv8.mk | 10 + ...ip-rk3528-add-support-for-new-boards.patch | 3 +- ...ip-rk3528-add-support-for-new-boards.patch | 3 +- 5 files changed, 418 insertions(+), 2 deletions(-) create mode 100644 target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3528-opc-h29k.dts diff --git a/package/boot/uboot-rk35xx/Makefile b/package/boot/uboot-rk35xx/Makefile index 692ec965c..4620fae8e 100644 --- a/package/boot/uboot-rk35xx/Makefile +++ b/package/boot/uboot-rk35xx/Makefile @@ -32,6 +32,7 @@ define U-Boot/evb-rk3528 BUILD_DEVICES:= \ armsom_sige1 \ hinlink_opc-h28k \ + hinlink_opc-h29k \ hinlink_opc-ht2 \ radxa_e20c \ widora_mangopi-m28k \ diff --git a/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3528-opc-h29k.dts b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3528-opc-h29k.dts new file mode 100644 index 000000000..8edb852c1 --- /dev/null +++ b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3528-opc-h29k.dts @@ -0,0 +1,403 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; +#include +#include + +#include "rk3528.dtsi" + +/ { + model = "HINLINK OPC-H29K Board"; + compatible = "hinlink,opc-h29k", "rockchip,rk3528"; + + aliases { + mmc0 = &sdhci; + mmc1 = &sdmmc; + mmc2 = &sdio0; + ethernet0 = &gmac1; + + led-boot = &led_work; + led-failsafe = &led_work; + led-running = &led_work; + led-upgrade = &led_work; + }; + + chosen { + stdout-path = "serial0:1500000n8"; + }; + + ir-receiver { + compatible = "gpio-ir-receiver"; + gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&ir_int_pin>; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_4g_en>, <&led_5g_en>, <&led_work_en>; + + 4g { + label = "red:4g"; + gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>; + }; + + 5g { + label = "blue:5g"; + gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>; + }; + + led_work: work { + label = "green:work"; + gpios = <&gpio4 RK_PB7 GPIO_ACTIVE_LOW>; + }; + }; + + rfkill-modem { + compatible = "rfkill-gpio"; + label = "rfkill-modem"; + radio-type = "wwan"; + reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_LOW>; + }; + + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_on>; + reset-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>; + }; + + vcc5v0_sys: vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc_3v3: vcc-3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_1v8: vcc-1v8 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc_3v3>; + }; + + vcc_3v3_lcd: vcc-3v3-lcd { + compatible = "regulator-fixed"; + gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; + regulator-name = "vcc3v3_lcd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3>; + }; + + vcc3v3_sd: vcc3v3-sd { + compatible = "regulator-fixed"; + gpio = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>; + regulator-name = "vcc3v3_sd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3>; + }; + + vcc5v0_usb: vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vccio_sd: vccio-sd { + compatible = "regulator-gpio"; + gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; + regulator-name = "vccio_sd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + states = <1800000 0x0>, <3300000 0x1>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_ddr: vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_0v9: vdd-0v9 { + compatible = "regulator-fixed"; + regulator-name = "vdd_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_arm: vdd-arm { + compatible = "pwm-regulator"; + pwms = <&pwm1 0 5000 1>; + regulator-name = "vdd_arm"; + regulator-min-microvolt = <746000>; + regulator-max-microvolt = <1201000>; + regulator-always-on; + regulator-boot-on; + regulator-settling-time-up-us = <250>; + pwm-supply = <&vcc5v0_sys>; + }; + + vdd_logic: vdd-logic { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 5000 1>; + regulator-name = "vdd_logic"; + regulator-min-microvolt = <705000>; + regulator-max-microvolt = <1006000>; + regulator-always-on; + regulator-boot-on; + regulator-settling-time-up-us = <250>; + pwm-supply = <&vcc5v0_sys>; + }; +}; + +&combphy { + status = "okay"; +}; + +&cpu0 { + cpu-supply = <&vdd_arm>; +}; + +&cpu1 { + cpu-supply = <&vdd_arm>; +}; + +&cpu2 { + cpu-supply = <&vdd_arm>; +}; + +&cpu3 { + cpu-supply = <&vdd_arm>; +}; + +&gmac1 { + clock_in_out = "output"; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_miim + &rgmii_tx_bus2 + &rgmii_rx_bus2 + &rgmii_rgmii_clk + &rgmii_rgmii_bus>; + phy-handle = <&rgmii_phy>; + phy-mode = "rgmii-id"; + phy-supply = <&vcc_3v3>; + snps,reset-active-low; + snps,reset-delays-us = <0 20000 100000>; + snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_logic>; + status = "okay"; +}; + +&mdio1 { + rgmii_phy: phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + }; +}; + +&pinctrl { + ir { + ir_int_pin: ir-int-pin { + rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + leds { + led_4g_en: led-4g-en { + rockchip,pins = <4 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_5g_en: led-5g-en { + rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_work_en: led-work-en { + rockchip,pins = <4 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + spi1 { + spi1_pins: spi1-pins { + rockchip,pins = + <1 RK_PB6 2 &pcfg_pull_none_drv_level_2>, + <1 RK_PB7 2 &pcfg_pull_none_drv_level_2>; + }; + + lcd_rs_pin: lcd-rs-pin { + rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + wifi { + wifi_reg_on: wifi-reg-on { + rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wl_wake_host: wl-wake-host { + rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +&pwm1 { + status = "okay"; +}; + +&pwm2 { + status = "okay"; +}; + +&rng { + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + mmc-hs200-1_8v; + max-frequency = <200000000>; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_strb>; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-sd-highspeed; + disable-wp; + max-frequency = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>; + rockchip,default-sample-phase = <90>; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sd>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&sdio0 { + #address-cells = <1>; + #size-cells = <0>; + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + max-frequency = <200000000>; + mmc-pwrseq = <&sdio_pwrseq>; + pinctrl-names = "default"; + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; + post-power-on-delay-ms = <50>; + non-removable; + sd-uhs-sdr104; + status = "okay"; + + sdio_wifi@1 { + reg = <1>; + interrupt-parent = <&gpio1>; + interrupts = ; + interrupt-names = "host-wake"; + pinctrl-names = "default"; + pinctrl-0 = <&wl_wake_host>; + }; +}; + +&spi1 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1_pins>; + status = "okay"; + + panel@0 { + compatible = "sitronix,st7789v"; + reg = <0>; + buswidth = <8>; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_rs_pin>; + dc-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; + spi-max-frequency = <15000000>; + power-supply = <&vcc_3v3_lcd>; + }; +}; + +&tsadc { + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0m0_xfer>; + status = "okay"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&uart2m1_xfer &uart2m1_ctsn>; + status = "okay"; +}; + +&usb2phy { + status = "okay"; +}; + +&usb2phy0_host { + phy-supply = <&vcc5v0_usb>; + status = "okay"; +}; + +&usb2phy0_otg { + phy-supply = <&vcc5v0_usb>; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + dr_mode = "host"; + status = "okay"; +}; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 2adaae101..270bd18b0 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -281,6 +281,16 @@ define Device/hinlink_opc-h28k endef TARGET_DEVICES += hinlink_opc-h28k +define Device/hinlink_opc-h29k + DEVICE_VENDOR := HINLINK + DEVICE_MODEL := OPC-H29K + SOC := rk3528 + UBOOT_DEVICE_NAME := evb-rk3528 + IMAGE/sysupgrade.img.gz := boot-common | boot-script rk3528 | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-aic8800 kmod-fb-tft-st7789v wpad-openssl -urngd +endef +TARGET_DEVICES += hinlink_opc-h29k + define Device/hinlink_opc-h66k $(call Device/hinlink_common) DEVICE_MODEL := OPC-H66K diff --git a/target/linux/rockchip/patches-6.1/212-rockchip-rk3528-add-support-for-new-boards.patch b/target/linux/rockchip/patches-6.1/212-rockchip-rk3528-add-support-for-new-boards.patch index af2a7019a..fa3bbe778 100644 --- a/target/linux/rockchip/patches-6.1/212-rockchip-rk3528-add-support-for-new-boards.patch +++ b/target/linux/rockchip/patches-6.1/212-rockchip-rk3528-add-support-for-new-boards.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -74,6 +74,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro +@@ -74,6 +74,13 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb @@ -9,6 +9,7 @@ +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-mangopi-m28k-pro.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-h28k.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-h29k.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-ht2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353p.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb diff --git a/target/linux/rockchip/patches-6.6/212-rockchip-rk3528-add-support-for-new-boards.patch b/target/linux/rockchip/patches-6.6/212-rockchip-rk3528-add-support-for-new-boards.patch index 5ab7775c3..56594d8ab 100644 --- a/target/linux/rockchip/patches-6.6/212-rockchip-rk3528-add-support-for-new-boards.patch +++ b/target/linux/rockchip/patches-6.6/212-rockchip-rk3528-add-support-for-new-boards.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -80,6 +80,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro +@@ -80,6 +80,13 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb @@ -9,6 +9,7 @@ +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-mangopi-m28k-pro.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-h28k.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-h29k.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-opc-ht2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353p.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353ps.dtb