rockchip: add HINLINK H29K CPE Board

This commit is contained in:
aiamadeus 2024-11-20 22:26:09 +08:00
parent 44ac9994fe
commit c74ed3282c
5 changed files with 418 additions and 2 deletions
package/boot/uboot-rk35xx
target/linux/rockchip

View File

@ -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 \

View File

@ -0,0 +1,403 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
#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 = <RK_PA7 IRQ_TYPE_LEVEL_HIGH>;
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";
};

View File

@ -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

View File

@ -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

View File

@ -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