Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update I2C API to support arbitrary bus speed values #2439

Open
nashif opened this issue Sep 12, 2017 · 0 comments
Open

Update I2C API to support arbitrary bus speed values #2439

nashif opened this issue Sep 12, 2017 · 0 comments

Comments

@nashif
Copy link

nashif commented Sep 12, 2017

Reported by Piotr Mienkowski:

As defined by I2C standard: "The minimum HIGH and LOW periods of the SCL clock specified in Table 10 determine the maximum bit transfer rates of 100 kbit/s for Standard-mode devices, 400 kbit/s for Fast-mode devices, and 1000 kbit/s for Fast-mode Plus. Devices must be able to follow transfers at their own maximum bit rates, either by being able to transmit or receive at that speed or by applying the clock synchronization procedure". Thus the standard does not require that devices always run at the maximum speed allowed at any given mode.

Current I2C API does not allow to set an arbitrary I2C bus speed instead it is using a bit-field encoded value to always select a maximum one.

Recently I2C drivers were updated to use DTS which, based on the existing Linux definitions, allows to set an arbitrary bus speed value. The existing DTS support is only partial since the DTS provided values are only accepted if they match maximum allowed speed.

I2C API should be updated to support arbitrary bus speed values.

(Imported from Jira ZEP-2611)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant