Help needed with TX2 and TC358743 driver

I am trying to get the TC358743 to work on the TX2. In all posts on this forum information is fragmented and incomplete. I have not been able to get any output in log files that indicate that the driver is even attempting to be loaded.

the latest Kernel source(4.4 r32) has the drivers included(tc358743.c, tc358743_regs.h, tc358743.h) using menuconfig, I can enable the hardware in the device tree. This alone does not seem to be enough. I have attempted to insert and reference the DTSI files that cane be found with the drivers.
Obviously I am a novice, I would appreciate some guidance from someone that has gotten this working.

for TX2

  1. Can the drivers included in the 4.4 kernel source be used unmodified?
  2. Where do I put the DTSI file and where is a good place to reference it from
  3. do I need to enable the module in menuconfig f I manually add the DTSI file
    on of the posts I read indicates that the kernel module will not work and the driver must be compiled into the kernel, Is this still the case?

dmesg shows nothing pertaining to this driver loading or attempting to probe the hardware, I have verified the drivers compile and should be in my build. Is there a way to see if the driver is failing or just not even loading. Enable additional logging or look at other log files?

Hi Scot,

I recently managed to get the TC358743 working with the Jetson Nano and kernel 4.9 (see this thread). The working code and a bit of a readme are available in this gist. The device tree won’t work for the TX2 without modification.

I’m also a novice but I can try and answer your questions:

  1. I don’t think so. I think they’re just ‘generic’ Linux drivers and as-such can’t be used completely unmodified. They definitely can’t be used unmodified with the Nano devkit because it’s not able of generating the 27 Mhz clock needed (but it’s ok because the TC358743 boards usually have their own clock).

  2. You put the dtsi file with the others then import it into the main dtsi file.

  3. Yes, enabling it in menuconfig is needed to tell the compiler to compile the module, with L4T 32.2+ compiling it as a kernel module did work (at least on the Nano) and it made iterating on the code much much faster.

AFAIK you won’t see anything in dmesg until the device is in the device tree

1 Like

thank you for the quick reply. I have been working a lot with your code and readme over the past week, but have not been able to get anything working on the TX2. I don’t remember all the steps I used so far. I had tried adding the #include statement into various dts files with different levels of success compiling.

The device tree for the TX2 is a bit different. I think I understand that the 210 architecture is what is on the nano and TX1. Following your process, has the modifications to the DT in the t210 directory structure. Perhaps I need to be making the updates in the t18x directories. I did go this route as well, but I think it gave me errors when compiling saying there were duplicate definitions.