Adjust LVDS drive strength and slew rate in Apalis TK1

Hi,

we have an LVDS display which is working correctly, but the system is not passing EMC tests because of the signals on the LVDS cable.
According to this article:

https://developer.toradex.com/knowledge-base/display-drive-strength-configuration

it should be possible to adjust drive strength and slew rate on the Apalis TK1.

The informations I’ve collected until now are that:

  1. tegra124-pinctrl driver is responsible of control pin configuration (pinctrl-tegra124.c « pinctrl « drivers - linux-toradex.git - Linux kernel for Apalis and Colibri modules)
  2. according to Apalis TK1 datasheet (page 26) LVDS signals are in the avdd_lvds0_io power block
  3. it’s possible to adjust drive strength and slew rate in device tree like this: tegra124-apalis-pinmux.dtsi « tegra124-platforms « dts « boot « arm « arch - linux-toradex.git - Linux kernel for Apalis and Colibri modules

The thing that’s not clear to me is which pin group I should drive to adjust lvds signals. If you could tell me which one I should use in nvidia,pins = "drive_xxx"; and explain how to correctly deduct it for the future, it would be very useful.

Thank you,
Diego

There is no way to modify LVDS transmitter driver current from the device tree.
You’ll have to modify drivers/video/tegra/dc/sor.c file. In the function tegra_dc_sor_enable_lvds you’ll find writes to NV_SOR_LANE_DRIVE_CURRENT and NV_SOR_LANE4_DRIVE_CURRENT registers.
You can find register definition in the “Tegra K1 Reference Manual”.

Thanks, this is the correct answer. For those wondering, details about the registers are at page 1919 of Tegra K1 Mobile Processor Technical Reference Manual.

You are welcome. Thanks for the information.