/* $NetBSD: emdtvreg.h,v 1.2 2014/06/21 03:44:06 dholland Exp $ */

/*-
* Copyright (c) 2008 Jared D. McNeill <[email protected]>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the
*    documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

#ifndef _DEV_USB_EMDTVREG_H
#define _DEV_USB_EMDTVREG_H

struct emdtv_eeprom {
       uint32_t        id;     /* 0x9567eb1a */
       uint16_t        vendor;
       uint16_t        product;
       uint16_t        chipcfg;
       uint16_t        boardcfg;
       uint16_t        string[3];
       uint8_t         stringidx;
} __packed;

#define EM28XX_I2C_ADDR_EEPROM  0xa0

#define EM28XX_UR_I2C           0x02

#define EM28XX_REG_I2C_STATUS   0x05

#define EM28XX_I2C_CLK_REG      0x06
#define EM28XX_XCLK_REG         0x0f

#define EM28XX_REG_IR           0x45
#define         EM28XX_IR_RECORD        0x00
#define         EM28XX_IR_PAUSEPLAY     0x01
#define         EM28XX_IR_STOP          0x02
#define         EM28XX_IR_POWER         0x03
#define         EM28XX_IR_PREV          0x04
#define         EM28XX_IR_REWIND        0x05
#define         EM28XX_IR_FORWARD       0x06
#define         EM28XX_IR_NEXT          0x07
#define         EM28XX_IR_EPG           0x08
#define         EM28XX_IR_HOME          0x09
#define         EM28XX_IR_DVDMENU       0x0a
#define         EM28XX_IR_CHANNEL_UP    0x0b
#define         EM28XX_IR_BACK          0x0c
#define         EM28XX_IR_UP            0x0d
#define         EM28XX_IR_INFO          0x0e
#define         EM28XX_IR_CHANNEL_DOWN  0x0f
#define         EM28XX_IR_LEFT          0x10
#define         EM28XX_IR_OK            0x11
#define         EM28XX_IR_RIGHT         0x12
#define         EM28XX_IR_VOLUME_UP     0x13
#define         EM28XX_IR_LAST          0x14
#define         EM28XX_IR_DOWN          0x15
#define         EM28XX_IR_VOLUME_MUTE   0x16
#define         EM28XX_IR_VOLUME_DOWN   0x17

#endif /* !_DEV_USB_EMDTVREG_H */