Lines Matching refs:ecap_dev

101 	struct ecap_cnt_dev *ecap_dev = counter_priv(counter);  in ecap_cnt_capture_get_evmode()  local
105 regmap_read(ecap_dev->regmap, ECAP_ECCTL_REG, &regval); in ecap_cnt_capture_get_evmode()
113 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_set_evmode() local
116 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_EV_MODE_MASK, ev_mode); in ecap_cnt_capture_set_evmode()
122 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_enable() local
127 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, in ecap_cnt_capture_enable()
131 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_ECCTL_CFG_MASK, in ecap_cnt_capture_enable()
137 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_disable() local
140 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_ECCTL_EN_MASK, 0); in ecap_cnt_capture_disable()
143 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, ECAP_EVT_EN_MASK, 0); in ecap_cnt_capture_disable()
150 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_count_get_val() local
154 regmap_read(ecap_dev->regmap, reg, &regval); in ecap_cnt_count_get_val()
162 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_count_set_val() local
165 regmap_write(ecap_dev->regmap, reg, val); in ecap_cnt_count_set_val()
227 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_clk_get_freq() local
229 *freq = clk_get_rate(ecap_dev->clk); in ecap_cnt_clk_get_freq()
238 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_pol_read() local
242 bitval = regmap_test_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_read()
254 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_pol_write() local
258 regmap_set_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_write()
260 regmap_clear_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_write()
290 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_nb_ovf_read() local
292 *val = atomic_read(&ecap_dev->nb_ovf); in ecap_cnt_nb_ovf_read()
300 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_nb_ovf_write() local
305 atomic_set(&ecap_dev->nb_ovf, val); in ecap_cnt_nb_ovf_write()
321 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_enable_read() local
323 *enable = ecap_dev->enabled; in ecap_cnt_enable_read()
331 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_enable_write() local
333 mutex_lock(&ecap_dev->lock); in ecap_cnt_enable_write()
335 if (enable == ecap_dev->enabled) in ecap_cnt_enable_write()
342 ecap_dev->enabled = enable; in ecap_cnt_enable_write()
345 mutex_unlock(&ecap_dev->lock); in ecap_cnt_enable_write()
438 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_isr() local
443 regmap_read(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, &flg); in ecap_cnt_isr()
455 atomic_inc(&ecap_dev->nb_ovf); in ecap_cnt_isr()
462 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_CLR_FRC_REG, ECAP_EVT_CLR_MASK, clr); in ecap_cnt_isr()
470 struct ecap_cnt_dev *ecap_dev; in ecap_cnt_probe() local
476 counter_dev = devm_counter_alloc(dev, sizeof(*ecap_dev)); in ecap_cnt_probe()
488 ecap_dev = counter_priv(counter_dev); in ecap_cnt_probe()
490 mutex_init(&ecap_dev->lock); in ecap_cnt_probe()
492 ecap_dev->clk = devm_clk_get_enabled(dev, "fck"); in ecap_cnt_probe()
493 if (IS_ERR(ecap_dev->clk)) in ecap_cnt_probe()
494 return dev_err_probe(dev, PTR_ERR(ecap_dev->clk), "failed to get clock\n"); in ecap_cnt_probe()
496 clk_rate = clk_get_rate(ecap_dev->clk); in ecap_cnt_probe()
506 ecap_dev->regmap = devm_regmap_init_mmio(dev, mmio_base, &ecap_cnt_regmap_config); in ecap_cnt_probe()
507 if (IS_ERR(ecap_dev->regmap)) in ecap_cnt_probe()
508 return dev_err_probe(dev, PTR_ERR(ecap_dev->regmap), "failed to init regmap\n"); in ecap_cnt_probe()
534 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_remove() local
536 if (ecap_dev->enabled) in ecap_cnt_remove()
543 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_suspend() local
546 if (ecap_dev->enabled) { in ecap_cnt_suspend()
554 ecap_dev->pm_ctx.time_cntr = ecap_cnt_count_get_val(counter_dev, ECAP_TSCNT_REG); in ecap_cnt_suspend()
557 ecap_dev->pm_ctx.ev_mode = ecap_cnt_capture_get_evmode(counter_dev); in ecap_cnt_suspend()
559 clk_disable(ecap_dev->clk); in ecap_cnt_suspend()
567 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_resume() local
570 ret = clk_enable(ecap_dev->clk); in ecap_cnt_resume()
576 ecap_cnt_capture_set_evmode(counter_dev, ecap_dev->pm_ctx.ev_mode); in ecap_cnt_resume()
579 if (ecap_dev->enabled) { in ecap_cnt_resume()
580 ecap_cnt_count_set_val(counter_dev, ECAP_TSCNT_REG, ecap_dev->pm_ctx.time_cntr); in ecap_cnt_resume()