From 1622ff3442ff6aecc1f538cda437379d1f6a4a93 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 06 Nov 2023 07:25:52 +0000
Subject: [PATCH] rk3568 dts

---
 kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi   |   21 ++---
 kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c |   23 +++++
 kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi     |  137 +++++++++++++++++++++++++++++----
 3 files changed, 147 insertions(+), 34 deletions(-)

diff --git a/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi
old mode 100644
new mode 100755
index f45ce09..aafefb6
--- a/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi
@@ -8,6 +8,7 @@
 
 #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"
 
@@ -185,7 +186,50 @@
 				gpio_function = <1>;
 			};
 	#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
+				reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>; //7511_RST_GPIO3_D1
+				edp-bl-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;  //LCD0_BKLT_EN_3V3
+				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 = <&timing0>;
+                timing0: timing0 {
+					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>;			
+					};
+				};
+				ports {
+					panel_in: endpoint {
+					remote-endpoint = <&edp_out>;
+						};
+					};   
+				};
 };
 
 &combphy0_us {
@@ -285,8 +329,18 @@
 };
 
 &edp {
-	hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
-	status = "okay";
+	//hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;	
+    force-hpd;
+    status = "okay";
+    ports {
+        port@1 {
+            reg = <1>;
+            edp_out: endpoint {
+                remote-endpoint = <&panel_in>;
+            };
+        };
+   
+	};
 };
 
 &edp_phy {
@@ -294,11 +348,11 @@
 };
 
 &edp_in_vp0 {
-	status = "okay";
+	status = "disabled";
 };
 
 &edp_in_vp1 {
-	status = "disabled";
+	status = "okay";
 };
 
 &gmac0 {
@@ -359,8 +413,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 {
@@ -466,13 +534,7 @@
 };
 
 &pinctrl {
-	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>;
@@ -531,7 +593,7 @@
 };
 
 &rkisp_vir0 {
-	status = "okay";
+	status = "disabled";
 
 	port {
 		#address-cells = <1>;
@@ -549,9 +611,11 @@
 	connect = <&vp1_out_dsi0>;
 };
 
+
+
 &route_edp {
 	status = "okay";
-	connect = <&vp0_out_edp>;
+	connect = <&vp1_out_edp>;
 };
 
 &sata2 {
@@ -581,18 +645,18 @@
 };
 
 &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;
 };
 
@@ -616,3 +680,38 @@
 	BT,wake_host_irq = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 };
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {	
+	pinctrl-names = "default";	
+	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;	
+	status = "okay";		
+};
+
+&uart3 {
+	status = "okay";
+	pinctrl-0 = <&uart3m1_xfer>;
+};
+
+&uart4 {
+	status = "okay";
+	pinctrl-0 = <&uart4m1_xfer>;
+};
+
+&uart5 {
+	status = "okay";
+	pinctrl-0 = <&uart5m1_xfer>;
+};
+
+&uart7 {
+	status = "okay";
+	pinctrl-0 = <&uart7m1_xfer>;
+};
+
+&uart9 {
+	status = "okay";
+	pinctrl-0 = <&uart9m1_xfer>;
+};
\ No newline at end of file
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
old mode 100644
new mode 100755
index f5802f1..8e41761
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
@@ -103,7 +103,7 @@
 
 	backlight1: backlight1 {
 		compatible = "pwm-backlight";
-		pwms = <&pwm5 0 25000 0>;
+		pwms = <&pwm6 0 25000 0>;
 		brightness-levels = <
 			  0  20  20  21  21  22  22  23
 			 23  24  24  25  25  26  26  27
@@ -182,8 +182,8 @@
 
 	leds: leds {
 		compatible = "gpio-leds";
-		work_led: work {
-			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
+		sys_led: sys_led {
+			gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 		};
 	};
@@ -308,7 +308,7 @@
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 		enable-active-high;
-		gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+		gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;  //VCC3_IO_EN_GPIO0_C4_3V3
 		vin-supply = <&vcc3v3_sys>;
 
 		regulator-state-mem {
@@ -1398,15 +1398,6 @@
 
 &i2c1 {
 	status = "okay";
-
-	gt1x: gt1x@14 {
-		compatible = "goodix,gt1x";
-		reg = <0x14>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&touch_gpio>;
-		goodix,rst-gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
-		goodix,irq-gpio = <&gpio0 RK_PB5 IRQ_TYPE_LEVEL_LOW>;
-	};
 };
 
 &i2c5 {
@@ -1579,6 +1570,10 @@
 	status = "okay";
 };
 
+&pwm6 {
+	status = "okay";
+};
+
 &pwm5 {
 	status = "okay";
 };
diff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index d945d92..0d967a3 100644
--- a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -2346,13 +2346,16 @@
 {
 }
 
+
+static unsigned char macaddr[6];
+extern ssize_t at24_mac_read(unsigned char* addr);
 void rk_get_eth_addr(void *priv, unsigned char *addr)
 {
 	struct rk_priv_data *bsp_priv = priv;
 	struct device *dev = &bsp_priv->pdev->dev;
 	unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
-	int ret, id = bsp_priv->bus_id;
-
+	int ret,i, id = bsp_priv->bus_id;
+#if 0
 	rk_devinfo_get_eth_mac(addr);
 	if (is_valid_ether_addr(addr))
 		goto out;
@@ -2383,6 +2386,22 @@
 	} else {
 		memcpy(addr, &ethaddr[id * ETH_ALEN], ETH_ALEN);
 	}
+#endif
+     #if 1
+        if (at24_mac_read(macaddr) > 0) {
+                printk("ben %s: at24_mac_read Success!! \n", __func__);
+                memcpy(addr, macaddr, 6);
+
+                printk("Read the Ethernet MAC address from :");
+                for (i = 0; i < 5; i++)
+                        printk("%2.2x:", addr[i]);
+
+                printk("%2.2x\n", addr[i]);
+        } else {
+                printk("ben %s: at24_mac_read Failed!! \n", __func__);
+                goto out;
+        }
+        #endif
 
 out:
 	dev_err(dev, "%s: mac address: %pM\n", __func__, addr);

--
Gitblit v1.6.2