drivers: haptics: Add support for CS40L5x haptic driver

CS40L5x is a family (CS40L50/51/52/53) of haptics drivers designed
for trackpads, tablets, and automotive applications.

This PR provides basic functionality for ROM features and serves
as a starting point for the upstream driver. Notably, RAM firmware,
SPI,  and certain CS40L51/52 features (e.g., diagnostics,
closed-loop algorithms) are excluded from this PR.

Tested with internal/external boost configurations. Tested I2C.
Tested all ROM features with each device variant (50/51/52/53),
including ROM playback, "buzz" playback and configuration, custom
haptics playback and configuration, trigger playback and configuration,
runtime haptics logging, and gain configuration.

Signed-off-by: Liam Ogletree <liam.ogletree@cirrus.com>
10 files changed