pro777

Members
  • Content Count

    29
  • Joined

  • Last visited

About pro777

  • Rank
    Member

Recent Profile Visitors

711 profile views
  1. jock, very thanks for Ubuntu 18.04 with LTS 5.1.7 kernel! Great work! How are things going with video and audio playback?
  2. Maybe Sorm means the link above? Then it's no secret
  3. Fine news! You are well done! Thanks! There will be time, I will tested.
  4. No OpenGL/EGL/GLES X11 drivers available at this time for S912 SoC. Hardware rendering via GLES fbdev, as well hardware decoding video and audio is used in the player c2play. Look at this message.
  5. At the moment, unfortunately, I'm not ready to do it yet. But it is possible to assemble the missing packages in the form of archives.
  6. Hello everybody! I assembled a video player c2play, created by crashoverride, with the possibility of hardware decoding and rendering for a boxes on the S912 SOC. To achieve this, was used EGL and GLES libraries from Android, libhybris, libamcodec and ffmpeg with the support of the above library, as well kernel package with Mali driver for T820 GPU. All this was integrated into the firmware of Ubuntu Armbian 16.04 Mate Desktop, building by balbes150. You can download this firmware from here. c2play perfectly playing, both local and network video H.264 and H.265 10-bit, checked up to 4K. Declared support of MP4, MKV and AVI containers. A small help to managing the c2play from the keyboard: ESC - to finish playing, LEFT - 30 sec. back, RIGHT - 30 sec. forward, DOWN - 10 min ahead, UP - 10 min. back. SPACE - pause. To play video, open the terminal window or go to the virtual console (Ctrl-Alt-F1). enter the command: c2play <path to your video>. Or, assign c2play as the default application for the desired file type. More details here or here. In the folder /opt are deb-packages with libhybris and kernel 3.14.29 with the driver Mali. For those who want to build c2play itself, I bring links to resources on the github. Libhybris: https://github.com/libhybris/libhybris. Libamcodec: https://github.com/osmc/libamcodec. FFMPEG: https://github.com/roman-rybalko/FFmpeg-aml. c2play: https://github.com/OtherCrashOverride/c2play.
  7. What is your chip Wi-Fi?
  8. It seems that kodi and mpv need to be build from the source.. To activate hardware acceleration OpenGL ES in Debian download this firmware and deb package of libhybris for Debian. Follow the instructions listed in my post above.
  9. To obtain the hardware acceleration OpenGLES fbdev on the S912 platform, do the following: - Download the firmware of Armbian 5.44 Ubuntu Mate with the kernel 3.14, created by balbes150. - Burn the loaded image on the SD-card and and run Ubuntu Mate from the SD card. - Download the archive with the kernel 3.14 packages with the Mali driver and the archive with Mali samples and libhybris package. Install all deb packages with the 3.14 kernel from the archive. To do this, go to the unzipped folder aml-s9xx-kernel-3.14.29-with-mali-r16p0-debs, run the command: sudo dpkg -i *.deb. - Unzip the mali-hybris-s912-packages.tgz. Copy the folder etc to the root of ROOTFS partition to set permissions for the mali and ion devices, and also for configuring ld for libhybris. - Unzip the system.tgz and copy the contents to the root of ROOTFS partition (sudo tar xzvf system.tgz -C / ) - Unzip Mali-OpenGL-ES-Samples-Linux-Arm-Bin.tgz in the home directory. - Reboot system. - After reboot the system, add the armhf architecture for the system: sudo dpkg --add-architecture armhf sudo apt update sudo apt install libc6:armhf libstdc++6:armhf - Install libhybris-arm_0.1-1-opt_arm64.deb package and configure ld: sudo ldconfig. - Everything is ready for the test, run: /opt/libhybris/bin/test_glesv2. A picture should appear, as shown in the first screenshot. - To run Mali OpenGLES Samples, go to the Mali-OpenGL-ES-Samples-Linux-Arm-Bin folder and start the executable files. - Freeze the kernel update with the armbian-config.
  10. I managed to get the hardware acceleration GLES fbdev on KM8P S912 using libhybris! How to do this, I will write later.
  11. Hi everyone, I'm working on the task of using the fbdev GLES driver from Android 7.1.1 with the help of Libhybris for my KM8P on S912 for Armbian Ubuntu (Debian). In the framework of this task, I managed to build an legacy kernel 3.14.29 with the Mali driver r16p0. And also the mainline kernel 4.18-rc2 with the Mali driver r19p0. You can download the deb packages for the system update by clicking on the links above. For a start, it's enough to install the corresponding package linux-image-amlogics905x_5.44_arm64.deb for update of the system and also put mali.conf (taken from the LibreElec distributive) in the directory /lib/modprobe.d/ from the archive. sudo dpkg -i linux-image-amlogics905x_5.44_arm64.deb After the system with the 3.14 kernel is upgraded, the device /dev/mali0 appears. Unfortunately, this did not happen for the mainline kernel. It seems that the reason is that there is no description of the GPU in the device tree. I'm use gxm_q201_1g.dtb. Next, I build a package of Libhybris from git. For the 64-bit version, I used the following commands: git clone https://github.com/libhybris/libhybris cd libhybris/hybris git clone https://github.com/Halium/android-headers/ -b halium-7.1 ./autogen.sh \ --prefix=/opt/libhybris \ --build=aarch64-linux-gnu \ --host=aarch64-linux-gnu \ --target=aarch64-linux-gnu \ --with-android-headers=android-headers \ --enable-adreno-quirks \ --enable-mali-quirks \ --enable-debug \ --enable-trace \ --enable-arch=arm64 \ --enable-experimental \ --with-default-egl-platform=fbdev \ --with-default-hybris-ld-library-path=/vendor/lib:/system/lib To build the 32-bit version of Libhybris I installed two packages for cross-compilation: arm-linux-gnueabihf-gcc and arm-linux-gnueabihf-g++. And compiled with the following parameters: CC=arm-linux-gnueabihf-gcc \ CXX=arm-linux-gnueabihf-g++ \ ./autogen.sh \ --prefix=/opt/libhybris \ --with-android-headers=android-headers \ --enable-adreno-quirks \ --enable-arch=arm \ --enable-experimental \ --with-default-hybris-ld-library-path=/system/lib \ --enable-debug \ --enable-trace \ --with-default-egl-platform=fbdev \ --enable-mali-quirks Next: make -j8 sudo make install Then copied the /system/lib directory from the Android firmware to the root of the file system. Running /opt/libhybris/bin/test_glesv2, unfortunately, failed: user@amlogic:/opt/libhybris/bin$ ./test_glesv2 library "libgui.so" wasn't loaded and RTLD_NOLOAD prevented it test_glesv2: test_glesv2.c:117: main: Assertion `eglGetError() == EGL_SUCCESS' failed. Aborted For some reason, the system could not create a surface, test_glesv2.c, s.117: surface = eglCreateWindowSurface((EGLDisplay) display, ecfg, (EGLNativeWindowType)NULL, NULL); assert(eglGetError() == EGL_SUCCESS); assert(surface != EGL_NO_SURFACE); I hope that someone will be interested in this task and will achieve a better result.
  12. Thanks, jock. Unfortunately, this did not change the situation. I also tried to increase the frequency on i2c5 to 400 KHz - there were no messages about the timeout, but on the whole, nothing has changed dramatically.
  13. Yes, of course, I do not mind When I start the firmware with a mainline kernel, the monitor shows: "The mode is not supported" I need to then compile the kernel with the key CONFIG_DRM_LOAD_EDID_FIRMWARE.
  14. I tried several hdmi cables. Despite the fact that the boards are almost identical, the result, unfortunately, has not changed: user@armbian:~$ dmesg | grep i2c [ 4.591484] i2c /dev entries driver [ 4.596757] of_get_named_gpiod_flags: can't parse 'vsel-gpios' property of node '/i2c@ff650000/syr827@40[0]' [ 4.596772] of_get_named_gpiod_flags: can't parse 'vsel-gpio' property of node '/i2c@ff650000/syr827@40[0]' [ 4.623910] of_get_named_gpiod_flags: can't parse 'vsel-gpios' property of node '/i2c@ff650000/syr828@41[0]' [ 4.623925] of_get_named_gpiod_flags: can't parse 'vsel-gpio' property of node '/i2c@ff650000/syr828@41[0]' [ 4.739645] rk3x-i2c ff650000.i2c: Initialized RK3xxx I2C bus at f0fba000 [ 4.748307] rk3x-i2c ff140000.i2c: Initialized RK3xxx I2C bus at f0fbc000 [ 4.756830] rk3x-i2c ff150000.i2c: Initialized RK3xxx I2C bus at f0fbe000 [ 4.828714] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/i2c@ff160000/rk1000-ctl@40[0]' - status (0) [ 5.058954] rk3x-i2c ff160000.i2c: Initialized RK3xxx I2C bus at f0fd2000 [ 5.067966] rk3x-i2c ff170000.i2c: Initialized RK3xxx I2C bus at f0fd4000 [ 5.076760] rk3x-i2c ff660000.i2c: Initialized RK3xxx I2C bus at f0fd6000 [ 6.130961] of_get_named_gpiod_flags: parsed 'rockchip,spk-en-gpios' property of node '/i2c@ff160000/rk1000-codec@60[0]' - status (0) [ 7.587827] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 8.587845] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 9.587831] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 10.587841] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 11.587845] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 13.154237] i2c i2c-6: Added multiplexed i2c bus 7 [ 13.160262] i2c i2c-6: Added multiplexed i2c bus 8 [ 28.767585] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 29.767561] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 30.767564] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 31.767546] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 32.767544] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 33.767553] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 34.767573] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 35.767639] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 36.767661] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 37.767644] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 42.727768] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 43.727786] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 44.727810] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 45.727831] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 46.727898] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 47.927965] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 48.927976] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 49.927992] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 50.928016] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 51.928036] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 52.928084] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 53.928074] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 54.928100] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 55.928158] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 [ 56.928096] rk3x-i2c ff170000.i2c: timeout, ipd: 0x00, state: 1 -------------------------------------------------------------------- root@armbian:/home/user# i2cdetect -y 5 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- -------------------------------------------------------------------- root@armbian:/home/user# get-edid -b 5 5 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 5 as per your request. ^C Apparently, there are still differences in the electrical scheme.
  15. Yes, indeed, I just got rid of the timeout messages in this way. At me here such board: If i2c5 is enabled and indicated to read the ddc information from it, i.e.: Conf.1 &hdmi { /delete-property/pinctrl-names; /delete-property/pinctrl-0; /delete-property/pinctrl-1; ddc-i2c-bus = <&i2c5>; #sound-dai-cells = <0>; status = "okay"; }; &i2c5 { status = "okay"; }; then the following information is received: user@armbian:~$ ls -l /dev/i2c* crw-rw---- 1 root i2c 89, 0 May 25 14:37 /dev/i2c-0 crw-rw---- 1 root i2c 89, 1 May 25 14:37 /dev/i2c-1 crw-rw---- 1 root i2c 89, 2 May 25 14:37 /dev/i2c-2 crw-rw---- 1 root i2c 89, 3 May 25 14:37 /dev/i2c-3 crw-rw---- 1 root i2c 89, 4 May 25 14:37 /dev/i2c-4 crw-rw---- 1 root i2c 89, 5 May 25 14:37 /dev/i2c-5 user@armbian:~$ sudo i2cdetect -y 5 [sudo] password for user: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- user@armbian:~$ sudo get-edid -b 5 [sudo] password for user: 5 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 5 as per your request. ^C DDC information can be obtained via i2c at ports 0x37 (DDC) and 0x50 (EDID). We see that there are no contacts on i2c5 on these ports. We change dts: Conf.2 &hdmi { /delete-property/pinctrl-names; /delete-property/pinctrl-0; /delete-property/pinctrl-1; ddc-i2c-bus = <&i2c4>; #sound-dai-cells = <0>; status = "okay"; }; &i2c5 { status = "disabled"; }; We get: user@armbian:~$ ls -l /dev/i2c* crw-rw---- 1 root i2c 89, 0 May 25 14:47 /dev/i2c-0 crw-rw---- 1 root i2c 89, 1 May 25 14:47 /dev/i2c-1 crw-rw---- 1 root i2c 89, 2 May 25 14:47 /dev/i2c-2 crw-rw---- 1 root i2c 89, 3 May 25 14:47 /dev/i2c-3 crw-rw---- 1 root i2c 89, 4 May 25 14:47 /dev/i2c-4 user@armbian:~$ sudo i2cdetect -y 4 [sudo] password for user: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- user@armbian:~$ sudo get-edid -b 4 4 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 4 as per your request. Bus 4 doesn't really have an EDID... Couldn't find an accessible EDID on this bus. I'm sorry nothing was successful. Maybe try some other arguments if you played with them, or send an email to Matthew Kern <pyrophobicman@gmail.com>. As you can see, on i2c4 on ports 0x37 and 0x50 there is also no contact. We check the following configuration: Conf.3 &hdmi { /delete-property/pinctrl-names; /delete-property/pinctrl-0; /delete-property/pinctrl-1; //ddc-i2c-bus = <&i2c4>; #sound-dai-cells = <0>; status = "okay"; }; &i2c5 { status = "disabled"; }; We get: user@armbian:~$ ls -l /dev/i2c* crw-rw---- 1 root i2c 89, 0 May 25 14:51 /dev/i2c-0 crw-rw---- 1 root i2c 89, 1 May 25 14:51 /dev/i2c-1 crw-rw---- 1 root i2c 89, 2 May 25 14:51 /dev/i2c-2 crw-rw---- 1 root i2c 89, 3 May 25 14:51 /dev/i2c-3 crw-rw---- 1 root i2c 89, 4 May 25 14:51 /dev/i2c-4 crw-rw---- 1 root i2c 89, 6 May 25 14:51 /dev/i2c-6 user@armbian:~$ sudo i2cdetect -y 6 [sudo] password for user: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: 30 31 32 33 34 35 36 37 -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- user@armbian:~$ sudo get-edid -b 6 6 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 6 as per your request. Bus 6 doesn't really have an EDID... Couldn't find an accessible EDID on this bus. I'm sorry nothing was successful. Maybe try some other arguments if you played with them, or send an email to Matthew Kern <pyrophobicman@gmail.com>. Strangely enough, in the system has appeared i2c6 to the address 0xff980000 (HDMI) And also there are contacts on the ports of interest! But it is impossible to obtain EDID information. I also have the MK809-4K on RK3288 chip. I drew attention to the fact that it initially selects the correct mode of HDMI for 1920x1080. Therefore, I also checked the configuration # 3 on it. And it was possible to successfully read the EDID: user@armbian:~$ ls -l /dev/i2c* crw-rw---- 1 root i2c 89, 0 May 25 11:10 /dev/i2c-0 crw-rw---- 1 root i2c 89, 1 May 25 11:10 /dev/i2c-1 crw-rw---- 1 root i2c 89, 2 May 25 11:10 /dev/i2c-2 crw-rw---- 1 root i2c 89, 4 May 25 11:10 /dev/i2c-4 crw-rw---- 1 root i2c 89, 6 May 25 11:10 /dev/i2c-6 user@armbian:~$ sudo i2cdetect -y 6 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: 30 -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- user@armbian:~$ sudo get-edid -b 6 > edid.bin [sudo] пароль для user: 6 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 6 as per your request. 256-byte EDID successfully retrieved from i2c bus 6 Looks like i2c was successful. Have a good day. user@armbian:~$ parse-edid < edid.bin Checksum Correct Section "Monitor" Identifier "SAMSUNG" ModelName "SAMSUNG" VendorName "SAM" # Monitor Manufactured week 46 of 2012 # EDID version 1.3 # Digital Display DisplaySize 480 270 Gamma 2.20 Option "DPMS" "false" Horizsync 15-81 VertRefresh 24-75 # Maximum pixel clock is 230MHz #Not giving standard mode: 1152x864, 75Hz #Not giving standard mode: 1280x720, 60Hz #Not giving standard mode: 1280x800, 60Hz #Not giving standard mode: 1280x1024, 60Hz #Not giving standard mode: 1440x900, 60Hz #Not giving standard mode: 1600x900, 60Hz #Not giving standard mode: 1680x1050, 60Hz #Extension block found. Parsing... Modeline "Mode 15" 74.25 1920 2448 2492 2640 540 542 547 562 +hsync +vsync interlace Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 1" 85.50 1366 1436 1579 1792 768 771 774 798 +hsync +vsync Modeline "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 3" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 4" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync Modeline "Mode 5" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync Modeline "Mode 6" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace Modeline "Mode 7" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace Modeline "Mode 8" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync Modeline "Mode 9" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync Modeline "Mode 10" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 11" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 12" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 13" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace Modeline "Mode 14" 27.000 1440 1464 1590 1728 576 578 581 625 -hsync -vsync interlace Modeline "Mode 16" 74.25 1920 2008 2052 2200 540 542 547 562 +hsync +vsync interlace Modeline "Mode 17" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync Modeline "Mode 18" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync Option "PreferredMode" "Mode 15" EndSection Let's sum up. Configuration # 3 allows us to successfully obtain the EDID information on the MK809-4K. Failure in the case of Q8 can speak of a hardware problem? P.S. jock, tell me, please, what code allows "power hold GPIO which keeps the act8846 powering the board"?