Message ID | 20241111045408.1922-7-honyuenkwun@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arm64: dts: rockchip: Add Orange Pi 5 Max board | expand |
Hello Jimmy, On Mon, Nov 11, 2024 at 6:01 AM Jimmy Hon <honyuenkwun@gmail.com> wrote: > > The RK3588 Single Board Computer includes > - eMMC > - microSD > - UART > - 2 PWM LEDs > - RTC > - RTL8125 network controller on PCIe 2.0x1. > - M.2 M-key connector routed to PCIe 3.0x4 > - PWM controlled heat sink fan. > - 2 USB2 ports > - lower USB3 port > - upper USB3 port with OTG capability > - Mali GPU > - SPI NOR flash > - Mask Rom button > - Analog audio using es8388 codec via the headset jack and onboard mic > - HDMI0 in your v1 patch series you mentioned you do not have access to EMMC to test. I am happy to test EMMC, but I had problems with the v2 and v3 patches. v2 dts did not compile and I was getting errors for the hdmi0 entries like "Label or path hdmi0 not found". I assume I am missing patches. After removing it compiles but the board does not boot. v3 patches don't work against 6.12-rc6/rc7 snapshot. The patch that modifies the 5 plus dts fails. I again assume I am missing other patches. If you have some info with which kernel or other modifications I can use your patches, then I am happy to do some testing. Cheers, Marco
> > in your v1 patch series you mentioned you do not have access to EMMC > to test. I am happy to test EMMC, but I had problems with the v2 and > v3 patches. > v2 dts did not compile and I was getting errors for the hdmi0 entries > like "Label or path hdmi0 not found". I assume I am missing patches. > After removing it compiles but the board does not boot. > > v3 patches don't work against 6.12-rc6/rc7 snapshot. The patch that > modifies the 5 plus dts fails. I again assume I am missing other > patches. > > If you have some info with which kernel or other modifications I can > use your patches, then I am happy to do some testing. If your primary focus is to only test eMMC support for the Orange Pi 5 Max, then apply the patches on top linux-rockchip for-next. https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/log/?h=for-next That generated DTB should be able to run against an older kernel since the Orange Pi 5 Plus already works. It's complicated since the HDMI Bridge support is in the pipeline for 6.13-rc1 but it goes through different trees.. The driver itself is merged into drm-misc next Where as the DTS updates are in linux-rockchip branch Also, regarding v3, I rebased on top of linux-rockchip for-next to include the updates for HDMI and GPU on the Orange Pi 5 Plus. For my development testing, I used Collabora's rk3588-test development branch, so all the needed patches were already in one place (since they test on a Radxa Rock 5B with the RK3588). https://gitlab.collabora.com/hardware-enablement/rockchip-3588/linux/-/commits/rk3588-test/?ref_type=heads So for v3, I had to first cherry-pick the Orange Pi 5 Plus changes from linux-rockchip for-next. Note: for v3 I held off on adding the USB 3 support for the Max, I was going to let the Orange Pi 5 Plus finish their USB 3 submission before trying to refactor the common DTS nodes. https://lore.kernel.org/linux-rockchip/20241025175415.887368-1-wens@kernel.org/ > > Cheers, > Marco
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 86cc418a2255..83ad11650f0b 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -142,6 +142,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6-lts.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ok3588-c.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-max.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5-itx.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max.dts b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max.dts new file mode 100644 index 000000000000..c9f17bb31710 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max.dts @@ -0,0 +1,130 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3588-orangepi-5.dtsi" + +/ { + model = "Xunlong Orange Pi 5 Max"; + compatible = "xunlong,orangepi-5-max", "rockchip,rk3588"; +}; + +&headphone_amp { + /* PHONE_CTL */ + enable-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; +}; + +&analog_sound { + pinctrl-names = "default"; + pinctrl-0 = <&hp_detect>; + simple-audio-card,aux-devs = <&headphone_amp>; + simple-audio-card,hp-det-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>; + + simple-audio-card,routing = + "Headphones", "LOUT1", + "Headphones", "ROUT1", + "LINPUT1", "Microphone Jack", + "RINPUT1", "Microphone Jack", + "LINPUT2", "Onboard Microphone", + "RINPUT2", "Onboard Microphone"; + simple-audio-card,widgets = + "Microphone", "Microphone Jack", + "Microphone", "Onboard Microphone", + "Headphone", "Headphones"; +}; + +&fan { + /* FAN_CTL_H */ + pwms = <&pwm9 0 50000 0>; +}; + +&hym8563 { + interrupt-parent = <&gpio0>; + interrupts = <RK_PC4 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&rtc_int_l>; +}; + +&led_blue_pwm { + /* PWM_LED1 */ + pwms = <&pwm4 0 25000 0>; + status = "okay"; +}; + +&led_green_pwm { + /* PWM_LED2 */ + pwms = <&pwm5 0 25000 0>; +}; + +/* phy2 */ +&pcie2x1l1 { + reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie_eth>; + status = "okay"; +}; + +&pinctrl { + hym8563 { + rtc_int_l: hym8563-int { + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sound { + hp_detect: hp-detect { + rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb_host_pwren: usb-host-pwren { + rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usb_otg_pwren: usb-otg-pwren { + rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm4 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm4m0_pins>; + status = "okay"; +}; + +&pwm5 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm5m1_pins>; + status = "okay"; +}; + +&pwm9 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm9m2_pins>; + status = "okay"; +}; + +&sfc { + pinctrl-names = "default"; + pinctrl-0 = <&fspim2_pins>; +}; + +/* pcie eth. not a real regulator. 33VAUX */ +&vcc3v3_pcie_eth { + /* Ethernet_power_en */ + gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>; +}; + +/* + * Represents the vcc5v0_usb20 and vcc5v0_usb30 in the schematic, + * both regulators share the same enable gpio + */ +&vcc5v0_usb20 { + /* USB_HOST_PWREN */ + gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_host_pwren>; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi index 3c6e1321f13f..6459a277f973 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi @@ -95,6 +95,14 @@ fan: pwm-fan { pwm-leds { compatible = "pwm-leds"; + led_blue_pwm: led-1 { + color = <LED_COLOR_ID_BLUE>; + function = LED_FUNCTION_STATUS; + linux,default-trigger = "heartbeat"; + max-brightness = <255>; + status = "disabled"; + }; + led_green_pwm: led-2 { color = <LED_COLOR_ID_GREEN>; function = LED_FUNCTION_INDICATOR;
The RK3588 Single Board Computer includes - eMMC - microSD - UART - 2 PWM LEDs - RTC - RTL8125 network controller on PCIe 2.0x1. - M.2 M-key connector routed to PCIe 3.0x4 - PWM controlled heat sink fan. - 2 USB2 ports - lower USB3 port - upper USB3 port with OTG capability - Mali GPU - SPI NOR flash - Mask Rom button - Analog audio using es8388 codec via the headset jack and onboard mic - HDMI0 the vcc5v0_usb30 regulator shares the same enable gpio pin as the vcc5v0_usb20 regulator. Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com> --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../dts/rockchip/rk3588-orangepi-5-max.dts | 130 ++++++++++++++++++ .../boot/dts/rockchip/rk3588-orangepi-5.dtsi | 8 ++ 3 files changed, 139 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max.dts