18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * lnbh25.c
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Driver for LNB supply and control IC LNBH25
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Copyright (C) 2014 NetUP Inc.
88c2ecf20Sopenharmony_ci * Copyright (C) 2014 Sergey Kozlov <serjk@netup.ru>
98c2ecf20Sopenharmony_ci * Copyright (C) 2014 Abylay Ospan <aospan@netup.ru>
108c2ecf20Sopenharmony_ci */
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#ifndef LNBH25_H
138c2ecf20Sopenharmony_ci#define LNBH25_H
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#include <linux/i2c.h>
168c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h>
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci/* 22 kHz tone enabled. Tone output controlled by DSQIN pin */
198c2ecf20Sopenharmony_ci#define	LNBH25_TEN	0x01
208c2ecf20Sopenharmony_ci/* Low power mode activated (used only with 22 kHz tone output disabled) */
218c2ecf20Sopenharmony_ci#define LNBH25_LPM	0x02
228c2ecf20Sopenharmony_ci/* DSQIN input pin is set to receive external 22 kHz TTL signal source */
238c2ecf20Sopenharmony_ci#define LNBH25_EXTM	0x04
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cistruct lnbh25_config {
268c2ecf20Sopenharmony_ci	u8	i2c_address;
278c2ecf20Sopenharmony_ci	u8	data2_config;
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_LNBH25)
318c2ecf20Sopenharmony_cistruct dvb_frontend *lnbh25_attach(
328c2ecf20Sopenharmony_ci	struct dvb_frontend *fe,
338c2ecf20Sopenharmony_ci	struct lnbh25_config *cfg,
348c2ecf20Sopenharmony_ci	struct i2c_adapter *i2c);
358c2ecf20Sopenharmony_ci#else
368c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *lnbh25_attach(
378c2ecf20Sopenharmony_ci	struct dvb_frontend *fe,
388c2ecf20Sopenharmony_ci	struct lnbh25_config *cfg,
398c2ecf20Sopenharmony_ci	struct i2c_adapter *i2c)
408c2ecf20Sopenharmony_ci{
418c2ecf20Sopenharmony_ci	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
428c2ecf20Sopenharmony_ci	return NULL;
438c2ecf20Sopenharmony_ci}
448c2ecf20Sopenharmony_ci#endif
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci#endif
47