stats: i2c: I2C stats

Adds the ability for I2C drivers to report synchronous transfer stats
using a I2C specific macro to define the device instance.

The macro creates a container for device_state which allows for per
instance device class common data structure to be used in the device
class api (ex: i2c.h). This is used to maintain per driver instance
stats for all i2c drivers. This is a reusable idea across other device
classes as desired.

Using Kconfig device class stats may be turned on/off individually
this way as well, in this case I2C_STATS.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
This commit is contained in:
Tom Burdick 2021-10-27 15:07:10 -05:00 committed by Anas Nashif
commit 7b1349cfe6
37 changed files with 253 additions and 66 deletions

View file

@ -287,7 +287,7 @@ static int twi_nrfx_pm_action(const struct device *dev,
} \
}; \
PM_DEVICE_DT_DEFINE(I2C(idx), twi_nrfx_pm_action); \
DEVICE_DT_DEFINE(I2C(idx), \
I2C_DEVICE_DT_DEFINE(I2C(idx), \
twi_##idx##_init, \
PM_DEVICE_DT_REF(I2C(idx)), \
&twi_##idx##_data, \