'How to read the i2c adapter class (e.g. I2C_CLASS_DDC) from userspace (linux i2c-dev)?

Outside of Laptops, changing e.g. brightness of monitors requires DDC/CI. This is best done in userspace, I believe. Loading i2c-dev (kernel module) gives access to i2c-buses under /dev/i2c-<number>. Unfortunately not just monitors supporting DDC/CI have i2c-buses and it is far from ideal to read/write on unrelated buses, while trying to find which connects to what.

It seems that i2c bus adapter drivers already categorize their buses: e.g. I2C_CLASS_DDC for exactly what I’m looking for.

Is there any way to see the adapter class of a i2c-dev device?

(Or equally good: any way to match the device I want to talk to for DDC/CI from X11 workspaces or similar?)



Solution 1:[1]

You can try to look at ddccontrol:

ddccontrol -p

This utility scan I2Cs and somehow detects which are connected to monitors. You can examine it's source code and find solution.

P.S. This may be not an answer, but, sorry, I have not enough "reputation" to write a comment.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Daft Soft