+#define SSBL_VIB_DRV_REG 0x4ASSBI_VIB....
+#define SSBI_VIB_DRV_EN_MANUAL_MASK GENMASK(7, 2)You can drop this condition, if ssbi_vib_data.drv_addr is 0.
- /* operate in manual mode */
- error = regmap_read(vib->regmap, regs->drv_addr, &val);
- if (error < 0)
- return error;
+ if (data->hw_type != SSBI_VIB) {
+ error = fwnode_property_read_u32(pdev->dev.fwnode, "reg", ®_base);
+ if (error < 0) {
+ dev_err(&pdev->dev, "Failed to read reg address, rc=%d\n", error);
+ return error;
+ }
+
+ vib->reg_base += reg_base;