BBB RevD (and Industrial) IT66122 issues

Oh wow, I wasn’t even aware one could use a 5.15.x Kernel to run this chip.

Did you backport all that stuff to 5.15.x or is the signifikant change only vendor/device id adding and device tree (despite the 0x90 Register stuff you add additionally now)?

Well, I am super keen to try your code but I will need to prepare a 5.15.* test build tree next week first/beforehand.

Kind Regards
Konsti

Hi Konsti,

No, my device is running 5.15.x so I patched that kernel only.

By the way, for your case, I would get AI’s help to patch latest kernel with shared driver and DTS patch/changes as it can do it in few seconds.
For this, I would provide shared files (driver & DTS) and intended kernel files (driver & DTS) to AI and ask to port new kernel. Definitely need to verify after AI…!! :slightly_smiling_face:

After than you just need to tune following values in DTS only as per your LCD:


/\* Manufacturer fixed timings for 1024x600@60 \*/
display-timings {
	/\* Native mode (baseline timing) \*/
	native-mode = <&it66122_timing_1024x600_60>;
	/\* Baseline timing with adjusted porches for ghosting mitigation \*/
	it66122_timing_1024x600_60: timing0 {
		clock-frequency = <48924000>; /\* 48.924 MHz \*/
		hactive = <1024>;
		vactive = <600>;
		/\* Porches aligned for 60 Hz at 48.9 MHz (htotal=1312, vtotal=622) \*/
		hfront-porch = <38>;
		hsync-len = <104>;
		hback-porch = <146>; /\* 38 + 104 + 146 = 288; 1024 + 288 = 1312 \*/
		vfront-porch = <4>;
		vsync-len = <3>;
		vback-porch = <15>; /\* 4 + 3 + 15 = 22; 600 + 22 = 622 \*/
		/\* Known-good polarities: HSYNC positive, VSYNC positive \*/
		hsync-active = <1>; /\* positive \*/
		vsync-active = <1>; /\* positive \*/
		de-active = <1>;    /\* data-enable active high \*/
	};

Thanks.

Hi there,

I have an issue with stuttered audio played over HDMI after updating our application based on the BBB from Rev C to Rev D.

The application is based on a web browser that uses both HDMI video and audio. We had no problems with hundreds of systems developed in 2014, which were based on BBB Rev C and Debian 7 (Wheezy).

With the new BBB Rev D, which changed from TDA1988 to IT66122, we have upgraded to Debian 13, kernel 6.18.0-bone10. Services have been reduced to only what is necessary in order to save RAM and CPU.

As a result, the system works and the web pages run smoothly as video, but when it has to play audio (randomly), it stutters.

While in this condition, top shows CPU spikes on IRQs irq/43-44e0b000.i2c (30%) and irq/48-0-004c (20%). RAM usage is OK, with 300 MB available.

The stuttered audio also appears when playing files with an application like alsaplayer.

This odd situation does not appear all the time, but very often (i.e., 7–8 out of 10 times the audio should be played), though it never happens the first time after a reboot.

This is the environment:

root@BeagleBone:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Black [TI BeagleBone Black], device 0: davinci-mcasp.0-i2s-hifi i2s-hifi-0 [davinci-mcasp.0-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

root@BeagleBone:~# beagle-version
eeprom:[A335BNLT00D02534SBB00644]
model:[TI_AM335x_BeagleBone_Black_Rev_D]
dogtag:[BeagleBoard.org Debian Trixie Base Image 2025-12-08]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-gb4b56c73 (Oct 28 2025 - 17:45:28 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-revd.dts]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-HDMI-IT66122-00A0.kernel]
kernel:[6.18.0-bone10]
device-tree-override:[uboot_base_dtb=/boot/dtbs/6.18.0-bone10/am335x-boneblack-revd.dtb]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_base_dtb=/boot/dtbs/6.18.0-bone10/am335x-boneblack-revd.dtb]
uboot_overlay_options:[disable_uboot_overlay_adc=1]
uboot_overlay_options:[disable_uboot_overlay_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-customizations]:[1.20250808.0-0~trixie+20250808]
pkg:[bb-usb-gadgets]:[1.20250523.1-0~trixie+20250527]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~trixie+20240703]
pkg:[kmod]:[34.2-2bbbio1~trixie+20250522]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render netdev i2c bluetooth gpio admin tisdk weston-launch]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk1p3 ro rootfstype=ext4 rootwait fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 video=HDMI-A-1:1280x720]
dmesg | grep remote
[ 4.262379] remoteproc remoteproc0: wkup_m3 is available
[ 6.441724] remoteproc remoteproc0: powering up wkup_m3
[ 6.473032] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 6.496525] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 20.304709] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[ 48.945271] remoteproc remoteproc1: 4a334000.pru is available
[ 49.009159] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[ 48.945271] remoteproc remoteproc1: 4a334000.pru is available
[ 49.009159] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[ 4.287480] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0461:3f41 Primax Electronics, Ltd HP Wired Desktop 320K Keyboard
END

