root/drivers/media/dvb-frontends/helene.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. helene_attach
  2. helene_attach_s

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * helene.h
   4  *
   5  * Sony HELENE DVB-S/S2/T/T2/C/C2/ISDB-T/S tuner driver (CXD2858ER)
   6  *
   7  * Copyright 2012 Sony Corporation
   8  * Copyright (C) 2014 NetUP Inc.
   9  * Copyright (C) 2014 Abylay Ospan <aospan@netup.ru>
  10   */
  11 
  12 #ifndef __DVB_HELENE_H__
  13 #define __DVB_HELENE_H__
  14 
  15 #include <linux/dvb/frontend.h>
  16 #include <linux/i2c.h>
  17 
  18 enum helene_xtal {
  19         SONY_HELENE_XTAL_16000, /* 16 MHz */
  20         SONY_HELENE_XTAL_20500, /* 20.5 MHz */
  21         SONY_HELENE_XTAL_24000, /* 24 MHz */
  22         SONY_HELENE_XTAL_41000 /* 41 MHz */
  23 };
  24 
  25 /**
  26  * struct helene_config - the configuration of 'Helene' tuner driver
  27  * @i2c_address:        I2C address of the tuner
  28  * @xtal_freq_mhz:      Oscillator frequency, MHz
  29  * @set_tuner_priv:     Callback function private context
  30  * @set_tuner_callback: Callback function that notifies the parent driver
  31  *                      which tuner is active now
  32  * @xtal: Cristal frequency as described by &enum helene_xtal
  33  * @fe: Frontend for which connects this tuner
  34  */
  35 struct helene_config {
  36         u8      i2c_address;
  37         u8      xtal_freq_mhz;
  38         void    *set_tuner_priv;
  39         int     (*set_tuner_callback)(void *, int);
  40         enum helene_xtal xtal;
  41 
  42         struct dvb_frontend *fe;
  43 };
  44 
  45 #if IS_REACHABLE(CONFIG_DVB_HELENE)
  46 /**
  47  * Attach a helene tuner (terrestrial and cable standards)
  48  *
  49  * @fe: frontend to be attached
  50  * @config: pointer to &struct helene_config with tuner configuration.
  51  * @i2c: i2c adapter to use.
  52  *
  53  * return: FE pointer on success, NULL on failure.
  54  */
  55 extern struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
  56                                         const struct helene_config *config,
  57                                         struct i2c_adapter *i2c);
  58 
  59 /**
  60  * Attach a helene tuner (satellite standards)
  61  *
  62  * @fe: frontend to be attached
  63  * @config: pointer to &struct helene_config with tuner configuration.
  64  * @i2c: i2c adapter to use.
  65  *
  66  * return: FE pointer on success, NULL on failure.
  67  */
  68 extern struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
  69                                         const struct helene_config *config,
  70                                         struct i2c_adapter *i2c);
  71 #else
  72 static inline struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
  73                                         const struct helene_config *config,
  74                                         struct i2c_adapter *i2c)
  75 {
  76         pr_warn("%s: driver disabled by Kconfig\n", __func__);
  77         return NULL;
  78 }
  79 static inline struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
  80                                         const struct helene_config *config,
  81                                         struct i2c_adapter *i2c)
  82 {
  83         pr_warn("%s: driver disabled by Kconfig\n", __func__);
  84         return NULL;
  85 }
  86 #endif
  87 
  88 #endif

/* [<][>][^][v][top][bottom][index][help] */