Lines Matching refs:divider
145 static inline unsigned int clock_divider_to_carrier_freq(unsigned int divider) in clock_divider_to_carrier_freq() argument
147 return DIV_ROUND_CLOSEST(CX25840_IR_REFCLK_FREQ, (divider + 1) * 16); in clock_divider_to_carrier_freq()
150 static inline unsigned int clock_divider_to_freq(unsigned int divider, in clock_divider_to_freq() argument
154 (divider + 1) * rollovers); in clock_divider_to_freq()
195 static u32 clock_divider_to_resolution(u16 divider) in clock_divider_to_resolution() argument
202 return DIV_ROUND_CLOSEST((1 << 2) * ((u32) divider + 1) * 1000, in clock_divider_to_resolution()
206 static u64 pulse_width_count_to_ns(u16 count, u16 divider) in pulse_width_count_to_ns() argument
215 n = (((u64) count << 2) | 0x3) * (divider + 1) * 1000; /* millicycles */ in pulse_width_count_to_ns()
224 static u16 ns_to_pulse_width_count(u32 ns, u16 divider)
235 d = (1 << 2) * ((u32) divider + 1) * 1000; /* millicycles/count */
248 static unsigned int pulse_width_count_to_us(u16 count, u16 divider) in pulse_width_count_to_us() argument
257 n = (((u64) count << 2) | 0x3) * (divider + 1); /* cycles */ in pulse_width_count_to_us()
393 u16 *divider) in txclk_tx_s_carrier() argument
395 *divider = carrier_freq_to_clock_divider(freq); in txclk_tx_s_carrier()
396 cx25840_write4(c, CX25840_IR_TXCLK_REG, *divider); in txclk_tx_s_carrier()
397 return clock_divider_to_carrier_freq(*divider); in txclk_tx_s_carrier()
402 u16 *divider) in rxclk_rx_s_carrier() argument
404 *divider = carrier_freq_to_clock_divider(freq); in rxclk_rx_s_carrier()
405 cx25840_write4(c, CX25840_IR_RXCLK_REG, *divider); in rxclk_rx_s_carrier()
406 return clock_divider_to_carrier_freq(*divider); in rxclk_rx_s_carrier()
410 u16 *divider) in txclk_tx_s_max_pulse_width() argument
417 *divider = pulse_clocks_to_clock_divider(pulse_clocks); in txclk_tx_s_max_pulse_width()
418 cx25840_write4(c, CX25840_IR_TXCLK_REG, *divider); in txclk_tx_s_max_pulse_width()
419 return (u32) pulse_width_count_to_ns(FIFO_RXTX, *divider); in txclk_tx_s_max_pulse_width()
423 u16 *divider) in rxclk_rx_s_max_pulse_width() argument
430 *divider = pulse_clocks_to_clock_divider(pulse_clocks); in rxclk_rx_s_max_pulse_width()
431 cx25840_write4(c, CX25840_IR_RXCLK_REG, *divider); in rxclk_rx_s_max_pulse_width()
432 return (u32) pulse_width_count_to_ns(FIFO_RXTX, *divider); in rxclk_rx_s_max_pulse_width()
633 u16 divider; in cx25840_ir_rx_read() local
642 divider = (u16) atomic_read(&ir_state->rxclk_divider); in cx25840_ir_rx_read()
671 (u16)(p->hw_fifo_data & FIFO_RXTX), divider) / 1000; in cx25840_ir_rx_read()