root@BeagleBone:~# lsmod
Module Size Used by
snd_soc_simple_card 20480 0
irq_pruss_intc 16384 0
snd_soc_simple_card_utils 32768 1 snd_soc_simple_card
pru_rproc 24576 0
snd_soc_davinci_mcasp 36864 2
snd_soc_ti_udma 12288 1 snd_soc_davinci_mcasp
snd_soc_ti_edma 12288 1 snd_soc_davinci_mcasp
snd_soc_ti_sdma 12288 1 snd_soc_davinci_mcasp
snd_soc_hdmi_codec 20480 1
snd_soc_core 258048 7 snd_soc_davinci_mcasp,snd_soc_hdmi_codec,snd_soc_simple_card_utils,snd_soc_ti_sdma,snd_soc_ti_edma,snd_soc_ti_udma,snd_soc_simple_card
snd_compress 24576 1 snd_soc_core
ti_am335x_adc 12288 0
snd_pcm_dmaengine 16384 1 snd_soc_core
kfifo_buf 12288 1 ti_am335x_adc
industrialio 98304 2 ti_am335x_adc,kfifo_buf
snd_pcm 122880 6 snd_compress,snd_soc_davinci_mcasp,snd_pcm_dmaengine,snd_soc_hdmi_codec,snd_soc_simple_card_utils,snd_soc_core
snd_timer 36864 1 snd_pcm
snd 94208 5 snd_compress,snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm
soundcore 16384 1 snd
at24 28672 0
zram 36864 1
joydev 20480 0
evdev 20480 8
nfnetlink 16384 1
ip_tables 24576 0
x_tables 36864 1 ip_tables
pruss 20480 1 pru_rproc

Do anybody have a clue on this ?

Thanks in advance for your support

Dear Harshkumar,

meanwhile I took a closer look at the code you provided to fix purple line issue.
What I have seen on first view was you integrated the population of registers around 9x90-0x9F which I was having a view on by myself. The upstream driver does not touch them. I had feeling…

I utilised what you provided in fix-lcd-purple-line-issue.patch and final_fix_for_lcd.zip and somehow patched an copied it into a vanilla upstream 6.10.1 I hammered together for investigating.
I had to rename some functions, tweaked this or that but 90% matched. To match the Kernel must not be much older or newer.

And you know what.

YOUR CODE MAKES OUR PICKY DISPLAY WORKING!!!

Thank you. I am so glad. This bad boy is displaying like nothing else now.
Now I need to make a clean diff and port this into our production Kernel 6.12.57.
For anyone reading this, this code has to go upstream and I am willing to do this but need support. Or in other words, this code does improve compatibility significantly and is no joke.

Regards
Konstantin

1 Like

Hi @Konstantin

I am glad that shared patched helped you…!!!

I think BBB.org or TI team to consider this patch and make it more generic to have main like kernel updated as many people are facing such issues.

Thanks.

We need to work with the upstream it66121.c maintainers..

Kory at Bootlin might the best contact right now, as he is the middle of rewriting the tilcdc to connect to it66121 and similar without our one massive hackup patch..