| /linux/drivers/dpll/zl3073x/ |
| H A D | core.c | 85 zl3073x_check_reg(struct zl3073x_dev *zldev, unsigned int reg, size_t size) in zl3073x_check_reg() argument 92 lockdep_assert_held(&zldev->multiop_lock); in zl3073x_check_reg() 96 dev_err(zldev->dev, "Index out of range for reg 0x%04lx\n", in zl3073x_check_reg() 102 dev_err(zldev->dev, "Invalid size %zu for reg 0x%04lx\n", in zl3073x_check_reg() 111 zl3073x_read_reg(struct zl3073x_dev *zldev, unsigned int reg, void *val, in zl3073x_read_reg() argument 116 if (!zl3073x_check_reg(zldev, reg, size)) in zl3073x_read_reg() 122 rc = regmap_bulk_read(zldev->regmap, reg, val, size); in zl3073x_read_reg() 124 dev_err(zldev->dev, "Failed to read reg 0x%04x: %pe\n", reg, in zl3073x_read_reg() 133 zl3073x_write_reg(struct zl3073x_dev *zldev, unsigned int reg, const void *val, in zl3073x_write_reg() argument 138 if (!zl3073x_check_reg(zldev, reg, size)) in zl3073x_write_reg() [all …]
|
| H A D | chan.c | 20 int zl3073x_chan_state_update(struct zl3073x_dev *zldev, u8 index) in zl3073x_chan_state_update() argument 22 struct zl3073x_chan *chan = &zldev->chan[index]; in zl3073x_chan_state_update() 26 rc = zl3073x_read_u8(zldev, ZL_REG_DPLL_MON_STATUS(index), in zl3073x_chan_state_update() 31 rc = zl3073x_read_u8(zldev, ZL_REG_DPLL_REFSEL_STATUS(index), in zl3073x_chan_state_update() 45 rc = zl3073x_poll_zero_u8(zldev, ZL_REG_DPLL_DF_READ(index), in zl3073x_chan_state_update() 51 rc = zl3073x_write_u8(zldev, ZL_REG_DPLL_DF_READ(index), in zl3073x_chan_state_update() 56 rc = zl3073x_poll_zero_u8(zldev, ZL_REG_DPLL_DF_READ(index), in zl3073x_chan_state_update() 62 rc = zl3073x_read_u48(zldev, ZL_REG_DPLL_DF_OFFSET(index), &val); in zl3073x_chan_state_update() 83 int zl3073x_chan_nco_mode_set(struct zl3073x_dev *zldev, u8 index) in zl3073x_chan_nco_mode_set() argument 85 struct zl3073x_chan *chan = &zldev->chan[index]; in zl3073x_chan_nco_mode_set() [all …]
|
| H A D | core.h | 107 int zl3073x_dev_probe(struct zl3073x_dev *zldev); 109 int zl3073x_dev_start(struct zl3073x_dev *zldev, bool full); 110 void zl3073x_dev_stop(struct zl3073x_dev *zldev); 112 static inline u8 zl3073x_dev_phase_avg_factor_get(struct zl3073x_dev *zldev) in zl3073x_dev_phase_avg_factor_get() argument 114 return READ_ONCE(zldev->phase_avg_factor); in zl3073x_dev_phase_avg_factor_get() 117 int zl3073x_dev_phase_avg_factor_set(struct zl3073x_dev *zldev, u8 factor); 145 int zl3073x_mb_op(struct zl3073x_dev *zldev, unsigned int op_reg, u8 op_val, 147 int zl3073x_poll_zero_u8(struct zl3073x_dev *zldev, unsigned int reg, 149 int zl3073x_read_u8(struct zl3073x_dev *zldev, unsigned int reg, u8 *val); 150 int zl3073x_read_u16(struct zl3073x_dev *zldev, unsigned int reg, u16 *val); [all …]
|
| H A D | ref.c | 61 int zl3073x_ref_state_update(struct zl3073x_dev *zldev, u8 index) in zl3073x_ref_state_update() argument 63 struct zl3073x_ref *ref = &zldev->ref[index]; in zl3073x_ref_state_update() 65 return zl3073x_read_u8(zldev, ZL_REG_REF_MON_STATUS(index), in zl3073x_ref_state_update() 79 int zl3073x_ref_state_fetch(struct zl3073x_dev *zldev, u8 index) in zl3073x_ref_state_fetch() argument 81 struct zl3073x_ref *ref = &zldev->ref[index]; in zl3073x_ref_state_fetch() 98 rc = zl3073x_ref_state_update(zldev, index); in zl3073x_ref_state_fetch() 102 guard(mutex)(&zldev->multiop_lock); in zl3073x_ref_state_fetch() 105 rc = zl3073x_mb_op(zldev, ZL_REG_REF_MB_SEM, ZL_REF_MB_SEM_RD, in zl3073x_ref_state_fetch() 111 rc = zl3073x_read_u8(zldev, ZL_REG_REF_CONFIG, &ref->config); in zl3073x_ref_state_fetch() 116 rc = zl3073x_read_u16(zldev, ZL_REG_REF_FREQ_BASE, &ref->freq_base); in zl3073x_ref_state_fetch() [all …]
|
| H A D | out.c | 23 int zl3073x_out_state_fetch(struct zl3073x_dev *zldev, u8 index) in zl3073x_out_state_fetch() argument 25 struct zl3073x_out *out = &zldev->out[index]; in zl3073x_out_state_fetch() 29 rc = zl3073x_read_u8(zldev, ZL_REG_OUTPUT_CTRL(index), &out->ctrl); in zl3073x_out_state_fetch() 33 dev_dbg(zldev->dev, "OUT%u is %s and connected to SYNTH%u\n", index, in zl3073x_out_state_fetch() 37 guard(mutex)(&zldev->multiop_lock); in zl3073x_out_state_fetch() 40 rc = zl3073x_mb_op(zldev, ZL_REG_OUTPUT_MB_SEM, ZL_OUTPUT_MB_SEM_RD, in zl3073x_out_state_fetch() 46 rc = zl3073x_read_u8(zldev, ZL_REG_OUTPUT_MODE, &out->mode); in zl3073x_out_state_fetch() 50 dev_dbg(zldev->dev, "OUT%u has signal format 0x%02x\n", index, in zl3073x_out_state_fetch() 54 rc = zl3073x_read_u32(zldev, ZL_REG_OUTPUT_DIV, &out->div); in zl3073x_out_state_fetch() 59 dev_err(zldev->dev, "Zero divisor for OUT%u got from device\n", in zl3073x_out_state_fetch() [all …]
|
| H A D | prop.c | 30 zl3073x_pin_check_freq(struct zl3073x_dev *zldev, enum dpll_pin_direction dir, in zl3073x_pin_check_freq() argument 49 synth = zl3073x_dev_out_synth_get(zldev, out); in zl3073x_pin_check_freq() 52 synth_freq = zl3073x_dev_synth_freq_get(zldev, synth); in zl3073x_pin_check_freq() 62 dev_warn(zldev->dev, in zl3073x_pin_check_freq() 84 zl3073x_prop_pin_package_label_set(struct zl3073x_dev *zldev, in zl3073x_prop_pin_package_label_set() argument 96 is_diff = zl3073x_dev_ref_is_diff(zldev, ref); in zl3073x_prop_pin_package_label_set() 102 is_diff = zl3073x_dev_out_is_diff(zldev, out); in zl3073x_prop_pin_package_label_set() 129 zl3073x_prop_pin_fwnode_get(struct zl3073x_dev *zldev, in zl3073x_prop_pin_fwnode_get() argument 142 pins_node = device_get_named_child_node(zldev->dev, node_name); in zl3073x_prop_pin_fwnode_get() 144 dev_dbg(zldev->dev, "'%s' sub-node is missing\n", node_name); in zl3073x_prop_pin_fwnode_get() [all …]
|
| H A D | dpll.c | 157 struct zl3073x_dev *zldev = zldpll->dev; in zl3073x_dpll_input_pin_esync_get() local 165 ref = zl3073x_ref_state_get(zldev, ref_id); in zl3073x_dpll_input_pin_esync_get() 195 struct zl3073x_dev *zldev = zldpll->dev; in zl3073x_dpll_input_pin_esync_set() local 203 ref = *zl3073x_ref_state_get(zldev, ref_id); in zl3073x_dpll_input_pin_esync_set() 219 return zl3073x_ref_state_set(zldev, ref_id, &ref); in zl3073x_dpll_input_pin_esync_set() 233 struct zl3073x_dev *zldev = zldpll->dev; in zl3073x_dpll_input_pin_ref_sync_get() local 240 ref = zl3073x_ref_state_get(zldev, ref_id); in zl3073x_dpll_input_pin_ref_sync_get() 264 struct zl3073x_dev *zldev = zldpll->dev; in zl3073x_dpll_input_pin_ref_sync_set() local 275 ref = *zl3073x_ref_state_get(zldev, ref_id); in zl3073x_dpll_input_pin_ref_sync_set() 281 sync_ref = zl3073x_ref_state_get(zldev, sync_ref_id); in zl3073x_dpll_input_pin_ref_sync_set() [all …]
|
| H A D | chan.h | 38 int zl3073x_chan_state_fetch(struct zl3073x_dev *zldev, u8 index); 39 const struct zl3073x_chan *zl3073x_chan_state_get(struct zl3073x_dev *zldev, 41 int zl3073x_chan_state_set(struct zl3073x_dev *zldev, u8 index, 44 int zl3073x_chan_state_update(struct zl3073x_dev *zldev, u8 index); 45 int zl3073x_chan_nco_mode_set(struct zl3073x_dev *zldev, u8 index); 47 int zl3073x_chan_tod_ready_wait(struct zl3073x_dev *zldev, u8 ch); 48 int zl3073x_chan_tod_read(struct zl3073x_dev *zldev, u8 ch, 51 int zl3073x_chan_tod_write(struct zl3073x_dev *zldev, u8 ch, 53 int zl3073x_chan_tod_adjust(struct zl3073x_dev *zldev, u8 ch, 55 int zl3073x_chan_phase_step(struct zl3073x_dev *zldev, u8 ch, [all …]
|
| H A D | fw.c | 198 zl3073x_fw_component_load(struct zl3073x_dev *zldev, in zl3073x_fw_component_load() argument 205 struct device *dev = zldev->dev; in zl3073x_fw_component_load() 307 struct zl3073x_fw *zl3073x_fw_load(struct zl3073x_dev *zldev, const char *data, in zl3073x_fw_load() argument 322 rc = zl3073x_fw_component_load(zldev, &comp, &data, &size, in zl3073x_fw_load() 363 zl3073x_fw_component_flash(struct zl3073x_dev *zldev, in zl3073x_fw_component_flash() argument 377 rc = zl3073x_flash_sectors(zldev, info->name, info->dest_page, in zl3073x_fw_component_flash() 382 rc = zl3073x_flash_page(zldev, info->name, info->dest_page, in zl3073x_fw_component_flash() 387 rc = zl3073x_flash_page(zldev, info->name, info->dest_page, in zl3073x_fw_component_flash() 391 rc = zl3073x_flash_page_copy(zldev, info->name, in zl3073x_fw_component_flash() 403 int zl3073x_fw_flash(struct zl3073x_dev *zldev, struct zl3073x_fw *zlfw, in zl3073x_fw_flash() argument [all …]
|
| H A D | prop.h | 26 enum dpll_type zl3073x_prop_dpll_type_get(struct zl3073x_dev *zldev, u8 index); 28 struct zl3073x_pin_props *zl3073x_pin_props_get(struct zl3073x_dev *zldev,
|
| H A D | dpll.h | 46 struct zl3073x_dpll *zl3073x_dpll_alloc(struct zl3073x_dev *zldev, u8 ch); 52 int zl3073x_dpll_init_fine_phase_adjust(struct zl3073x_dev *zldev);
|