From 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 02:46:07 +0000
Subject: [PATCH] add audio

---
 kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi |  332 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 272 insertions(+), 60 deletions(-)

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
index f45ce09..fb8880f 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
@@ -8,12 +8,21 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/display/media-bus-format.h>
 #include "rk3568.dtsi"
 #include "rk3568-evb.dtsi"
 
 / {
 	model = "Rockchip RK3568 EVB1 DDR4 V10 Board";
 	compatible = "rockchip,rk3568-evb1-ddr4-v10", "rockchip,rk3568";
+
+	rk_headset: rk-headset {
+		compatible = "rockchip_headset";
+		headset_gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
+		spk_ctl_gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;//AMP_SD_GPIO4_C2_3V3
+		pinctrl-names = "default";
+		pinctrl-0 = <&hp_det>;
+	};
 
 	vcc2v5_sys: vcc2v5-ddr {
 		compatible = "regulator-fixed";
@@ -85,9 +94,8 @@
 		enable-active-high;
 		regulator-always-on;
 		regulator-boot-on;
-	};
+    	};
 #endif
-
 	ndj_io_init {
          	compatible = "nk_io_control";	
 			pinctrl-names = "default";
@@ -140,10 +148,17 @@
 				gpio_function = <0>;
 			};
 			
-			wifi_power_en {
-				gpio_num = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; //WIFI_PWREN_GPIO3_C6_1V8
+			usb_ogt {
+				gpio_num = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>; //OTG_EN_OC_GPIO0_C2
 				gpio_function = <0>;
 			};
+			
+			m2_wifi_pwr {
+				gpio_num = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;//WIFI_PWREN_GPIO3_C6_1V8
+				gpio_function = <0>;
+			};
+			
+			 
 	#if 0		
 			do1 {
 				gpio_num = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>; 
@@ -185,7 +200,68 @@
 				gpio_function = <1>;
 			};
 	#endif
-};
+		};
+#if 0			
+	    nk_io_init {
+                compatible = "nk_io_control";
+//				vcc3_io_en_gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; //VCC3_IO_EN_GPIO0_C4_3V3
+                hub_host2_5V_rest_gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; //HUB_RST_GPIO4_D2_3V3
+                hub_host3_5v_gpio = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>; //HOST3_EN_GPIO4_B2_1V8
+                vcc_5v_io = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;   //VCC5_IO_EN_GPIO1_A4_3V3
+                vcc_12v_io = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; //VCC12_IO_EN_GPIO0_C7_3V3
+                en_4g_gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; //4G_PWREN_H_GPIO0_C6
+                reset_4g_gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; //4G_RST_GPIO01_B2_3V3
+                air_mode_4g_gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>; //4G_AIR_MODE_GPIO01_B0_3V3
+                wake_4g_gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>; //4G_WAKEUP_GPIO01_B1_3V3
+				hp_en_gpio = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;//HP_EN_GPIO3_A6_3V3
+//              spk_out_gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;//AMP_SD_GPIO4_C2_3V3			
+				wifi_power_en_gpio = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; //WIFI_PWREN_GPIO3_C6_1V8
+//				pcie_power_en_gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;//PCIE_PWREN_H_GPIO0_D4				
+				pinctrl-names = "default";
+				pinctrl-0 = <&nk_io_gpio>;				
+        };
+#endif	
+		panel: panel {
+				compatible = "simple-panel";
+				backlight = <&backlight>;
+				power-supply = <&vcc3v3_lcd0_n>;
+				enable-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; //LCD0_VDD_H_GPIO2_D4				
+				edp-bl-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;  //LCD0_PWBLK_H_GPIO0_B7
+				edp-bl-en = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; //LCD0_BKLT_EN_3V3
+				bus-format = <MEDIA_BUS_FMT_RGB888_1X24>;
+				bpc = <8>;
+				prepare-delay-ms = <200>;
+				enable-delay-ms = <20>;
+				lvds-gpio0 = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>; //7511_GPIO0-GPIO3_D2 
+				lvds-gpio1 = <&gpio3 RK_PD3 GPIO_ACTIVE_HIGH>; //7511_GPIO1-GPIO3_D3 
+				lvds-gpio2 = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>; //7511_GPIO2-GPIO3_D4 
+				lvds-gpio3 = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; //7511_GPIO3-GPIO3_D5
+				nodka-lvds = <15>;
+
+				display-timings {
+                native-mode = <&timing>;
+                timing: timing {
+					clock-frequency = <72500000>;
+					hactive = <1280>;
+					vactive = <800>;
+					hfront-porch = <70>;
+					hsync-len = <2>;
+					hback-porch = <88>;
+					vfront-porch = <7>;
+					vsync-len = <4>;
+					vback-porch = <17>;
+					hsync-active = <21>;
+					vsync-active = <0>;
+					de-active = <0>;
+					pixelclk-active = <0>;			
+					};
+				};
+				port {
+					panel_in_lvds: endpoint {
+					remote-endpoint = <&lvds_out>;
+						};
+					};   
+				};
 };
 
 &combphy0_us {
@@ -248,6 +324,10 @@
  * video_phy0 needs to be enabled
  * when dsi0 is enabled
  */
+&video_phy0 {
+	status = "disabled";
+};
+
 &dsi0 {
 	status = "disabled";
 };
@@ -285,7 +365,30 @@
 };
 
 &edp {
-	hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
+	//hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;	
+    force-hpd;
+    status = "disabled";
+};
+
+&lvds {
+    status = "disabled";
+    ports {
+        port@1 {
+            reg = <1>;
+            lvds_out: endpoint {
+                remote-endpoint = <&panel_in_lvds>;
+            };
+        };
+   
+	};
+};
+
+&route_lvds{
+	 status = "disabled";
+	 connect = <&vp2_out_lvds>;
+};
+
+&lvds_in_vp2 {
 	status = "okay";
 };
 
