I/OsLattePandaLinuxMemsSlave DevicesSpellsThe Project P&C

Then, the Credits

– 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 –

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *