I use GENMASK and FIELD_PREP macro to get bits value of register. But it failed to get correct bits value.
#define LP5861_DEV_INITIAL_RESERVED_MSK GENMASK(7, 3) #define LP5861_DEV_INITIAL_RESERVED(x) FIELD_PREP(LP5861_DEV_INITIAL_RESERVED_MSK, x) #define LP5861_DEV_INITIAL_DATA_REF_MODE_MSK GENMASK(2, 1) #define LP5861_DEV_INITIAL_DATA_REF_MODE(x) FIELD_PREP(LP5861_DEV_INITIAL_DATA_REF_MODE_MSK, x) #define LP5861_DEV_INITIAL_PWM_FRE_MSK BIT(0) #define LP5861_DEV_INITIAL_PWM_FRE(x) FIELD_PREP(LP5861_DEV_INITIAL_PWM_FRE_MSK, x) const uint8_t u8=0x5e; devInit.reserved = LP5861_DEV_INITIAL_RESERVED(u8); devInit.dataRefMode = LP5861_DEV_INITIAL_DATA_REF_MODE(u8); devInit.pwmFre = LP5861_DEV_INITIAL_PWM_FRE(u8);
u8=0x5e devInit.reserved=0xF0, devInit.dataRefMode=0x4, devInit.pwmFre=0x0