hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
u-boot/drivers/video/drm/rockchip_panel.c
old mode 100644new mode 100755
....@@ -45,6 +45,7 @@
4545 bool power_invert;
4646 u32 bus_format;
4747 unsigned int bpc;
48
+ unsigned int lvds_index;
4849
4950 struct {
5051 unsigned int prepare;
....@@ -66,6 +67,15 @@
6667 struct udevice *backlight;
6768 struct gpio_desc enable_gpio;
6869 struct gpio_desc reset_gpio;
70
+ struct gpio_desc edp_bl_on;
71
+ struct gpio_desc edp_bl_en;
72
+ struct gpio_desc vcc_5v;
73
+ struct gpio_desc vddio_mipi;
74
+
75
+ struct gpio_desc lvds_gpio0;
76
+ struct gpio_desc lvds_gpio1;
77
+ struct gpio_desc lvds_gpio2;
78
+ struct gpio_desc lvds_gpio3;
6979
7080 int cmd_type;
7181 struct gpio_desc spi_sdi_gpio;
....@@ -275,24 +285,71 @@
275285
276286 if (priv->prepared)
277287 return;
288
+ /*mipi */
289
+ if (dm_gpio_is_valid(&priv->vddio_mipi))
290
+ dm_gpio_set_value(&priv->vddio_mipi, 1);
291
+ mdelay(20);
292
+
293
+ if (dm_gpio_is_valid(&priv->vcc_5v))
294
+ dm_gpio_set_value(&priv->vcc_5v, 1);
295
+
296
+ ret = dm_gpio_get_value(&priv->vcc_5v);
297
+ printf("troy test get vcc_5v : %d \n",ret);
298
+ ret = dm_gpio_get_value(&priv->vddio_mipi);
299
+ printf("troy test get vddio-mipi : %d \n",ret);
300
+ /*mipi end*/
301
+
302
+ /*7511 LVDS IO Control start*/
303
+ printk("nodka_lvds_index = %d\n",plat->lvds_index);
304
+
305
+ ret = plat->lvds_index & 1;
306
+ if (dm_gpio_is_valid(&priv->lvds_gpio0))
307
+ dm_gpio_set_value(&priv->lvds_gpio0, ret);
308
+ ret = dm_gpio_get_value(&priv->lvds_gpio0);
309
+ printf("lvds_gpio0 : %d\n",ret);
310
+
311
+ ret = plat->lvds_index >> 1 & 1;
312
+ if (dm_gpio_is_valid(&priv->lvds_gpio1))
313
+ dm_gpio_set_value(&priv->lvds_gpio1, ret);
314
+ ret = dm_gpio_get_value(&priv->lvds_gpio1);
315
+ printf("lvds_gpio1 : %d\n",ret);
316
+
317
+ ret = plat->lvds_index >> 2 & 1;
318
+ if (dm_gpio_is_valid(&priv->lvds_gpio2))
319
+ dm_gpio_set_value(&priv->lvds_gpio2, ret);
320
+ ret = dm_gpio_get_value(&priv->lvds_gpio2);
321
+ printf("lvds_gpio2 : %d\n",ret);
322
+
323
+ ret = plat->lvds_index >> 3 & 1;
324
+ if (dm_gpio_is_valid(&priv->lvds_gpio3))
325
+ dm_gpio_set_value(&priv->lvds_gpio3, ret);
326
+ ret = dm_gpio_get_value(&priv->lvds_gpio3);
327
+ printf("lvds_gpio3 : %d\n",ret);
328
+ mdelay(100);
329
+/*7511 LVDS IO Control end*/
278330
279331 if (priv->power_supply)
280332 regulator_set_enable(priv->power_supply, !plat->power_invert);
281
-
333
+
334
+ if (dm_gpio_is_valid(&priv->edp_bl_on))
335
+ dm_gpio_set_value(&priv->edp_bl_on, 1);
336
+
337
+ if (dm_gpio_is_valid(&priv->edp_bl_en))
338
+ dm_gpio_set_value(&priv->edp_bl_en, 1);
339
+
282340 if (dm_gpio_is_valid(&priv->enable_gpio))
283341 dm_gpio_set_value(&priv->enable_gpio, 1);
284
-
342
+
285343 if (plat->delay.prepare)
286344 mdelay(plat->delay.prepare);
287
-
345
+
288346 if (dm_gpio_is_valid(&priv->reset_gpio))
289347 dm_gpio_set_value(&priv->reset_gpio, 1);
290
-
291
- if (plat->delay.reset)
292
- mdelay(plat->delay.reset);
293
-
348
+ mdelay(50);
294349 if (dm_gpio_is_valid(&priv->reset_gpio))
295350 dm_gpio_set_value(&priv->reset_gpio, 0);
351
+
352
+ mdelay(200);
296353
297354 if (plat->delay.init)
298355 mdelay(plat->delay.init);
....@@ -407,6 +464,7 @@
407464 plat->delay.disable = dev_read_u32_default(dev, "disable-delay-ms", 0);
408465 plat->delay.init = dev_read_u32_default(dev, "init-delay-ms", 0);
409466 plat->delay.reset = dev_read_u32_default(dev, "reset-delay-ms", 0);
467
+ plat->lvds_index = dev_read_u32_default(dev, "nodka-lvds", 0);
410468
411469 plat->bus_format = dev_read_u32_default(dev, "bus-format",
412470 MEDIA_BUS_FMT_RBG888_1X24);
....@@ -457,6 +515,34 @@
457515 int ret;
458516 const char *cmd_type;
459517
518
+ ret = gpio_request_by_name(dev, "vcc-5v-gpio", 0,
519
+ &priv->vcc_5v, GPIOD_IS_OUT);
520
+ if (ret && ret != -ENOENT) {
521
+ printf("%s: Cannot get vcc-5v-gpio: %d\n", __func__, ret);
522
+ return ret;
523
+ }
524
+
525
+ ret = gpio_request_by_name(dev, "vddio-mipi", 0,
526
+ &priv->vddio_mipi, GPIOD_IS_OUT);
527
+ if (ret && ret != -ENOENT) {
528
+ printf("%s: Cannot get vddio-mipi: %d\n", __func__, ret);
529
+ return ret;
530
+ }
531
+
532
+ ret = gpio_request_by_name(dev, "edp-bl-gpios", 0,
533
+ &priv->edp_bl_on, GPIOD_IS_OUT);
534
+ if (ret && ret != -ENOENT) {
535
+ printf("%s: Cannot get enable GPIO: %d\n", __func__, ret);
536
+ return ret;
537
+ }
538
+
539
+ ret = gpio_request_by_name(dev, "edp-bl-en", 0,
540
+ &priv->edp_bl_en, GPIOD_IS_OUT);
541
+ if (ret && ret != -ENOENT) {
542
+ printf("%s: Cannot get enable GPIO: %d\n", __func__, ret);
543
+ return ret;
544
+ }
545
+
460546 ret = gpio_request_by_name(dev, "enable-gpios", 0,
461547 &priv->enable_gpio, GPIOD_IS_OUT);
462548 if (ret && ret != -ENOENT) {
....@@ -471,6 +557,34 @@
471557 return ret;
472558 }
473559
560
+ ret = gpio_request_by_name(dev, "lvds-gpio0", 0,
561
+ &priv->lvds_gpio0, GPIOD_IS_OUT);
562
+ if (ret && ret != -ENOENT) {
563
+ printf("%s: Cannot get lvds-gpio0: %d\n", __func__, ret);
564
+ return ret;
565
+ }
566
+
567
+ ret = gpio_request_by_name(dev, "lvds-gpio1", 0,
568
+ &priv->lvds_gpio1, GPIOD_IS_OUT);
569
+ if (ret && ret != -ENOENT) {
570
+ printf("%s: Cannot get lvds-gpio1: %d\n", __func__, ret);
571
+ return ret;
572
+ }
573
+
574
+ ret = gpio_request_by_name(dev, "lvds-gpio2", 0,
575
+ &priv->lvds_gpio2, GPIOD_IS_OUT);
576
+ if (ret && ret != -ENOENT) {
577
+ printf("%s: Cannot get lvds-gpio2: %d\n", __func__, ret);
578
+ return ret;
579
+ }
580
+
581
+ ret = gpio_request_by_name(dev, "lvds-gpio3", 0,
582
+ &priv->lvds_gpio3, GPIOD_IS_OUT);
583
+ if (ret && ret != -ENOENT) {
584
+ printf("%s: Cannot get lvds-gpio3: %d\n", __func__, ret);
585
+ return ret;
586
+ }
587
+
474588 ret = uclass_get_device_by_phandle(UCLASS_PANEL_BACKLIGHT, dev,
475589 "backlight", &priv->backlight);
476590 if (ret && ret != -ENOENT) {