Page MenuHomeFreeBSD

QCOM GENI I²C driver
ClosedPublic

Authored by phk on Apr 5 2025, 7:00 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, May 20, 3:13 PM
Unknown Object (File)
Tue, May 20, 5:11 AM
Unknown Object (File)
Sun, May 18, 9:09 PM
Unknown Object (File)
Mon, May 12, 5:21 AM
Unknown Object (File)
Apr 14 2025, 9:01 AM
Unknown Object (File)
Apr 11 2025, 7:00 AM
Unknown Object (File)
Apr 8 2025, 8:59 PM
Unknown Object (File)
Apr 8 2025, 3:59 PM
Subscribers

Details

Summary

This is a from scratch, minimally viable, I²C driver for QCOM's GENI serial engine.

No QCOM documentation is available, so other FOSS device drivers were consulted to figure things out

The driver works on T14s G6 "Snapdragon" hardware, to such a degree that ACPI clients and HID devices work (polling mode & needs modifications to iichid)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

phk requested review of this revision.Apr 5 2025, 7:00 PM
phk created this revision.
/usr/src/sys/dev/iicbus/controller/qcom/geni_iic.c
181 ↗(On Diff #153182)

Are these status bits not documented in linux?

307 ↗(On Diff #153182)

do you need a space between " and slave?

/usr/src/sys/dev/iicbus/controller/qcom/geni_iic.c
181 ↗(On Diff #153182)

They have GPL-2.0'ed .h file with a boatload of #defines, but I would not call it "documentation"

Given that this driver is written pretty "blind" I did not want the source to give the impression that I actually know what I'm doing...

307 ↗(On Diff #153182)

Probably not a bad idea :-)

I think it's fine to land as-is and clean it up as we need to.

I'm going to need to write an FDT stub when I get enough clock/reset/gpio/pinmux stuff written anyway, so that'll likely be the next time I poke at this.

Thanks for doing it!

/usr/src/sys/dev/iicbus/controller/qcom/geni_iic.c
181 ↗(On Diff #153182)

Eh we can clean it up after it's in the tree.

This revision is now accepted and ready to land.Apr 8 2025, 4:24 AM
This revision was automatically updated to reflect the committed changes.