Lines Matching refs:ecap_dev

102 	struct ecap_cnt_dev *ecap_dev = counter_priv(counter);  in ecap_cnt_capture_get_evmode()  local
106 regmap_read(ecap_dev->regmap, ECAP_ECCTL_REG, &regval); in ecap_cnt_capture_get_evmode()
114 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_set_evmode() local
117 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_EV_MODE_MASK, ev_mode); in ecap_cnt_capture_set_evmode()
123 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_enable() local
128 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, in ecap_cnt_capture_enable()
132 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_ECCTL_CFG_MASK, in ecap_cnt_capture_enable()
138 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_capture_disable() local
141 regmap_update_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_ECCTL_EN_MASK, 0); in ecap_cnt_capture_disable()
144 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, ECAP_EVT_EN_MASK, 0); in ecap_cnt_capture_disable()
151 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_count_get_val() local
155 regmap_read(ecap_dev->regmap, reg, &regval); in ecap_cnt_count_get_val()
163 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_count_set_val() local
166 regmap_write(ecap_dev->regmap, reg, val); in ecap_cnt_count_set_val()
228 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_clk_get_freq() local
230 *freq = clk_get_rate(ecap_dev->clk); in ecap_cnt_clk_get_freq()
239 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_pol_read() local
243 bitval = regmap_test_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_read()
255 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_pol_write() local
259 regmap_set_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_write()
261 regmap_clear_bits(ecap_dev->regmap, ECAP_ECCTL_REG, ECAP_CAPPOL_BIT(idx)); in ecap_cnt_pol_write()
291 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_nb_ovf_read() local
293 *val = atomic_read(&ecap_dev->nb_ovf); in ecap_cnt_nb_ovf_read()
301 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_nb_ovf_write() local
306 atomic_set(&ecap_dev->nb_ovf, val); in ecap_cnt_nb_ovf_write()
322 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_enable_read() local
324 *enable = ecap_dev->enabled; in ecap_cnt_enable_read()
332 struct ecap_cnt_dev *ecap_dev = counter_priv(counter); in ecap_cnt_enable_write() local
334 mutex_lock(&ecap_dev->lock); in ecap_cnt_enable_write()
336 if (enable == ecap_dev->enabled) in ecap_cnt_enable_write()
343 ecap_dev->enabled = enable; in ecap_cnt_enable_write()
346 mutex_unlock(&ecap_dev->lock); in ecap_cnt_enable_write()
439 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_isr() local
444 regmap_read(ecap_dev->regmap, ECAP_ECINT_EN_FLG_REG, &flg); in ecap_cnt_isr()
456 atomic_inc(&ecap_dev->nb_ovf); in ecap_cnt_isr()
463 regmap_update_bits(ecap_dev->regmap, ECAP_ECINT_CLR_FRC_REG, ECAP_EVT_CLR_MASK, clr); in ecap_cnt_isr()
476 struct ecap_cnt_dev *ecap_dev; in ecap_cnt_probe() local
482 counter_dev = devm_counter_alloc(dev, sizeof(*ecap_dev)); in ecap_cnt_probe()
494 ecap_dev = counter_priv(counter_dev); in ecap_cnt_probe()
496 mutex_init(&ecap_dev->lock); in ecap_cnt_probe()
498 ecap_dev->clk = devm_clk_get_enabled(dev, "fck"); in ecap_cnt_probe()
499 if (IS_ERR(ecap_dev->clk)) in ecap_cnt_probe()
500 return dev_err_probe(dev, PTR_ERR(ecap_dev->clk), "failed to get clock\n"); in ecap_cnt_probe()
502 clk_rate = clk_get_rate(ecap_dev->clk); in ecap_cnt_probe()
512 ecap_dev->regmap = devm_regmap_init_mmio(dev, mmio_base, &ecap_cnt_regmap_config); in ecap_cnt_probe()
513 if (IS_ERR(ecap_dev->regmap)) in ecap_cnt_probe()
514 return dev_err_probe(dev, PTR_ERR(ecap_dev->regmap), "failed to init regmap\n"); in ecap_cnt_probe()
543 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_remove() local
545 if (ecap_dev->enabled) in ecap_cnt_remove()
552 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_suspend() local
555 if (ecap_dev->enabled) { in ecap_cnt_suspend()
563 ecap_dev->pm_ctx.time_cntr = ecap_cnt_count_get_val(counter_dev, ECAP_TSCNT_REG); in ecap_cnt_suspend()
566 ecap_dev->pm_ctx.ev_mode = ecap_cnt_capture_get_evmode(counter_dev); in ecap_cnt_suspend()
568 clk_disable(ecap_dev->clk); in ecap_cnt_suspend()
576 struct ecap_cnt_dev *ecap_dev = counter_priv(counter_dev); in ecap_cnt_resume() local
578 clk_enable(ecap_dev->clk); in ecap_cnt_resume()
580 ecap_cnt_capture_set_evmode(counter_dev, ecap_dev->pm_ctx.ev_mode); in ecap_cnt_resume()
583 if (ecap_dev->enabled) { in ecap_cnt_resume()
584 ecap_cnt_count_set_val(counter_dev, ECAP_TSCNT_REG, ecap_dev->pm_ctx.time_cntr); in ecap_cnt_resume()