47 lines
1.4 KiB
Diff
47 lines
1.4 KiB
Diff
[HACK NOTFORMERGE] PBP: Fix panel reset
|
|
|
|
On warm reset, the pinebook pro panel is not working correctly.
|
|
The issue is not yet debugged so, for now, this hack seems to be
|
|
enough. It toggles the GPIO1_C6 gpio [ LCDVCC_EN signal in the
|
|
schematics ] used by the vcc3v3_panel regulator.
|
|
|
|
There's no gpio_request, since the gpio is already in use at this
|
|
stage, so it can only fail.
|
|
Index: u-boot/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
|
|
===================================================================
|
|
--- u-boot.orig/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
|
|
+++ u-boot/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
|
|
@@ -7,9 +7,12 @@
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <syscon.h>
|
|
+#include <linux/delay.h>
|
|
+#include <asm/gpio.h>
|
|
#include <asm/io.h>
|
|
#include <asm/arch-rockchip/clock.h>
|
|
#include <asm/arch-rockchip/grf_rk3399.h>
|
|
+#include <asm/arch-rockchip/gpio.h>
|
|
#include <asm/arch-rockchip/hardware.h>
|
|
#include <asm/arch-rockchip/misc.h>
|
|
#include <power/regulator.h>
|
|
@@ -59,6 +62,7 @@ int misc_init_r(void)
|
|
const u32 cpuid_length = 0x10;
|
|
u8 cpuid[cpuid_length];
|
|
int ret;
|
|
+ unsigned int gpio;
|
|
|
|
setup_iodomain();
|
|
|
|
@@ -70,6 +74,11 @@ int misc_init_r(void)
|
|
if (ret)
|
|
return ret;
|
|
|
|
+ gpio_lookup_name("B22", NULL, NULL, &gpio);
|
|
+ gpio_direction_output(gpio, 0);
|
|
+ mdelay(500);
|
|
+ gpio_direction_output(gpio, 1);
|
|
+
|
|
return ret;
|
|
}
|
|
#endif
|