/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LM7000_H
#define __LM7000_H
/* Sanyo LM7000 tuner chip control
*
* Copyright 2012 Ondrej Zary < linux @ rainbow - software . org >
* based on radio - aimslab . c by M . Kirkwood
* and radio - sf16fmi . c by M . Kirkwood and Petr Vandrovec
*/
#define LM7000_DATA (1 << 0 )
#define LM7000_CLK (1 << 1 )
#define LM7000_CE (1 << 2 )
#define LM7000_FM_100 (0 << 20 )
#define LM7000_FM_50 (1 << 20 )
#define LM7000_FM_25 (2 << 20 )
#define LM7000_BIT_FM (1 << 23 )
static inline void lm7000_set_freq(u32 freq, void *handle,
void (*set_pins)(void *handle, u8 pins))
{
int i;
u8 data;
u32 val;
freq += 171200 ; /* Add 10.7 MHz IF */
freq /= 400 ; /* Convert to 25 kHz units */
val = freq | LM7000_FM_25 | LM7000_BIT_FM;
/* write the 24-bit register, starting with LSB */
for (i = 0 ; i < 24 ; i++) {
data = val & (1 << i) ? LM7000_DATA : 0 ;
set_pins(handle, data | LM7000_CE);
udelay(2 );
set_pins(handle, data | LM7000_CE | LM7000_CLK);
udelay(2 );
set_pins(handle, data | LM7000_CE);
udelay(2 );
}
set_pins(handle, 0 );
}
#endif /* __LM7000_H */
Messung V0.5 in Prozent C=92 H=94 G=92
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-27)
¤
*© Formatika GbR, Deutschland