hello experts
I'm facing a bit of confusion while trying to grasp the concept of interfacing an I2C temperature sensor (such as the LM75) with a Linux system. I have experience with bare-metal coding and interfacing I2C devices directly with microcontrollers by configuring registers and such. However, the transition to Linux has left me a bit perplexed.
As I understand it, when working with Linux, the process involves developing a kernel-space driver to facilitate communication with the sensor, as well as creating a user-space application to interact with the driver. I've seen mentions of accessing the kernel source code, developing the driver, and writing the user application, but the details are a bit hazy.
To put things into perspective, let's take the example of the LM75 temperature sensor. In a bare-metal scenario, I'd usually set up registers and handle I2C transactions directly. However, in a Linux environment, I'm not entirely sure about the low-level coding involved.
I'd greatly appreciate it if anyone could shed some light on this topic. How does one approach the low-level coding for I2C in Linux development? What are the key steps involved in creating the kernel-space driver and the user-space application?
Please note that this is a hypothetical question aimed at understanding the concept better. I'm particularly interested in gaining insights into how the low-level coding for I2C is tackled in Linux development. Your guidance and expertise would be immensely valuable!
Thank you in advance for sharing your knowledge and experiences.