@@ -294,18 +397,65 @@
 };
 
 &edp_in_vp0 {
-	status = "okay";
+    status = "disabled";
 };
 
 &edp_in_vp1 {
+    status = "okay";
+
+};
+
+&route_edp {
+    status = "okay";
+    connect = <&vp1_out_edp>;
+};
+
+
+/*
+*  edp_end
+*/
+
+/*
+*  Hdmi_start
+*/
+
+&hdmi {
+	status = "okay";
+	rockchip,phy-table =
+		<92812500  0x8009 0x0000 0x0270>,
+		<165000000 0x800b 0x0000 0x026d>,
+		<185625000 0x800b 0x0000 0x01ed>,
+		<297000000 0x800b 0x0000 0x01ad>,
+		<594000000 0x8029 0x0000 0x0088>,
+		<000000000 0x0000 0x0000 0x0000>;
+};
+
+&route_hdmi {
+	status = "okay";
+	connect = <&vp0_out_hdmi>;
+};
+
+&hdmi_in_vp0 {
+	status = "okay";
+};
+
+&hdmi_in_vp1 {
 	status = "disabled";
 };
+
+&hdmi_sound {
+	status = "okay";
+};
+
+/*
+ *  Hdmi_END
+*/
 
 &gmac0 {
 	phy-mode = "rgmii";
 	clock_in_out = "output";
 
-	snps,reset-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
+	snps,reset-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>;
 	snps,reset-active-low;
 	/* Reset time is 20ms, 100ms for rtl8211f */
 	snps,reset-delays-us = <0 20000 100000>;
@@ -325,7 +475,9 @@
 	rx_delay = <0x2f>;
 
 	phy-handle = <&rgmii_phy0>;
+	
 	status = "disabled";
+	
 };
 
 &gmac1 {
@@ -359,8 +511,22 @@
  * power-supply should switche to vcc3v3_lcd1_n
  * when mipi panel is connected to dsi1.
  */
-&gt1x {
-	power-supply = <&vcc3v3_lcd0_n>;
+
+
+&i2c3 {
+	status = "okay";
+       //mac eeprom
+        eeprom@51 {
+                //compatible = "atmel,24c02";
+                compatible = "atmel,24c256";
+                reg = <0x51>;
+        };
+	
+	  //nk-mcu
+        nkmcu@15 {
+                compatible = "nk_mcu";
+                reg = <0x15>;
+        };
 };
 
 &i2c4 {
@@ -376,7 +542,6 @@
 		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
 		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_LOW>;
 		rockchip,grf = <&grf>;
-		power-domains = <&power RK3568_PD_VI>;
 		rockchip,camera-module-index = <0>;
 		rockchip,camera-module-facing = "back";
 		rockchip,camera-module-name = "RK-CMK-8M-2-v1";
@@ -433,6 +598,19 @@
 	};
 };
 
+&i2c5 {
+	status = "okay";
+
+	hym8563: hym8563@51 {
+		compatible = "haoyu,hym8563";
+		reg = <0x51>;
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "xin32k";
+		/* rtc_int is not connected */
+	};
+};
+
 &mdio0 {
 	rgmii_phy0: phy@0 {
 		compatible = "ethernet-phy-ieee802.3-c22";
@@ -448,7 +626,7 @@
 };
 
 &video_phy0 {
-	status = "disabled";
+	status = "okay";
 };
 
 &video_phy1 {
@@ -466,31 +644,38 @@
 };
 
 &pinctrl {
-	cam {
-		camera_pwr: camera-pwr {
-			rockchip,pins =
-				/* camera power en */
-				<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-	};
+//	cam {
+//		camera_pwr: camera-pwr {
+//			rockchip,pins =
+//				/* camera power en */
+//				<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+//		};
+//	};
 	headphone {
 		hp_det: hp-det {
-			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>,
+							<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
 		};
 	};
 
 	wireless-wlan {
 		wifi_host_wake_irq: wifi-host-wake-irq {
-			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
+			rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
 		};
 	};
 
 	wireless-bluetooth {
-		uart8_gpios: uart8-gpios {
-			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+		uart1_gpios: uart1-gpios {
+			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
 	
+	lcd1 {
+        lcd1_rst_gpio: lcd1-rst-gpio {
+            rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+        };
+    };
+		
 	nk_io_init{
 		nk_io_gpio: nk-io-gpio{
 			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
@@ -500,7 +685,7 @@
 							<4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
 							<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>,
 							<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>,
-							<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>, 
+							<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
 							<1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
 							<1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>,
 							<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>,
@@ -518,10 +703,6 @@
 	};
 };
 
-&rk809_sound {
-	hp-det-gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
-};
-
 &rkisp {
 	status = "disabled";
 };
@@ -531,7 +712,7 @@
 };
 
 &rkisp_vir0 {
-	status = "okay";
+	status = "disabled";
 
 	port {
 		#address-cells = <1>;
@@ -544,34 +725,30 @@
 	};
 };
 
-&route_dsi0 {
-	status = "disabled";
-	connect = <&vp1_out_dsi0>;
-};
 
-&route_edp {
-	status = "okay";
-	connect = <&vp0_out_edp>;
-};
 
 &sata2 {
 	status = "okay";
 };
 
 &sdmmc2 {
-	max-frequency = <150000000>;
-	supports-sdio;
-	bus-width = <4>;
-	disable-wp;
-	cap-sd-highspeed;
-	cap-sdio-irq;
-	keep-power-in-suspend;
-	mmc-pwrseq = <&sdio_pwrseq>;
-	non-removable;
-	pinctrl-names = "default";
-	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
-	sd-uhs-sdr104;
-	status = "okay";
+        status = "disabled";
+};
+
+&sdmmc1 {
+        max-frequency = <150000000>;
+        supports-sdio;
+        bus-width = <4>;
+        disable-wp;
+        cap-sd-highspeed;
+        cap-sdio-irq;
+        keep-power-in-suspend;
+        mmc-pwrseq = <&sdio_pwrseq>;
+        non-removable;
+        pinctrl-names = "default";
+        pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
+        sd-uhs-sdr104;
+        status = "okay";
 };
 
 &spdif_8ch {
@@ -581,25 +758,25 @@
 };
 
 &uart8 {
-	status = "okay";
+	status = "disabled";
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn>;
 };
 
 &vcc3v3_lcd0_n {
-	gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+	gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; 
 	enable-active-high;
 };
 
 &vcc3v3_lcd1_n {
-	gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+	gpio = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>; //MIPI_3V3EN_GPIO3_A3_d_3V3
 	enable-active-high;
 };
 
 &wireless_wlan {
 	pinctrl-names = "default";
 	pinctrl-0 = <&wifi_host_wake_irq>;
-	WIFI,host_wake_irq = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
+	WIFI,host_wake_irq = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>;
 };
 
 &wireless_bluetooth {
@@ -607,12 +784,47 @@
 	clocks = <&rk809 1>;
 	clock-names = "ext_clock";
 	//wifi-bt-power-toggle;
-	uart_rts_gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
+	uart_rts_gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
 	pinctrl-names = "default", "rts_gpio";
-	pinctrl-0 = <&uart8m0_rtsn>;
-	pinctrl-1 = <&uart8_gpios>;
-	BT,reset_gpio    = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
-	BT,wake_gpio     = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
-	BT,wake_host_irq = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
+	pinctrl-0 = <&uart1m0_rtsn>;
+	pinctrl-1 = <&uart1_gpios>;
+	BT,reset_gpio    = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+    BT,wake_gpio     = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+    BT,wake_host_irq = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 };
+
+&uart0 {
+	status = "disabled";
+};
+
+&uart1 {	
+	pinctrl-names = "default";	
+	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;	
+	status = "disabled";		
+};
+
+&uart3 {
+	status = "okay";
+	pinctrl-0 = <&uart3m1_xfer>;
+};
+
+&uart4 {
+	status = "okay";
+	pinctrl-0 = <&uart4m1_xfer>;
+};
+
+&uart5 {
+	status = "okay";
+	pinctrl-0 = <&uart5m1_xfer>;
+};
+
+&uart7 {
+	status = "disabled";
+	pinctrl-0 = <&uart7m1_xfer>;
+};
+
+&uart9 {
+	status = "disabled";
+	pinctrl-0 = <&uart9m1_xfer>;
+};

--
Gitblit v1.6.2