mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 23:46:45 +00:00

HDMI audio is available on the Orange Pi 5 Plus HDMI TX ports. Enable it for both ports. Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com> Link: https://lore.kernel.org/r/20250227235623.1624-5-honyuenkwun@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
399 lines
6.9 KiB
Plaintext
399 lines
6.9 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (c) 2023 Ondřej Jirman <megi@xff.cz>
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/pinctrl/rockchip.h>
|
|
#include <dt-bindings/soc/rockchip,vop2.h>
|
|
#include <dt-bindings/usb/pd.h>
|
|
#include "rk3588-orangepi-5.dtsi"
|
|
|
|
/ {
|
|
model = "Xunlong Orange Pi 5 Plus";
|
|
compatible = "xunlong,orangepi-5-plus", "rockchip,rk3588";
|
|
|
|
hdmi0-con {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi0_con_in: endpoint {
|
|
remote-endpoint = <&hdmi0_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
hdmi1-con {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi1_con_in: endpoint {
|
|
remote-endpoint = <&hdmi1_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ir-receiver {
|
|
compatible = "gpio-ir-receiver";
|
|
gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ir_receiver_pin>;
|
|
};
|
|
|
|
rfkill {
|
|
compatible = "rfkill-gpio";
|
|
label = "rfkill-pcie-wlan";
|
|
radio-type = "wlan";
|
|
shutdown-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
vbus5v0_typec: regulator-vbus-typec {
|
|
compatible = "regulator-fixed";
|
|
enable-active-high;
|
|
gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&typec5v_pwren>;
|
|
regulator-name = "vbus5v0_typec";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
vin-supply = <&vcc5v0_sys>;
|
|
};
|
|
};
|
|
|
|
&speaker_amp {
|
|
enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
|
|
&headphone_amp {
|
|
enable-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
&analog_sound {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&hp_detect>;
|
|
simple-audio-card,aux-devs = <&speaker_amp>, <&headphone_amp>;
|
|
simple-audio-card,hp-det-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_LOW>;
|
|
simple-audio-card,widgets =
|
|
"Microphone", "Onboard Microphone",
|
|
"Microphone", "Microphone Jack",
|
|
"Speaker", "Speaker",
|
|
"Headphone", "Headphones";
|
|
|
|
simple-audio-card,routing =
|
|
"Headphones", "LOUT1",
|
|
"Headphones", "ROUT1",
|
|
"Speaker", "LOUT2",
|
|
"Speaker", "ROUT2",
|
|
|
|
"Headphones", "Headphones Amp OUTL",
|
|
"Headphones", "Headphones Amp OUTR",
|
|
"Headphones Amp INL", "LOUT1",
|
|
"Headphones Amp INR", "ROUT1",
|
|
|
|
"Speaker", "Speaker Amp OUTL",
|
|
"Speaker", "Speaker Amp OUTR",
|
|
"Speaker Amp INL", "LOUT2",
|
|
"Speaker Amp INR", "ROUT2",
|
|
|
|
/* single ended signal to LINPUT1 */
|
|
"LINPUT1", "Microphone Jack",
|
|
"RINPUT1", "Microphone Jack",
|
|
/* differential signal */
|
|
"LINPUT2", "Onboard Microphone",
|
|
"RINPUT2", "Onboard Microphone";
|
|
};
|
|
|
|
&combphy0_ps {
|
|
status = "okay";
|
|
};
|
|
|
|
&combphy1_ps {
|
|
status = "okay";
|
|
};
|
|
|
|
&fan {
|
|
pwms = <&pwm3 0 50000 0>;
|
|
};
|
|
|
|
&hdmi0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi0_sound {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi0_in {
|
|
hdmi0_in_vp0: endpoint {
|
|
remote-endpoint = <&vp0_out_hdmi0>;
|
|
};
|
|
};
|
|
|
|
&hdmi0_out {
|
|
hdmi0_out_con: endpoint {
|
|
remote-endpoint = <&hdmi0_con_in>;
|
|
};
|
|
};
|
|
|
|
&hdmi1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi1_in {
|
|
hdmi1_in_vp1: endpoint {
|
|
remote-endpoint = <&vp1_out_hdmi1>;
|
|
};
|
|
};
|
|
|
|
&hdmi1_out {
|
|
hdmi1_out_con: endpoint {
|
|
remote-endpoint = <&hdmi1_con_in>;
|
|
};
|
|
};
|
|
|
|
&hdmi1_sound {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdptxphy0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdptxphy1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&hym8563 {
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&hym8563_int>;
|
|
};
|
|
|
|
&i2c6 {
|
|
usbc0: usb-typec@22 {
|
|
compatible = "fcs,fusb302";
|
|
reg = <0x22>;
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usbc0_int>;
|
|
vbus-supply = <&vbus5v0_typec>;
|
|
status = "okay";
|
|
|
|
usb_con: connector {
|
|
compatible = "usb-c-connector";
|
|
data-role = "dual";
|
|
label = "USB-C";
|
|
power-role = "dual";
|
|
op-sink-microwatt = <10>;
|
|
source-pdos = <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
|
|
sink-pdos = <PDO_FIXED(5000, 10, PDO_FIXED_USB_COMM)>;
|
|
try-power-role = "source";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
usbc0_hs: endpoint {
|
|
remote-endpoint = <&usb_host0_xhci_drd_sw>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
usbc0_ss: endpoint {
|
|
remote-endpoint = <&usbdp_phy0_typec_ss>;
|
|
};
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
|
|
usbc0_sbu: endpoint {
|
|
remote-endpoint = <&usbdp_phy0_typec_sbu>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2s5_8ch {
|
|
status = "okay";
|
|
};
|
|
|
|
&i2s6_8ch {
|
|
status = "okay";
|
|
};
|
|
|
|
&led_blue_gpio {
|
|
gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
|
|
&led_green_pwm {
|
|
pwms = <&pwm2 0 25000 0>;
|
|
};
|
|
|
|
/* phy1 - M.KEY socket */
|
|
&pcie2x1l0 {
|
|
reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
|
|
vpcie3v3-supply = <&vcc3v3_wf>;
|
|
status = "okay";
|
|
};
|
|
|
|
/* phy2 - right ethernet port */
|
|
&pcie2x1l1 {
|
|
reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
|
|
vpcie3v3-supply = <&vcc3v3_pcie_eth>;
|
|
status = "okay";
|
|
};
|
|
|
|
/* phy0 - left ethernet port */
|
|
&pcie2x1l2 {
|
|
reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
|
|
vpcie3v3-supply = <&vcc3v3_pcie_eth>;
|
|
status = "okay";
|
|
};
|
|
|
|
&pinctrl {
|
|
hym8563 {
|
|
hym8563_int: hym8563-int {
|
|
rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
blue_led_pin: blue-led {
|
|
rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
};
|
|
};
|
|
|
|
ir-receiver {
|
|
ir_receiver_pin: ir-receiver-pin {
|
|
rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
sound {
|
|
hp_detect: hp-detect {
|
|
rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
usb {
|
|
vcc5v0_usb20_en: vcc5v0-usb20-en {
|
|
rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
usb-typec {
|
|
usbc0_int: usbc0-int {
|
|
rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
};
|
|
|
|
typec5v_pwren: typec5v-pwren {
|
|
rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pwm2 {
|
|
pinctrl-0 = <&pwm2m1_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&pwm3 {
|
|
pinctrl-0 = <&pwm3m1_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&recovery_button {
|
|
status = "okay";
|
|
};
|
|
|
|
&sfc {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&fspim1_pins>;
|
|
};
|
|
|
|
&u2phy1_otg {
|
|
phy-supply = <&vcc5v0_sys>;
|
|
};
|
|
|
|
&uart9 {
|
|
pinctrl-0 = <&uart9m0_xfer>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbdp_phy0 {
|
|
mode-switch;
|
|
orientation-switch;
|
|
sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
|
|
sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
|
|
|
|
port {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
usbdp_phy0_typec_ss: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&usbc0_ss>;
|
|
};
|
|
|
|
usbdp_phy0_typec_sbu: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&usbc0_sbu>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&usb_host0_xhci {
|
|
usb-role-switch;
|
|
|
|
port {
|
|
usb_host0_xhci_drd_sw: endpoint {
|
|
remote-endpoint = <&usbc0_hs>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&vcc3v3_pcie_eth {
|
|
gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
&vcc3v3_wf {
|
|
status = "okay";
|
|
};
|
|
|
|
&vcc5v0_usb20 {
|
|
gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&vcc5v0_usb20_en>;
|
|
};
|
|
|
|
&vp0 {
|
|
vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
|
|
reg = <ROCKCHIP_VOP2_EP_HDMI0>;
|
|
remote-endpoint = <&hdmi0_in_vp0>;
|
|
};
|
|
};
|
|
|
|
&vp1 {
|
|
vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 {
|
|
reg = <ROCKCHIP_VOP2_EP_HDMI1>;
|
|
remote-endpoint = <&hdmi1_in_vp1>;
|
|
};
|
|
};
|