Lines Matching refs:peripheral
37 static int cs35l56_sdw_poll_mem_status(struct sdw_slave *peripheral,
46 false, peripheral, CS35L56_SDW_MEM_ACCESS_STATUS);
56 static int cs35l56_sdw_slow_read(struct sdw_slave *peripheral, unsigned int reg,
65 ret = cs35l56_sdw_poll_mem_status(peripheral,
69 dev_err(&peripheral->dev, "!CMD_IN_PROGRESS fail: %d\n", ret);
74 sdw_read_no_pm(peripheral, reg + i);
77 ret = cs35l56_sdw_poll_mem_status(peripheral,
81 dev_err(&peripheral->dev, "RDATA_RDY fail: %d\n", ret);
86 ret = sdw_nread_no_pm(peripheral, CS35L56_SDW_MEM_READ_DATA,
89 dev_err(&peripheral->dev, "Late read @%#x failed: %d\n", reg + i, ret);
99 static int cs35l56_sdw_read_one(struct sdw_slave *peripheral, unsigned int reg, void *buf)
103 ret = sdw_nread_no_pm(peripheral, reg, 4, (u8 *)buf);
105 dev_err(&peripheral->dev, "Read failed @%#x:%d\n", reg, ret);
118 struct sdw_slave *peripheral = context;
126 return cs35l56_sdw_slow_read(peripheral, reg, buf8, val_size);
131 return cs35l56_sdw_read_one(peripheral, reg, val_buf);
138 ret = sdw_nread_no_pm(peripheral, reg, bytes, buf8);
140 dev_err(&peripheral->dev, "Read failed @%#x..%#x:%d\n",
163 static int cs35l56_sdw_write_one(struct sdw_slave *peripheral, unsigned int reg, const void *buf)
168 ret = sdw_nwrite_no_pm(peripheral, reg, 4, (u8 *)&val_le);
170 dev_err(&peripheral->dev, "Write failed @%#x:%d\n", reg, ret);
181 struct sdw_slave *peripheral = context;
191 return cs35l56_sdw_write_one(peripheral, reg, src_be);
202 ret = sdw_nwrite_no_pm(peripheral, reg, bytes, (u8 *)val_le_buf);
204 dev_err(&peripheral->dev, "Write failed @%#x..%#x:%d\n",
254 static void cs35l56_sdw_init(struct sdw_slave *peripheral)
256 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
281 sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_MASK_1,
289 static int cs35l56_sdw_interrupt(struct sdw_slave *peripheral,
292 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
314 sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_MASK_1, 0);
315 sdw_read_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1);
316 sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF);
338 static int cs35l56_sdw_read_prop(struct sdw_slave *peripheral)
340 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
341 struct sdw_slave_prop *prop = &peripheral->prop;
369 static int cs35l56_sdw_update_status(struct sdw_slave *peripheral,
372 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
381 cs35l56_sdw_init(peripheral);
397 struct sdw_slave *peripheral)
405 if (peripheral->bus->params.curr_bank) {
419 curr_scale = sdw_read_no_pm(peripheral, curr_scale_reg);
425 next_scale = sdw_read_no_pm(peripheral, next_scale_reg);
433 ret = sdw_write_no_pm(peripheral, next_scale_reg, next_scale);
442 ret = sdw_write_no_pm(peripheral, curr_scale_reg, CS35L56_SDW_INVALID_BUS_SCALE);
453 static int cs35l56_sdw_bus_config(struct sdw_slave *peripheral,
456 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
459 return cs35l63_sdw_kick_divider(cs35l56, peripheral);
464 static int __maybe_unused cs35l56_sdw_clk_stop(struct sdw_slave *peripheral,
468 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
487 struct sdw_slave *peripheral = cs35l56->sdw_peripheral;
489 if (peripheral->unattach_request) {
492 if (!wait_for_completion_timeout(&peripheral->initialization_complete,
498 peripheral->unattach_request = 0;
577 static int cs35l56_sdw_probe(struct sdw_slave *peripheral, const struct sdw_device_id *id)
579 struct device *dev = &peripheral->dev;
589 cs35l56->sdw_peripheral = peripheral;
590 cs35l56->sdw_link_num = peripheral->bus->link_id;
610 peripheral, regmap_config);
626 static int cs35l56_sdw_remove(struct sdw_slave *peripheral)
628 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
633 sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_MASK_1, 0);
634 sdw_read_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1);
635 sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF);