From 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:44:59 +0000
Subject: [PATCH] gmac get mac form eeprom

---
 kernel/drivers/soc/rockchip/grf.c |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/soc/rockchip/grf.c b/kernel/drivers/soc/rockchip/grf.c
index 4f926f0..890158d 100644
--- a/kernel/drivers/soc/rockchip/grf.c
+++ b/kernel/drivers/soc/rockchip/grf.c
@@ -1,11 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-only
 /*
  * Rockchip Generic Register Files setup
  *
  * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
  */
 
 #include <linux/bitfield.h>
@@ -198,9 +195,11 @@
 };
 
 #define RK3308_GRF_SOC_CON3		0x30c
+#define RK3308_GRF_SOC_CON13		0x608
 
 static const struct rockchip_grf_value rk3308_defaults[] __initconst = {
 	{ "uart dma mask", RK3308_GRF_SOC_CON3, HIWORD_UPDATE(0, 0x1f, 10) },
+	{ "uart2 auto switching", RK3308_GRF_SOC_CON13, HIWORD_UPDATE(0, 0x1, 12) },
 };
 
 static const struct rockchip_grf_info rk3308_grf __initconst = {
@@ -228,6 +227,17 @@
 static const struct rockchip_grf_info rk3399_grf __initconst = {
 	.values = rk3399_defaults,
 	.num_values = ARRAY_SIZE(rk3399_defaults),
+};
+
+#define RK3588_SYS_GRF_SOC_CON7		0x031c
+
+static const struct rockchip_grf_value rk3588_sys_grf_defaults[] __initconst = {
+	{ "Connect EDP hpd to IO", RK3588_SYS_GRF_SOC_CON7, HIWORD_UPDATE(0x3, 0x3, 14) },
+};
+
+static const struct rockchip_grf_info rk3588_sys_grf __initconst = {
+	.values = rk3588_sys_grf_defaults,
+	.num_values = ARRAY_SIZE(rk3588_sys_grf_defaults),
 };
 
 #define DELAY_ONE_SECOND		0x16E3600
@@ -285,6 +295,9 @@
 		.compatible = "rockchip,rk3399-grf",
 		.data = (void *)&rk3399_grf,
 	}, {
+		.compatible = "rockchip,rk3588-sys-grf",
+		.data = (void *)&rk3588_sys_grf,
+	}, {
 		.compatible = "rockchip,rv1126-grf",
 		.data = (void *)&rv1126_grf,
 	},
@@ -306,15 +319,17 @@
 	np = of_find_matching_node_and_match(NULL, rockchip_grf_dt_match,
 					     &match);
 	if (!np)
-		return -ENODEV;
+		return 0;
 	if (!match || !match->data) {
 		pr_err("%s: missing grf data\n", __func__);
+		of_node_put(np);
 		return -EINVAL;
 	}
 
 	grf_info = match->data;
 
 	grf = syscon_node_to_regmap(np);
+	of_node_put(np);
 	if (IS_ERR(grf)) {
 		pr_err("%s: could not get grf syscon\n", __func__);
 		return PTR_ERR(grf);

--
Gitblit v1.6.2