1c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2868736adSOlli Salonen /* 3868736adSOlli Salonen * CIMaX SP2/HF CI driver 4868736adSOlli Salonen * 5868736adSOlli Salonen * Copyright (C) 2014 Olli Salonen <olli.salonen@iki.fi> 6868736adSOlli Salonen */ 7868736adSOlli Salonen 8868736adSOlli Salonen #ifndef SP2_H 9868736adSOlli Salonen #define SP2_H 10868736adSOlli Salonen 11fada1935SMauro Carvalho Chehab #include <media/dvb_ca_en50221.h> 12868736adSOlli Salonen 13868736adSOlli Salonen /* 14868736adSOlli Salonen * I2C address 15868736adSOlli Salonen * 0x40 (port 0) 16868736adSOlli Salonen * 0x41 (port 1) 17868736adSOlli Salonen */ 18868736adSOlli Salonen struct sp2_config { 19868736adSOlli Salonen /* dvb_adapter to attach the ci to */ 20868736adSOlli Salonen struct dvb_adapter *dvb_adap; 21868736adSOlli Salonen 22868736adSOlli Salonen /* function ci_control handles the device specific ci ops */ 23868736adSOlli Salonen void *ci_control; 24868736adSOlli Salonen 25868736adSOlli Salonen /* priv is passed back to function ci_control */ 26868736adSOlli Salonen void *priv; 27868736adSOlli Salonen }; 28868736adSOlli Salonen 29868736adSOlli Salonen extern int sp2_ci_read_attribute_mem(struct dvb_ca_en50221 *en50221, 30868736adSOlli Salonen int slot, int addr); 31868736adSOlli Salonen extern int sp2_ci_write_attribute_mem(struct dvb_ca_en50221 *en50221, 32868736adSOlli Salonen int slot, int addr, u8 data); 33868736adSOlli Salonen extern int sp2_ci_read_cam_control(struct dvb_ca_en50221 *en50221, 34868736adSOlli Salonen int slot, u8 addr); 35868736adSOlli Salonen extern int sp2_ci_write_cam_control(struct dvb_ca_en50221 *en50221, 36868736adSOlli Salonen int slot, u8 addr, u8 data); 37868736adSOlli Salonen extern int sp2_ci_slot_reset(struct dvb_ca_en50221 *en50221, int slot); 38868736adSOlli Salonen extern int sp2_ci_slot_shutdown(struct dvb_ca_en50221 *en50221, int slot); 39868736adSOlli Salonen extern int sp2_ci_slot_ts_enable(struct dvb_ca_en50221 *en50221, int slot); 40868736adSOlli Salonen extern int sp2_ci_poll_slot_status(struct dvb_ca_en50221 *en50221, 41868736adSOlli Salonen int slot, int open); 42868736adSOlli Salonen 43868736adSOlli Salonen #endif 44