blob: 5b91a1697e2c7163a4e0b38d9de8bcc4e61627ed [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __DVBS_DISEQC_H__
#define __DVBS_DISEQC_H__
#include "amlfrontend.h"
#define IRQ_STS_GAPBURST 0x01
#define IRQ_STS_TXFIFO64B 0x02
#define IRQ_STS_TXEND 0x04
#define IRQ_STS_TIMEOUT 0x08
#define IRQ_STS_TRFINISH 0x10
#define IRQ_STS_RXFIFO8B 0x20
#define IRQ_STS_RXEND 0x40
#define DISEQC_MSG_MAX_LEN 20
struct aml_def_diseqc_lnb {
struct amldtvdemod_device_s *demod;
struct gpio_desc *gpio_lnb_en;
struct gpio_desc *gpio_lnb_sel;
unsigned int lnb_en;
unsigned int lnb_sel;
unsigned int tone_on;
unsigned int voltage;/*fe_sec_voltage*/
/*unsigned char msg_len;*/
/*unsigned char msg_cmd[DISEQC_MSG_MAX_LEN];*/
struct completion rx_msg_ok;
struct completion tx_msg_ok;
};
extern struct aml_def_diseqc_lnb aml_lnb;
extern u32 sendburst_on;
extern u32 diseqc_cmd_bypass;
void aml_def_set_lnb_en(int high_low);
void aml_def_set_lnb_sel(int high_low);
void demod_dump_reg_diseqc(void);
void aml_diseqc_attach(struct amldtvdemod_device_s *devp,
struct dvb_frontend *fe);
u32 aml_diseqc_send_cmd(struct dvb_diseqc_master_cmd *cmd);
void aml_diseqc_dbg_en(unsigned int val);
void aml_diseqc_isr(void);
void aml_diseqc_status(void);
void aml_diseqc_toneburst_sa(void);
void aml_diseqc_toneburst_sb(void);
void aml_diseqc_tone_on(u32 onoff);
void aml_diseqc_flag_tone_on(u32 onoff);
#endif