hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
u-boot/drivers/video/drm/rockchip_crtc.c
....@@ -20,6 +20,7 @@
2020 #include "rockchip_crtc.h"
2121 #include "rockchip_connector.h"
2222
23
+#ifndef CONFIG_SPL_BUILD
2324 static const struct udevice_id rockchip_vp_ids[] = {
2425 { .compatible = "rockchip-vp" },
2526 { }
....@@ -111,6 +112,16 @@
111112 .data = &rk3328_vop,
112113 };
113114
115
+static const struct rockchip_crtc rk3528_vop_data = {
116
+ .funcs = &rockchip_vop2_funcs,
117
+ .data = &rk3528_vop,
118
+};
119
+
120
+static const struct rockchip_crtc rk3562_vop_data = {
121
+ .funcs = &rockchip_vop2_funcs,
122
+ .data = &rk3562_vop,
123
+};
124
+
114125 static const struct rockchip_crtc rk3568_vop_data = {
115126 .funcs = &rockchip_vop2_funcs,
116127 .data = &rk3568_vop,
....@@ -174,6 +185,12 @@
174185 .compatible = "rockchip,rk3328-vop",
175186 .data = (ulong)&rk3328_vop_data,
176187 }, {
188
+ .compatible = "rockchip,rk3528-vop",
189
+ .data = (ulong)&rk3528_vop_data,
190
+ }, {
191
+ .compatible = "rockchip,rk3562-vop",
192
+ .data = (ulong)&rk3562_vop_data,
193
+ }, {
177194 .compatible = "rockchip,rk3568-vop",
178195 .data = (ulong)&rk3568_vop_data,
179196 }, {
....@@ -186,6 +203,13 @@
186203 {
187204 struct udevice *child;
188205 int ret;
206
+
207
+ /* Process 'assigned-{clocks/clock-parents/clock-rates}' properties */
208
+ ret = clk_set_defaults(dev);
209
+ if (ret) {
210
+ dev_err(dev, "%s clk_set_defaults failed %d\n", __func__, ret);
211
+ return ret;
212
+ }
189213
190214 for (device_find_first_child(dev, &child);
191215 child;
....@@ -237,3 +261,19 @@
237261 .id = UCLASS_VIDEO_CRTC,
238262 .name = "CRTC",
239263 };
264
+
265
+#else
266
+static struct rockchip_crtc rk3528_vop_data = {
267
+ .funcs = &rockchip_vop2_funcs,
268
+ .data = &rk3528_vop,
269
+};
270
+
271
+int rockchip_spl_vop_probe(struct crtc_state *crtc_state)
272
+{
273
+
274
+ crtc_state->crtc = &rk3528_vop_data;
275
+
276
+ return 0;
277
+}
278
+#endif
279
+