– Then –
Somewhere, in a time far between 2018 and 2019, far away…
I uncompress the acpi tables and check the DSDT one. The GPIOs are not named, so I understand the driver cannot find them, and so on no driver can work until someone code a GPIO mapping into. Can I write an experimental driver ? Sure, with time.
Actually, I can start to trace the c++ object to put the hexa address manually into. But I don’t want this last solution. Too dirty.
mkdir ~/acpitables cd /sys/firmware/acpi/tables/ for i in * ; do sudo cat $i > ~/acpitables/$i.dat; done cd ~/acpitables for i in * ; do iasl -d $i ; done cat *.dsl >> chuwi_hi12_acpi.dsl
Brad Baker, 2016-09-11 22:12:14 UTC.
https://bugzilla.kernel.org/show_bug.cgi?id=189261
https://bugzilla.kernel.org/show_bug.cgi?id=156511
– Then –
I understand I will certainly need to compile the target for its own “South Bridge” (in fact, the platform support), that I suspect to be needed for the i2c module, which I’m not sure is already built. I think it can be useful for other peripherals, without speaking about gpios module…
Well, ok, this part can be interesting for time to time . At this time, I’m stil expecting it will not be needed (still not sure about that point anyway).
Here’s the joke. I totally don’t know which chipset to build. Even if I could compare with the published one, it’s gonna be long.
– Then –
Oh.
I find it.
– Then –
I knew also by an internet post somewhere in a forum that the touchscreen needs to be initiliazed.
It means : a firmware. Non-free. To obtain by a non-helpfull company. Or to find the documentation hidden in a mysterious place and code it.
– Thxxxxn –
Are you crazy ? This is totally digging sand with tongue ! Stop dreaming. Do I have the energy ? Certainly not. Do I have the time ? Even less. Specifically if I need a proprietary firmware, that no Internet talks about for my model. It’s gonna be a nightmare for sure. It’s just o-v-e-r.
– T.h.e.n –
Hey, wait a minute, do I need to build the kernel to activate the debug trace system because it was deactivated on purpose ????
– Txvn –
Mollyn Hell…
– T..n –
Breath.
Let’s do some nice CAN, I need to get my mind off things.
– T h e n –
Oooook, it’s (hopefully) fun but has limit.
– …T..n –
December 2019…
Linus is right, testing blind is just a pain. Even with the strong help of LabVIEW.
Obviously it’s time to open that madness and go away, which is in fact the most interesting part.
– Th?n –
Early 2022
Oh, I didn’t know that link, let’s take a look, I’m curious about one thing…
– Th3n –
Working with the Linux Kernel on NI Linux Real-Time Targets: Kbuild and Enabling Functionality - YouTube
Ok, Brady ‘Petals’ said, I need to compile the driver in the tree. Ok, it can be done, gonna be a good fresh try. Let’s check this tree…
Ooh. In fact, I need i2c.
– THEN –
Don’t even start, you said let it be.
– THEEN –
– Then –
November 2022
Surfing amazing !
CERN made research and have a page to activate the GPIOs.
[NILRT] NI Linux RT on intelx86 based boards - MTA - CERN Read The Docs
So, why not retry ? After all, other peripherals can also be interesting to test (typically, the network which was never really usable).
– Then –
Built and forgot to check. Fed up.
– !Then –
February 2023
The driver no longer compiles at all.
Let it over !
– Then ^^ –
March 2023
I never really tried… Nothing else to do.
Surprise, the platform is actually the good one !
Testing for fun.
Hey, the network works.
– THEN –
Last but not least, I can run i2c now.
Detecting the bus of platform with i2cdetect, find the good one in /sys…
And the hex address.
Read data dump.
Driver communication ok, i2ctransfer reads 0x00.
Seems ok.
Somehow with some debug code, the driver compiles now and creates the dev files (event, mice…).
But still ineffective.
I’m dead.
– THEN, EVAN ! –
April 2023
By the way, now I know keywords i2c and firmware. I don’t why, let’s see if…
Getting the GT9110 touchscreen controller working | Details | Hackaday.io
19h
Let’s build the firmware with LabVIEW, easy, ok.
0x42, 0xD0, 0x02, 0x00, 0x05, 0x05, 0x75, 0x01, 0x01, 0x0F, 0x24, 0x0F, 0x64, 0x3C, 0x03, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x19, 0x1C, 0x14, 0x8C, 0x0E, 0x0E, 0x24, 0x00, 0x31, 0x0D, 0x00, 0x00, 0x00, 0x83, 0x33, 0x1D, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x00, 0x2B, 0x1C, 0x3C, 0x94, 0xD5, 0x03, 0x08, 0x00, 0x00, 0x04, 0x93, 0x1E, 0x00, 0x82, 0x23, 0x00, 0x74, 0x29, 0x00, 0x69, 0x2F, 0x00, 0x5F, 0x37, 0x00, 0x5F, 0x20, 0x40, 0x60, 0x00, 0xF0, 0x40, 0x30, 0x55, 0x50, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x19, 0x00, 0x00, 0x50, 0x50, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x24, 0x26, 0x28, 0x29, 0x2A, 0x1C, 0x18, 0x16, 0x14, 0x13, 0x12, 0x10, 0x0F, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x01
Or
0x81, 0x80, 0x7, 0xB0, 0x4,0xA, 0xD, 0x20, 0x1, 0x8, 0x28, 0x5, 0x50, 0x32, 0x3, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,0x18, 0x1A, 0x1D, 0x14, 0x95, 0x35, 0xFF, 0x46, 0x48, 0x31, 0xD, 0x0, 0x0, 0x0, 0x80, 0x3, 0x1D, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1D, 0x59, 0x94, 0xC5, 0x2, 0x8, 0x0, 0x0, 0x4, 0xFF, 0xFF, 0xFF, 0xC3, 0x28, 0x0, 0xA0, 0x33, 0x0, 0xFF, 0xFF, 0x0, 0x75, 0x50, 0x0, 0x75, 0x0, 0x0, 0xFF, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x7F, 0xC0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x88
20h
Using some previous drivers used during 2019 compiled “in tree”, modprobe ok.
But… nope.
– Thn –
22h
After all, I didn’t notice, the i2c data transfer reads 0x00, but doesn’t leave any error…
Let’s give a try.
– Zen –
23h
It’s over, the driver doesn’t recognize the pins. Still this GPIOs mapping issue !
I cancel, too tired.
– Neht –
1.30h
I don’t understand the way he explained his thread, that’s not possible. He’s talking everywhere about the firmware loading, that my driver doesn’t do. By despair and curiosity, let’s take a look to this raspi driver…
– Thzzzzn –
1.31h
Reaaally too sleeeeepy.
– THEEEEENNN –
1.32h
I’m dying.
Scrolling down fast…
– T H E N –
1.33h
Suddenly.
I can’t believe !
static const struct acpi_gpio_params first_gpio = { 0, 0, false }; static const struct acpi_gpio_params second_gpio = { 1, 0, false };
static const struct acpi_gpio_mapping acpi_goodix_int_first_gpios[] = { { GOODIX_GPIO_INT_NAME "-gpios", &first_gpio, 1 }, { GOODIX_GPIO_RST_NAME "-gpios", &second_gpio, 1 }, { }, };
Since all these years, they continued to code a complete driver managing the GPIO pins by their position in the acpi tables if their names don’t work !!!! (luckily, power pin Vddio and regulator Avdd28 is recog from DSDT table).
|
Compiling “in tree”, using the current i2c kernel, of this “gpio driver” which loads the firmware.
|
It doesn’t compile.
|
Let’s debug it.
2h00
– WHAT-THE-? –
– Interfaces –