old mode 100644new mode 100755| .. | .. |
|---|
| 45 | 45 | bool power_invert; |
|---|
| 46 | 46 | u32 bus_format; |
|---|
| 47 | 47 | unsigned int bpc; |
|---|
| 48 | + unsigned int lvds_index; |
|---|
| 48 | 49 | |
|---|
| 49 | 50 | struct { |
|---|
| 50 | 51 | unsigned int prepare; |
|---|
| .. | .. |
|---|
| 66 | 67 | struct udevice *backlight; |
|---|
| 67 | 68 | struct gpio_desc enable_gpio; |
|---|
| 68 | 69 | 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; |
|---|
| 69 | 79 | |
|---|
| 70 | 80 | int cmd_type; |
|---|
| 71 | 81 | struct gpio_desc spi_sdi_gpio; |
|---|
| .. | .. |
|---|
| 275 | 285 | |
|---|
| 276 | 286 | if (priv->prepared) |
|---|
| 277 | 287 | 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*/ |
|---|
| 278 | 330 | |
|---|
| 279 | 331 | if (priv->power_supply) |
|---|
| 280 | 332 | 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 | + |
|---|
| 282 | 340 | if (dm_gpio_is_valid(&priv->enable_gpio)) |
|---|
| 283 | 341 | dm_gpio_set_value(&priv->enable_gpio, 1); |
|---|
| 284 | | - |
|---|
| 342 | + |
|---|
| 285 | 343 | if (plat->delay.prepare) |
|---|
| 286 | 344 | mdelay(plat->delay.prepare); |
|---|
| 287 | | - |
|---|
| 345 | + |
|---|
| 288 | 346 | if (dm_gpio_is_valid(&priv->reset_gpio)) |
|---|
| 289 | 347 | dm_gpio_set_value(&priv->reset_gpio, 1); |
|---|
| 290 | | - |
|---|
| 291 | | - if (plat->delay.reset) |
|---|
| 292 | | - mdelay(plat->delay.reset); |
|---|
| 293 | | - |
|---|
| 348 | + mdelay(50); |
|---|
| 294 | 349 | if (dm_gpio_is_valid(&priv->reset_gpio)) |
|---|
| 295 | 350 | dm_gpio_set_value(&priv->reset_gpio, 0); |
|---|
| 351 | + |
|---|
| 352 | + mdelay(200); |
|---|
| 296 | 353 | |
|---|
| 297 | 354 | if (plat->delay.init) |
|---|
| 298 | 355 | mdelay(plat->delay.init); |
|---|
| .. | .. |
|---|
| 407 | 464 | plat->delay.disable = dev_read_u32_default(dev, "disable-delay-ms", 0); |
|---|
| 408 | 465 | plat->delay.init = dev_read_u32_default(dev, "init-delay-ms", 0); |
|---|
| 409 | 466 | plat->delay.reset = dev_read_u32_default(dev, "reset-delay-ms", 0); |
|---|
| 467 | + plat->lvds_index = dev_read_u32_default(dev, "nodka-lvds", 0); |
|---|
| 410 | 468 | |
|---|
| 411 | 469 | plat->bus_format = dev_read_u32_default(dev, "bus-format", |
|---|
| 412 | 470 | MEDIA_BUS_FMT_RBG888_1X24); |
|---|
| .. | .. |
|---|
| 457 | 515 | int ret; |
|---|
| 458 | 516 | const char *cmd_type; |
|---|
| 459 | 517 | |
|---|
| 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 | + |
|---|
| 460 | 546 | ret = gpio_request_by_name(dev, "enable-gpios", 0, |
|---|
| 461 | 547 | &priv->enable_gpio, GPIOD_IS_OUT); |
|---|
| 462 | 548 | if (ret && ret != -ENOENT) { |
|---|
| .. | .. |
|---|
| 471 | 557 | return ret; |
|---|
| 472 | 558 | } |
|---|
| 473 | 559 | |
|---|
| 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 | + |
|---|
| 474 | 588 | ret = uclass_get_device_by_phandle(UCLASS_PANEL_BACKLIGHT, dev, |
|---|
| 475 | 589 | "backlight", &priv->backlight); |
|---|
| 476 | 590 | if (ret && ret != -ENOENT) { |
|---|