How to configure VFD

Hi Guys,

I’ve been trying to get OpenVFD working on a Z69 Pro 2GB just like @jimbo3146 did in his topic. Unfortunately just as he was unsuccessful I can’t get it to work either :frowning:.

To make sure this device also contained the fd628 chip I opened the case, and discovered that it did indeed contain the fd628. I’ve checked the dtbdts file and at the very last line it does mention fd628:

	fd628_dev {
		compatible = "amlogic, fd628_dev";
		status = "okay";
		clk_pin = <0x28 0x5f 0x00>;
		dat_pin = <0x28 0x60 0x00>;
		stb_pin = <0x28 0x61 0x00>;
	};

But these pins do not seem to work. I did however notice that the dts file lists a different id than CoreELEC advises:

	model = "Amlogic";
	compatible = "amlogic, Gxbb";
	amlogic-dt-id = "gxl_p281_2g";

I tried that one as well but to no avail. Unfortunately there are no debug kernel options enabled in Android So I cannot see which GPIO’s are assigned in /sys/kernel/debug/gpio so that’s no good either. Then I looked at a debug app which instructed me to place a empty file with the name .AMLCOPYLOGS on a external storage media after which it copied some logfiles to that medium. It did include a dmesg which I hoped would show some references of SPI or fd628 but it didn’t. Only some mention of FD628_Demo:

[    7.590398@3] type=1400 audit(1420070413.430:16): avc: denied { read write } for pid=4058 comm="FD628_Demo" name="fd628_dev" dev="tmpfs" ino=176 scontext=u:r:fd628:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
[    7.592757@3] type=1400 audit(1420070413.430:17): avc: denied { open } for pid=4058 comm="FD628_Demo" path="/dev/fd628_dev" dev="tmpfs" ino=176 scontext=u:r:fd628:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
[    7.593019@3] type=1400 audit(1420070413.440:18): avc: denied { read } for pid=4072 comm="FD628_Demo" name="operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[    7.593689@3] type=1400 audit(1420070413.440:19): avc: denied { open } for pid=4072 comm="FD628_Demo" path="/sys/devices/c9410000.ethernet/net/eth0/operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[    7.593895@3] type=1400 audit(1420070413.440:20): avc: denied { getattr } for pid=4072 comm="FD628_Demo" path="/sys/devices/c9410000.ethernet/net/eth0/operstate" dev="sysfs" ino=12666
[    8.402648@0] type=1400 audit(1420070414.240:36): avc: denied { getattr } for pid=4072 comm="FD628_Demo" path="/sys/devices/c9410000.ethernet/net/eth0/operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[    8.451112@0] type=1400 audit(1420070414.340:37): avc: denied { getattr } for pid=4105 comm="bootanimation" path="/vendor" dev="rootfs" ino=1031 scontext=u:r:bootanim:s0 tcontext=u:object_r:rootfs:s0 tclass=lnk_file permissive=1
[    8.923073@3] type=1400 audit(1420070414.810:38): avc: denied { read } for pid=4072 comm="FD628_Demo" name="operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[    8.940545@2] type=1400 audit(1420070414.810:39): avc: denied { open } for pid=4072 comm="FD628_Demo" path="/sys/devices/c9410000.ethernet/net/eth0/operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[    8.963356@3] type=1400 audit(1420070414.810:40): avc: denied { getattr } for pid=4072 comm="FD628_Demo" path="/sys/devices/c9410000.ethernet/net/eth0/operstate" dev="sysfs" ino=12666 scontext=u:r:fd628:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1

Which seems to be a process that makes use of /dev/fd628_dev:

CPU usage from 1224467ms to 322723ms ago (2015-01-01 00:30:25.759 to 2015-01-01 00:45:27.502):
  6.5% 4058/FD628_Demo: 0.7% user + 5.8% kernel / faults: 6 minor

Decompiling that APK won’t help me much I suppose, since it interfaces with /dev/fd628_dev directly and does not use the GPIO’s.

So long story short, I would really like to get the display working since that’s the only physical sign that the device is turned on (without turning on the TV ofcourse :wink: ) but I’m out of options :cry: