• Ondrej Zary's avatar
    [media] radio-sf16fmi: Use LM7000 driver · 1e70a6cf
    Ondrej Zary authored
    Convert radio-sf16fmi to use generic LM7000 driver.
    Tested with SF16-FMI, SF16-FMP and SF16-FMD.
    
    radio.");
    @@ -48,37 +50,40 @@ struct fmi
     	bool mute;
     	unsigned long curfreq; /* freq in kHz */
     	struct mutex lock;
    +	struct lm7000 lm;
     };
    
     static struct fmi fmi_card;
     static struct pnp_dev *dev;
     bool pnp_attached;
    
    -/* freq is in 1/16 kHz to internal number, hw precision is 50 kHz */
    -/* It is only useful to give freq in interval of 800 (=0.05Mhz),
    - * other bits will be truncated, e.g 92.7400016 -> 92.7, but
    - * 92.7400017 -> 92.75
    - */
    -#define RSF16_ENCODE(x)	((x) / 800 + 214)
     #define RSF16_MINFREQ (87 * 16000)
     #define RSF16_MAXFREQ (108 * 16000)
    
    -static void outbits(int bits, unsigned int data, int io)
    +#define FMI_BIT_TUN_CE		(1 << 0)
    +#define FMI_BIT_TUN_CLK		(1 << 1)
    +#define FMI_BIT_TUN_DATA	(1 << 2)
    +#define FMI_BIT_VOL_SW		(1 << 3)
    +#define FMI_BIT_TUN_STRQ	(1 << 4)
    +
    +void fmi_set_pins(struct lm7000 *lm, u8 pins)
     {
    -	while (bits--) {
    -		if (data & 1) {
    -			outb(5, io);
    -			udelay(6);
    -			outb(7, io);
    -			udelay(6);
    -		} else {
    -			outb(1, io);
    -			udelay(6);
    -			outb(3, io);
    -			udelay(6);
    -		}
    -		data >>= 1;
    -	}
    Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
    Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    1e70a6cf
radio-sf16fmi.c 9.85 KB