3 * Copyright (c) 2016 ITE Corporation. All rights reserved.
9 * The structure and IO code for IO control call.
13 #ifndef __IOCONTROL_H__
14 #define __IOCONTROL_H__
19 /* Use 'k' as magic number */
20 #define AFA_IOC_MAGIC 'k'
26 __u32 registerAddress
;
31 } WriteRegistersRequest
, *PWriteRegistersRequest
;
36 __u32 registerAddress
;
41 } TxWriteRegistersRequest
, *PTxWriteRegistersRequest
;
50 } TxWriteEepromValuesRequest
, *PTxWriteEepromValuesRequest
;
55 __u32 registerAddress
;
60 } ReadRegistersRequest
, *PReadRegistersRequest
;
65 __u32 registerAddress
;
70 } TxReadRegistersRequest
, *PTxReadRegistersRequest
;
79 } TxReadEepromValuesRequest
, *PTxReadEepromValuesRequest
;
87 } AcquireChannelRequest
, *PAcquireChannelRequest
;
91 Byte transmissionMode
;
97 } TxSetModuleRequest
, *PTxSetModuleRequest
;
105 } TxAcquireChannelRequest
, *PTxAcquireChannelRequest
;
111 } TxModeRequest
, *PTxModeRequest
;
117 } TxSetDeviceTypeRequest
, *PTxSetDeviceTypeRequest
;
123 } TxGetDeviceTypeRequest
, *PTxGetDeviceTypeRequest
;
128 } TxSetGainRequest
, *PTxSetGainRequest
;
135 } IsLockedRequest
, *PIsLockedRequest
;
138 Byte
* platformLength
;
142 } AcquirePlatformRequest
, *PAcquirePlatformRequest
;
150 } AddPidAtRequest
, *PAddPidAtRequest
;
158 } TxAddPidAtRequest
, *PTxAddPidAtRequest
;
164 } ResetPidRequest
, *PResetPidRequest
;
170 } TxResetPidRequest
, *PTxResetPidRequest
;
174 __u32 channelStatisticAddr
; // ChannelStatistic*
177 } GetChannelStatisticRequest
, *PGetChannelStatisticRequest
;
184 } GetStatisticRequest
, *PGetStatisticRequest
;
191 } ControlPidFilterRequest
, *PControlPidFilterRequest
;
198 } TxControlPidFilterRequest
, *PTxControlPidFilterRequest
;
205 } ControlPowerSavingRequest
, *PControlPowerSavingRequest
;
212 } TxControlPowerSavingRequest
, *PTxControlPowerSavingRequest
;
215 Byte DriverVerion
[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
216 Byte APIVerion
[32]; /** XX.XX.XXXXXXXX.XX Ex., 1.2.3.4 */
217 Byte FWVerionLink
[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
218 Byte FWVerionOFDM
[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
219 Byte DateTime
[24]; /** Ex.,"2004-12-20 18:30:00" or "DEC 20 2004 10:22:10" with compiler __DATE__ and __TIME__ definitions */
220 Byte Company
[8]; /** Ex.,"ITEtech" */
221 Byte SupportHWInfo
[32]; /** Ex.,"Jupiter DVBT/DVBH" */
224 } TxModDriverInfo
, *PTxModDriverInfo
;
231 } TxStartTransferRequest
, *PTxStartTransferRequest
;
237 } TxStopTransferRequest
, *PTxStopTransferRequest
;
241 __u32 cmdAddr
; // Byte*
244 } TxCmdRequest
, *PTxCmdRequest
;
253 } TxGetGainRangeRequest
, *PTxGetGainRangeRequest
;
259 } TxGetTPSRequest
, *PTxGetTPSRequest
;
266 } TxSetTPSRequest
, *PTxSetTPSRequest
;
272 } TxGetOutputGainRequest
, *PTxGetOutputGainRequest
;
278 } TxSendHwPSITableRequest
, *PTxSendHwPSITableRequest
;
285 } TxAccessFwPSITableRequest
, *PTxAccessFwPSITableRequest
;
292 } TxSetFwPSITableTimerRequest
, *PTxSetFwPSITableTimerRequest
;
295 __u32 pBufferAddr
; // Byte*
296 __u32 pdwBufferLength
;
299 } TxSetLowBitRateTransferRequest
, *PTxSetLowBitRateTransferRequest
;
302 __u32 pIQtableAddr
; // Byte*
306 } TxSetIQTableRequest
, *PTxSetIQTableRequest
;
313 } TxSetDCCalibrationValueRequest
, *PTxSetDCCalibrationValueRequest
;
319 } TxGetChipTypeRequest
, *PTxGetChipTypeRequest
;
322 __u32 isdbtModulationAddr
; // ISDBTModulation
325 } TXSetISDBTChannelModulationRequest
, *PTXSetISDBTChannelModulationRequest
;
332 } TXSetTMCCInfoRequest
, *PTXSetTMCCInfoRequest
;
338 } TXGetTMCCInfoRequest
, *PTXGetTMCCInfoRequest
;
344 } TXGetTSinputBitRateRequest
, *PTXGetTSinputBitRateRequest
;
349 TransportLayer layer
;
352 } TXAddPidToISDBTPidFilterRequest
, *PTXAddPidToISDBTPidFilterRequest
;
358 } TxSetPcrModeRequest
, *PTxSetPcrModeRequest
;
361 __u32 pDCtableAddr
; // Byte*
362 __u32 pOFStableAddr
; // Byte*
363 Word tableGroups
; //Number of DCtable groups;
366 } TxSetDCTableRequest
, *PTxSetDCTableRequest
;
372 } TxGetFrequencyIndexRequest
, *PTxGetFrequencyIndexRequest
;
378 } TxGetDTVModeRequest
, *PTxGetDTVModeRequest
;
384 } TxEnableTpsEncryptionRequest
, *PTxEnableTpsEncryptionRequest
;
389 } TxDisableTpsEncryptionRequest
, *PTxDisableTpsEncryptionRequest
;
396 } TxSetDecryptRequest
, *PTxSetDecryptRequest
;
400 Word startAddressOffset
;
405 } IT9560WriteEepromValuesRequest
, *PIT9560WriteEepromValuesRequest
;
409 Word startAddressOffset
;
414 } IT9560ReadEepromValuesRequest
, *PIT9560ReadEepromValuesRequest
;
418 Dword registerAddress
;
423 } IT9560WriteRegistersRequest
, *PIT9560WriteRegistersRequest
;
427 Dword registerAddress
;
432 } IT9560ReadRegistersRequest
, *PIT9560ReadRegistersRequest
;
438 } IT9560GetStatisticRequest
, *PIT9560GetStatisticRequest
;
447 } TxAcquireChannelDualRequest
, *PTxAcquireChannelDualRequest
;
450 * Modulator & Demodulator API commands
452 #define IOCTRL_ITE_GROUP_STANDARD 0x000
453 #define IOCTRL_ITE_GROUP_DVBT 0x100
454 #define IOCTRL_ITE_GROUP_DVBH 0x200
455 #define IOCTRL_ITE_GROUP_FM 0x300
456 #define IOCTRL_ITE_GROUP_TDMB 0x400
457 #define IOCTRL_ITE_GROUP_OTHER 0x500
458 #define IOCTRL_ITE_GROUP_ISDBT 0x600
459 #define IOCTRL_ITE_GROUP_SECURITY 0x700
462 /***************************************************************************/
464 /***************************************************************************/
467 * Modulator Set Modulation.
468 * Paramters: TxSetModuleRequest struct
470 #define IOCTL_ITE_MOD_SETMODULE \
471 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x21, TxSetModuleRequest)
474 * Modulator Acquire Channel.
475 * Paramters: TxAcquireChannelRequest struct
477 #define IOCTL_ITE_MOD_ACQUIRECHANNEL \
478 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x22, TxAcquireChannelRequest)
481 * Modulator Null Packet Enable.
482 * Paramters: TxModeRequest struct
484 #define IOCTL_ITE_MOD_ENABLETXMODE \
485 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x23, TxModeRequest)
488 * Read a sequence of bytes from the contiguous registers in demodulator.
489 * Paramters: ReadRegistersRequest struct
491 #define IOCTL_ITE_MOD_READREGISTERS \
492 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x24, TxReadRegistersRequest)
495 * Write a sequence of bytes to the contiguous registers in demodulator.
496 * Paramters: TxWriteRegistersRequest struct
498 #define IOCTL_ITE_MOD_WRITEREGISTERS \
499 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x27, TxWriteRegistersRequest)
502 * Modulator Device Type Setting.
503 * Paramters: TxSetDeviceTypeRequest struct
505 #define IOCTL_ITE_MOD_SETDEVICETYPE \
506 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x28, TxSetDeviceTypeRequest)
509 * Modulator Device Type Getting.
510 * Paramters: TxGetDeviceTypeRequest struct
512 #define IOCTL_ITE_MOD_GETDEVICETYPE \
513 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x29, TxGetDeviceTypeRequest)
516 * Modulator Set Gain Range.
517 * Paramters: TxSetGainRequest struct
519 #define IOCTL_ITE_MOD_ADJUSTOUTPUTGAIN \
520 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x2B, TxSetGainRequest)
523 * Modulator Get Gain Range.
524 * Paramters: TxGetGainRangeRequest struct
526 #define IOCTL_ITE_MOD_GETGAINRANGE \
527 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x2C, TxGetGainRangeRequest)
530 * Modulator Get Output Gain Range.
531 * Paramters: TxGetOutputGainRangeRequest struct
533 #define IOCTL_ITE_MOD_GETOUTPUTGAIN \
534 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x2D, TxGetOutputGainRequest)
537 * Paramters: TxControlPowerSavingRequest struct
539 #define IOCTL_ITE_MOD_CONTROLPOWERSAVING \
540 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x2F, TxControlPowerSavingRequest)
543 * Write a sequence of bytes to the contiguous cells in the EEPROM.
544 * Paramters: WriteEepromValuesRequest struct
546 #define IOCTL_ITE_MOD_WRITEEEPROMVALUES \
547 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x31, TxWriteEepromValuesRequest)
550 * Read a sequence of bytes from the contiguous cells in the EEPROM.
551 * Paramters: ReadEepromValuesRequest struct
553 #define IOCTL_ITE_MOD_READEEPROMVALUES \
554 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x32, TxReadEepromValuesRequest)
557 * Get Chip Type IT9507/IT9503 in modulator.
558 * Paramters: TxGetChipTypeRequest struct
560 #define IOCTL_ITE_MOD_GETCHIPTYPE \
561 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x3B, TxGetChipTypeRequest)
564 * Acquire Channel Dual IT9507/IT9503 in modulator.
565 * Paramters: TxAcquireChannelDual struct
567 #define IOCTL_ITE_MOD_ACQUIRECHANNELDUAL \
568 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_STANDARD + 0x3C, TxAcquireChannelDualRequest)
571 /***************************************************************************/
573 /***************************************************************************/
576 * Add PID to PID filter.
577 * Paramters: AddPidAtRequest struct
579 #define IOCTL_ITE_MOD_ADDPIDAT \
580 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_DVBT + 0x08, TxAddPidAtRequest)
583 * Reset PID from PID filter.
584 * Paramters: ResetPidRequest struct
586 #define IOCTL_ITE_MOD_RESETPID \
587 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_DVBT + 0x10, TxResetPidRequest)
591 * Paramters: TxControlPidFilterRequest struct
593 #define IOCTL_ITE_MOD_CONTROLPIDFILTER \
594 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_DVBT + 0x11, TxControlPidFilterRequest)
597 * Enable Set IQTable From File.
598 * Paramters: TxSetIQTableRequest struct
600 #define IOCTL_ITE_MOD_SETIQTABLE \
601 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_DVBT + 0x12, TxSetIQTableRequest)
604 * Enable Set DC Calibration Value From File.
605 * Paramters: TxSetDCCalibrationValueRequest struct
607 #define IOCTL_ITE_MOD_SETDCCALIBRATIONVALUE \
608 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_DVBT + 0x13, TxSetDCCalibrationValueRequest)
611 /***************************************************************************/
613 /***************************************************************************/
616 * Start Transfer data stream
617 * Paramters: StartTransferRequest struct
619 #define IOCTL_ITE_MOD_STARTTRANSFER \
620 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x07, TxStartTransferRequest)
623 * Stop capture data stream
624 * Paramters: StopTransferRequest struct
626 #define IOCTL_ITE_MOD_STOPTRANSFER \
627 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x08, TxStopTransferRequest)
630 * Modulator: Get Driver information.
631 * Paramters: TxModDriverInfo struct
633 #define IOCTL_ITE_MOD_GETDRIVERINFO \
634 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x09, TxModDriverInfo)
637 * Modulator: Set Start Transfer data Streaming.
638 * Paramters: StopTransferRequest struct
640 #define IOCTL_ITE_MOD_STARTTRANSFER_CMD \
641 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0A, TxStartTransferRequest)
644 * Modulator: Set Stop Transfer data Streaming.
645 * Paramters: TxStopTransferRequest struct
647 #define IOCTL_ITE_MOD_STOPTRANSFER_CMD \
648 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0B, TxStopTransferRequest)
651 * Modulator: Set Command.
652 * Paramters: TxCmdRequest struct
654 #define IOCTL_ITE_MOD_WRITE_CMD \
655 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0C, TxCmdRequest)
658 * Modulator: Get TPS.
659 * Paramters: TxGetTPSRequest struct
661 #define IOCTL_ITE_MOD_GETTPS \
662 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0D, TxGetTPSRequest)
665 * Modulator: Set TPS.
666 * Paramters: TxSetTPSRequest struct
668 #define IOCTL_ITE_MOD_SETTPS \
669 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0E, TxSetTPSRequest)
672 * Modulator: Send PSI Table to Hardware.
673 * Paramters: TxSetTPSRequest struct
675 #define IOCTL_ITE_MOD_SENDHWPSITABLE \
676 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x0F, TxSendHwPSITableRequest)
679 * Modulator: Access PSI Table to firmware.
680 * Paramters: TxSetTPSRequest struct
682 #define IOCTL_ITE_MOD_ACCESSFWPSITABLE \
683 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x10, TxAccessFwPSITableRequest)
686 * Modulator: Access PSI Table to firmware.
687 * Paramters: TxSetTPSRequest struct
689 #define IOCTL_ITE_MOD_SETFWPSITABLETIMER \
690 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x11, TxSetFwPSITableTimerRequest)
693 * Modulator: Write Low Bit Rate Date.
694 * Paramters: TxSetLowBitRateTransferRequest struct
696 #define IOCTL_ITE_MOD_WRITE_LOWBITRATEDATA \
697 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x12, TxSetLowBitRateTransferRequest)
700 * Modulator: Set PCR Mode.
701 * Paramters: TxSetPcrModeRequest struct
703 #define IOCTL_ITE_MOD_SETPCRMODE \
704 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x13, TxSetPcrModeRequest)
707 * Modulator: Set DC Table.
708 * Paramters: TxSetPcrModeRequest struct
710 #define IOCTL_ITE_MOD_SETDCTABLE \
711 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x14, TxSetDCTableRequest)
714 * Enable Get Frequency Index Value From API.
715 * Paramters: GetFrequencyIndexRequest struct
717 #define IOCTL_ITE_MOD_GETFREQUENCYINDEX \
718 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x15, TxGetFrequencyIndexRequest)
721 * Enable Set IT9560 Get Statistic From API.
722 * Paramters: IT9560GetStatisticRequest struct
724 #define IOCTL_ITE_BB_IT9560_GETSTATISTIC \
725 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x17, IT9560GetStatisticRequest)
728 * Enable Set IT9560 Write EEPROM Data From API.
729 * Paramters: IT9560WriteEepromValuesRequest struct
731 #define IOCTL_ITE_BB_IT9560_WRITEEEPROMVALUES \
732 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x18, IT9560WriteEepromValuesRequest)
735 * Enable Set IT9560 Read EEPROM Data From API.
736 * Paramters: IT9560WriteEepromValuesRequest struct
738 #define IOCTL_ITE_BB_IT9560_READEEPROMVALUES \
739 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x19, IT9560ReadEepromValuesRequest)
742 * Enable Set IT9560 Write Register From API.
743 * Paramters: IT9560WriteRegistersRequest struct
745 #define IOCTL_ITE_BB_IT9560_WRITEREGISTERS \
746 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x20, IT9560WriteRegistersRequest)
749 * Enable Set IT9560 Read Register From API.
750 * Paramters: IT9560ReadRegistersRequest struct
752 #define IOCTL_ITE_BB_IT9560_READREGISTERS \
753 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_OTHER + 0x21, IT9560ReadRegistersRequest)
756 /***************************************************************************/
758 /***************************************************************************/
760 * Set ISDB-T Channel Modulation.
761 * Paramters: TXSetISDBTChannelModulationRequest struct
763 #define IOCTL_ITE_MOD_SETISDBTCHANNELMODULATION \
764 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x00, TXSetISDBTChannelModulationRequest)
767 * Set TMCC Information.
768 * Paramters: TXSetTMCCInfoRequest struct
770 #define IOCTL_ITE_MOD_SETTMCCINFO \
771 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x01, TXSetTMCCInfoRequest)
774 * Get TMCC Information.
775 * Paramters: TXGetTMCCInfoRequest struct
777 #define IOCTL_ITE_MOD_GETTMCCINFO \
778 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x02, TXGetTMCCInfoRequest)
781 * Get TS Input Bit Rate.
782 * Paramters: TXGetTSinputBitRate struct
784 #define IOCTL_ITE_MOD_GETTSINPUTBITRATE \
785 _IOR(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x03, TXGetTSinputBitRateRequest)
788 * Get Add Pid To ISDBT Pid Filter.
789 * Paramters: TXGetTSinputBitRate struct
791 #define IOCTL_ITE_MOD_ADDPIDTOISDBTPIDFILTER \
792 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x04, TXAddPidToISDBTPidFilterRequest)
796 * Paramters: TxGetDTVModeRequest struct
798 #define IOCTL_ITE_MOD_GETDTVMODE \
799 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_ISDBT + 0x05, TxGetDTVModeRequest)
801 /***************************************************************************/
803 /***************************************************************************/
805 * Enable TPS Encryption.
806 * Paramters: TxEnableTpsEncryptionRequest struct
808 #define IOCTL_ITE_MOD_ENABLETPSENCRYPTION \
809 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_SECURITY + 0x01, TxEnableTpsEncryptionRequest)
812 * Disable TPS Encryption.
813 * Paramters: TxDisableTpsEncryptionRequest struct
815 #define IOCTL_ITE_MOD_DISABLETPSENCRYPTION \
816 _IOW(AFA_IOC_MAGIC, IOCTRL_ITE_GROUP_SECURITY + 0x02, TxDisableTpsEncryptionRequest)