I found a function in the code that looks like it is for sending the configuration to the touch panel, but it is not called from within the rest of the code

Can't find the filling in of the ram buffer for the configuration either. So bit of a mystery

undefined4 FUN_8001794c(void) //This is the function that sets up the configuration for the touch panel??
{
char *pcVar1;
undefined4 uVar2;
byte bVar3;
uint uVar4;
undefined4 in_r3;
int iVar5;
undefined4 local_10;
uVar2 = DAT_80017ab4; //DAT_80017ab4 = 0x01C20800 (config register of port A)
local_10 = in_r3;
FUN_8001764c(DAT_80017ab4,3,1,0); //Maybe generation of start condition and sending slave address in next part
FUN_8001764c(uVar2,2,1,0);
FUN_8001774c(uVar2,3);
FUN_8001774c(uVar2,2);
FUN_8001764c(uVar2,0,1);
FUN_8001764c(uVar2,1,1,0);
FUN_80017738(uVar2,0);
FUN_80017738(uVar2,1);
FUN_8000bc34(100);
FUN_8001774c(uVar2,1);
FUN_8000bc34(DAT_80017ab8);
FUN_8001774c(uVar2,0);
FUN_8000bc34(DAT_80017abc);
FUN_8001764c(uVar2,1,0);
FUN_8000bc34(DAT_80017ac0);
uVar2 = DAT_80017ac4;
local_10._0_1_ = 2;
FUN_80017d2c(DAT_80017ac4,&local_10,1);
bVar3 = 0;
uVar4 = 0;
do {
pcVar1 = (char *)(DAT_80017ac8 + uVar4); //There is a buffer at 0x8019CF82 in RAM where it calculates the checksum for the config of the touch panel
iVar5 = DAT_80017ac8 + uVar4;
uVar4 = uVar4 + 2 & 0xfffeffff;
bVar3 = *(char *)(iVar5 + 1) + bVar3 + *pcVar1;
} while (uVar4 < 0xb8);
*(byte *)(DAT_80017ac8 + 0xb8) = ~bVar3 + 1;
FUN_80017d2c(DAT_80017acc,DAT_80017ac8,0xba); //Function to write data to I2C bus?? (DAT_80017acc = 0x8047, DAT_80017ac8 = 0x8019CF82, 186 bytes)
FUN_8000bc34(DAT_80017ad0);
local_10 = (uint)local_10._1_3_ << 8;
FUN_80017d2c(uVar2,&local_10,1);
return 0;
}