Lines Matching refs:regmap
21 #include <linux/regmap.h>
86 struct regmap *regmap;
91 static int zl38_fw_issue_command(struct regmap *regmap, u16 cmd)
96 err = regmap_read_poll_timeout(regmap, REG_SEMA_FLAGS, val,
101 err = regmap_write(regmap, REG_CMD, cmd);
104 err = regmap_update_bits(regmap, REG_SEMA_FLAGS, SEMA_FLAGS_BOOT_CMD,
109 return regmap_read_poll_timeout(regmap, REG_CMD, val, !val, 10000,
113 static int zl38_fw_go(struct regmap *regmap)
117 err = zl38_fw_issue_command(regmap, BOOTCMD_LOAD_COMPLETE);
121 return zl38_fw_issue_command(regmap, BOOTCMD_FW_GO);
124 static int zl38_fw_enter_boot_mode(struct regmap *regmap)
129 err = regmap_update_bits(regmap, REG_CLK_STATUS, CLK_STATUS_HWRST,
134 return regmap_read_poll_timeout(regmap, REG_PARAM_RESULT, val,
139 zl38_fw_send_data(struct regmap *regmap, u32 addr, const void *data, u16 len)
144 err = regmap_raw_write(regmap, REG_PG255_BASE_HI, &addr_base,
148 return regmap_raw_write(regmap, REG_PG255_OFFS(addr), data, len);
151 static int zl38_fw_send_xaddr(struct regmap *regmap, const void *data)
159 return regmap_raw_write(regmap, REG_FWR_EXEC, &baddr, sizeof(baddr));
162 static int zl38_load_firmware(struct device *dev, struct regmap *regmap)
181 err = zl38_fw_enter_boot_mode(regmap);
190 err = zl38_fw_send_data(regmap, addr, rec->data, len);
193 err = zl38_fw_send_xaddr(regmap, rec->data);
202 err = zl38_fw_go(regmap);
210 static int zl38_software_reset(struct regmap *regmap)
215 err = regmap_update_bits(regmap, REG_SEMA_FLAGS, SEMA_FLAGS_APP_REBOOT,
227 return regmap_read_poll_timeout(regmap, REG_SEMA_FLAGS, val,
256 err = regmap_update_bits(priv->regmap, REG_TDMA_CFG_CLK,
300 err = regmap_update_bits(priv->regmap, REG_TDMA_CFG_CLK,
306 err = zl38_software_reset(priv->regmap);
393 struct regmap *regmap = gpiochip_get_data(c);
396 regmap_update_bits(regmap, REG_GPIO_DAT, mask, val ? mask : 0);
401 struct regmap *regmap = gpiochip_get_data(c);
406 err = regmap_read(regmap, REG_GPIO_DAT, &val);
415 struct regmap *regmap = gpiochip_get_data(c);
418 return regmap_update_bits(regmap, REG_GPIO_DIR, mask, 0);
424 struct regmap *regmap = gpiochip_get_data(c);
428 return regmap_update_bits(regmap, REG_GPIO_DIR, mask, mask);
445 static int zl38_check_revision(struct device *dev, struct regmap *regmap)
451 err = regmap_read(regmap, REG_HW_REV, &hwrev);
454 err = regmap_read(regmap, REG_FW_PROD, &fwprod);
457 err = regmap_read(regmap, REG_FW_REV, &fwrev);
575 priv->regmap = devm_regmap_init(dev, &zl38_regmap_bus, spi,
577 if (IS_ERR(priv->regmap))
578 return PTR_ERR(priv->regmap);
580 err = zl38_load_firmware(dev, priv->regmap);
584 err = zl38_check_revision(dev, priv->regmap);
595 err = devm_gpiochip_add_data(dev, priv->gpio_chip, priv->regmap);
600 err = regmap_multi_reg_write(priv->regmap, cp_config_stereo_bypass,
605 err = regmap_update_bits(priv->regmap, REG_CLK_CFG, CLK_CFG_SOURCE_XTAL,