Lines Matching refs:counter
97 static inline struct rz_mtu3_channel *rz_mtu3_get_ch(struct counter_device *counter, int id) in rz_mtu3_get_ch() argument
99 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_get_ch()
105 static bool rz_mtu3_is_counter_invalid(struct counter_device *counter, int id) in rz_mtu3_is_counter_invalid() argument
107 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_is_counter_invalid()
123 static int rz_mtu3_lock_if_counter_is_valid(struct counter_device *counter, in rz_mtu3_lock_if_counter_is_valid() argument
135 if (rz_mtu3_is_counter_invalid(counter, id)) { in rz_mtu3_lock_if_counter_is_valid()
157 static int rz_mtu3_count_read(struct counter_device *counter, in rz_mtu3_count_read() argument
160 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_read()
161 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_read()
164 ret = rz_mtu3_lock_if_counter_is_valid(counter, ch, priv, count->id); in rz_mtu3_count_read()
179 static int rz_mtu3_count_write(struct counter_device *counter, in rz_mtu3_count_write() argument
182 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_write()
183 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_write()
186 ret = rz_mtu3_lock_if_counter_is_valid(counter, ch, priv, count->id); in rz_mtu3_count_write()
231 static int rz_mtu3_count_function_read(struct counter_device *counter, in rz_mtu3_count_function_read() argument
235 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_function_read()
236 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_function_read()
249 static int rz_mtu3_count_function_write(struct counter_device *counter, in rz_mtu3_count_function_write() argument
253 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_function_write()
254 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_function_write()
290 static int rz_mtu3_count_direction_read(struct counter_device *counter, in rz_mtu3_count_direction_read() argument
294 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_direction_read()
295 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_direction_read()
314 static int rz_mtu3_count_ceiling_read(struct counter_device *counter, in rz_mtu3_count_ceiling_read() argument
318 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_ceiling_read()
319 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_ceiling_read()
323 ret = rz_mtu3_lock_if_counter_is_valid(counter, ch, priv, count->id); in rz_mtu3_count_ceiling_read()
345 static int rz_mtu3_count_ceiling_write(struct counter_device *counter, in rz_mtu3_count_ceiling_write() argument
349 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_ceiling_write()
350 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_ceiling_write()
354 ret = rz_mtu3_lock_if_counter_is_valid(counter, ch, priv, count->id); in rz_mtu3_count_ceiling_write()
393 static void rz_mtu3_32bit_cnt_setting(struct counter_device *counter) in rz_mtu3_32bit_cnt_setting() argument
395 struct rz_mtu3_channel *const ch1 = rz_mtu3_get_ch(counter, 0); in rz_mtu3_32bit_cnt_setting()
396 struct rz_mtu3_channel *const ch2 = rz_mtu3_get_ch(counter, 1); in rz_mtu3_32bit_cnt_setting()
408 static void rz_mtu3_16bit_cnt_setting(struct counter_device *counter, int id) in rz_mtu3_16bit_cnt_setting() argument
410 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, id); in rz_mtu3_16bit_cnt_setting()
420 static int rz_mtu3_initialize_counter(struct counter_device *counter, int id) in rz_mtu3_initialize_counter() argument
422 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, id); in rz_mtu3_initialize_counter()
423 struct rz_mtu3_channel *const ch1 = rz_mtu3_get_ch(counter, 0); in rz_mtu3_initialize_counter()
424 struct rz_mtu3_channel *const ch2 = rz_mtu3_get_ch(counter, 1); in rz_mtu3_initialize_counter()
432 rz_mtu3_16bit_cnt_setting(counter, id); in rz_mtu3_initialize_counter()
447 rz_mtu3_32bit_cnt_setting(counter); in rz_mtu3_initialize_counter()
455 static void rz_mtu3_terminate_counter(struct counter_device *counter, int id) in rz_mtu3_terminate_counter() argument
457 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, id); in rz_mtu3_terminate_counter()
458 struct rz_mtu3_channel *const ch1 = rz_mtu3_get_ch(counter, 0); in rz_mtu3_terminate_counter()
459 struct rz_mtu3_channel *const ch2 = rz_mtu3_get_ch(counter, 1); in rz_mtu3_terminate_counter()
472 static int rz_mtu3_count_enable_read(struct counter_device *counter, in rz_mtu3_count_enable_read() argument
475 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_enable_read()
476 struct rz_mtu3_channel *const ch1 = rz_mtu3_get_ch(counter, 0); in rz_mtu3_count_enable_read()
477 struct rz_mtu3_channel *const ch2 = rz_mtu3_get_ch(counter, 1); in rz_mtu3_count_enable_read()
478 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_enable_read()
495 static int rz_mtu3_count_enable_write(struct counter_device *counter, in rz_mtu3_count_enable_write() argument
498 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_count_enable_write()
499 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_count_enable_write()
505 ret = rz_mtu3_initialize_counter(counter, count->id); in rz_mtu3_count_enable_write()
511 rz_mtu3_terminate_counter(counter, count->id); in rz_mtu3_count_enable_write()
532 static int rz_mtu3_cascade_counts_enable_get(struct counter_device *counter, in rz_mtu3_cascade_counts_enable_get() argument
535 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_cascade_counts_enable_get()
552 static int rz_mtu3_cascade_counts_enable_set(struct counter_device *counter, in rz_mtu3_cascade_counts_enable_set() argument
555 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_cascade_counts_enable_set()
571 static int rz_mtu3_ext_input_phase_clock_select_get(struct counter_device *counter, in rz_mtu3_ext_input_phase_clock_select_get() argument
574 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_ext_input_phase_clock_select_get()
591 static int rz_mtu3_ext_input_phase_clock_select_set(struct counter_device *counter, in rz_mtu3_ext_input_phase_clock_select_set() argument
594 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_ext_input_phase_clock_select_set()
625 static int rz_mtu3_action_read(struct counter_device *counter, in rz_mtu3_action_read() argument
632 struct rz_mtu3_channel *const ch = rz_mtu3_get_ch(counter, count->id); in rz_mtu3_action_read()
633 struct rz_mtu3_cnt *const priv = counter_priv(counter); in rz_mtu3_action_read()
838 struct counter_device *counter; in rz_mtu3_cnt_probe() local
844 counter = devm_counter_alloc(dev, sizeof(*priv)); in rz_mtu3_cnt_probe()
845 if (!counter) in rz_mtu3_cnt_probe()
848 priv = counter_priv(counter); in rz_mtu3_cnt_probe()
868 counter->name = dev_name(dev); in rz_mtu3_cnt_probe()
869 counter->parent = dev; in rz_mtu3_cnt_probe()
870 counter->ops = &rz_mtu3_cnt_ops; in rz_mtu3_cnt_probe()
871 counter->counts = rz_mtu3_counts; in rz_mtu3_cnt_probe()
872 counter->num_counts = ARRAY_SIZE(rz_mtu3_counts); in rz_mtu3_cnt_probe()
873 counter->signals = rz_mtu3_signals; in rz_mtu3_cnt_probe()
874 counter->num_signals = ARRAY_SIZE(rz_mtu3_signals); in rz_mtu3_cnt_probe()
875 counter->ext = rz_mtu3_device_ext; in rz_mtu3_cnt_probe()
876 counter->num_ext = ARRAY_SIZE(rz_mtu3_device_ext); in rz_mtu3_cnt_probe()
879 ret = devm_counter_add(dev, counter); in rz_mtu3_cnt_probe()