11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
2776338e121b9db3156bfb4e21622a0219bbab9d4Johannes Stezenbach * descriptions + helper functions for simple dvb plls.
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
55e9e7226c13135063707a0c82766a2dd748f59e5Johannes Stezenbach#ifndef __DVB_PLL_H__
65e9e7226c13135063707a0c82766a2dd748f59e5Johannes Stezenbach#define __DVB_PLL_H__
75e9e7226c13135063707a0c82766a2dd748f59e5Johannes Stezenbach
8272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey#include <linux/i2c.h>
9272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey#include "dvb_frontend.h"
10272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey
1147a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky#define DVB_PLL_UNDEFINED               0
1247a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky#define DVB_PLL_THOMSON_DTT7579         1
1347a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky#define DVB_PLL_THOMSON_DTT759X         2
14b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_LG_Z201                 3
15b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_UNKNOWN_1               4
16b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_TUA6010XS               5
17b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_ENV57H1XD5              6
18b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_TUA6034                 7
19b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_TDA665X                 8
20b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_TDED4                   9
21b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_TDHU2                  10
22b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_SAMSUNG_TBMV           11
23b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_PHILIPS_SD1878_TDA8261 12
24b6fd549e50e11d91057dc367fa8f9d1352b145beMichael Krufky#define DVB_PLL_OPERA1                 13
25139dfeb2611ce92dec4c6b77297d209748340a21Antti Palosaari#define DVB_PLL_SAMSUNG_DTOS403IH102A  14
26a104ed073bc33b262fa9250c1f262c27da56067dTrent Piepho#define DVB_PLL_SAMSUNG_TDTC9251DH0    15
27f52c48535ffc5c470b07d774d9dc8414c98deb2bTrent Piepho#define DVB_PLL_SAMSUNG_TBDU18132      16
289d5d75a9eb85d49dc539ce0beb184754e0bad60dTrent Piepho#define DVB_PLL_SAMSUNG_TBMU24112      17
29d799ce570871bcb3f035e753a5bb3814f9530681Trent Piepho#define DVB_PLL_TDEE4		       18
305fb67074c6657edc34867cba78255b6f5b505f12Patrice Chotard#define DVB_PLL_THOMSON_DTT7520X       19
31780dfef37e2c941985b708f67aa0074edc922beaChris Pascoe
32272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey/**
33272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey * Attach a dvb-pll to the supplied frontend structure.
34272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey *
35272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey * @param fe Frontend to attach to.
36272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey * @param pll_addr i2c address of the PLL (if used).
37272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey * @param i2c i2c adapter to use (set to NULL if not used).
3847a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky * @param pll_desc_id dvb_pll_desc to use.
392bfe031df6bd5e3b8e503eba8e3b6461d7c2c27eAndrew de Quincey * @return Frontend pointer on success, NULL on failure
40272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey */
417b34be71db533f3e0cf93d53cf62d036cdb5418aPeter Senna Tschudin#if IS_ENABLED(CONFIG_DVB_PLL)
4247ae9ae895a5228e7a3ca47b1c9ab00a3f641923Michael Krufkyextern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
4347ae9ae895a5228e7a3ca47b1c9ab00a3f641923Michael Krufky					   int pll_addr,
4447ae9ae895a5228e7a3ca47b1c9ab00a3f641923Michael Krufky					   struct i2c_adapter *i2c,
4547a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky					   unsigned int pll_desc_id);
469ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho#else
479ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piephostatic inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
489ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho					   int pll_addr,
499ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho					   struct i2c_adapter *i2c,
5047a9991e806940f400f90d7b9cbcf7c2925e4fceMichael Krufky					   unsigned int pll_desc_id)
519ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho{
52271ddbf702c3a4e6b18f6464180eda0f62efd9a5Harvey Harrison	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
539ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho	return NULL;
549ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho}
559ab1ba38e6a25a480234f196aa26239e28ac2407Trent Piepho#endif
56272bc4db791bc49d50d5f77f24c688be6d1907f8Andrew de Quincey
575e9e7226c13135063707a0c82766a2dd748f59e5Johannes Stezenbach#endif
58