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