162 lines
5.0 KiB
C
Executable File
Vendored
162 lines
5.0 KiB
C
Executable File
Vendored
/*
|
|
* MsDevice.h- Sigmastar
|
|
*
|
|
* Copyright (C) 2018 Sigmastar Technology Corp.
|
|
*
|
|
* Author: karl.xiao <karl.xiao@sigmastar.com.tw>
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef __PRANA_DEVICE_H__
|
|
#define __PRANA_DEVICE_H__
|
|
|
|
#include "MsTypes.h"
|
|
|
|
#define DEVICE_NULL ((device_t)0)
|
|
|
|
typedef unsigned long device_t;
|
|
|
|
//
|
|
// device PM event
|
|
//
|
|
typedef enum
|
|
{
|
|
E_EVT_SUSPEND = 1,
|
|
E_EVT_SHUTDOWN = 2,
|
|
} eDEVEVT;
|
|
|
|
//
|
|
// poll types
|
|
//
|
|
|
|
#ifndef POLLIN
|
|
#define POLLIN 0x01
|
|
#endif
|
|
|
|
#ifndef POLLOUT
|
|
#define POLLOUT 0x02
|
|
#endif
|
|
|
|
#ifndef POLLHUP
|
|
#define POLLHUP 0x04
|
|
#endif
|
|
|
|
//
|
|
// device I/O operations
|
|
//
|
|
struct devio
|
|
{
|
|
int (*open) (device_t dev, int mode);
|
|
int (*close)(device_t dev);
|
|
// int (*read) (device_t dev, char *buf, size_t len, int off);
|
|
int (*read) (device_t dev, char *buf, MS_U32 len, int off);
|
|
// int (*write)(device_t dev, const char *buf, size_t len, int off);
|
|
int (*write)(device_t dev, const char *buf, MS_U32 len, int off);
|
|
int (*poll) (device_t dev, int types);
|
|
int (*ioctl)(device_t dev, int request, unsigned long arg);
|
|
int (*event)(eDEVEVT evt);
|
|
};
|
|
|
|
|
|
#define DEVICE_MAGIC (('D' << 24) | ('E' << 16) | ('V' << 8) | 'I')
|
|
|
|
//
|
|
// device structure
|
|
//
|
|
#if 0
|
|
struct device
|
|
{
|
|
int magic; // magic number
|
|
int refcnt; // reference count
|
|
int flags; // device characteristics
|
|
struct devio *devio; // device i/o table
|
|
};
|
|
#endif
|
|
|
|
#define device_valid(dev) ((dev)->magic == DEVICE_MAGIC)
|
|
#endif /* __PRANA_DEVICE_H__ */
|
|
|
|
//MSTAR Module ID
|
|
/*******************************************************************************
|
|
!!!! WARNING NOT ALLOW MODIFY EXISTED VALUE !!!!
|
|
!!!! ONLY ALLOW ADD NEW VALUE AFTER END OF THIS LIST !!!!
|
|
*******************************************************************************/
|
|
#define MS_MODULE_HW 0x0000
|
|
|
|
#define MS_MODULE_CHIPTOP 0x0011
|
|
#define MS_MODULE_MIU 0x0012
|
|
#define MS_MODULE_WDT 0x003C
|
|
#define MS_MODULE_CFG 0x00F0 // Chip hard configuration info
|
|
#define MS_MODULE_OTP 0x00F4
|
|
#define MS_MODULE_SPRAM 0x00F5
|
|
|
|
#define MS_MODULE_ACE 0x0101
|
|
#define MS_MODULE_AUDIO 0x0102
|
|
#define MS_MODULE_AVD 0x0103
|
|
#define MS_MODULE_BDMA 0x0104
|
|
#define MS_MODULE_DLC 0x0105
|
|
#define MS_MODULE_FLASH 0x0106
|
|
#define MS_MODULE_GE 0x0107
|
|
#define MS_MODULE_GOP 0x0108
|
|
#define MS_MODULE_HVD 0x0109
|
|
#define MS_MODULE_HWI2C 0x010a
|
|
#define MS_MODULE_IR 0x010b
|
|
#define MS_MODULE_IRQ 0x010c
|
|
#define MS_MODULE_JPD 0x010d
|
|
#define MS_MODULE_MBX 0x010e
|
|
#define MS_MODULE_MVD 0x010f
|
|
#define MS_MODULE_MVOP 0x0120
|
|
#define MS_MODULE_RVD 0x0122
|
|
#define MS_MODULE_SC 0x0123
|
|
#define MS_MODULE_TSP 0x0124
|
|
#define MS_MODULE_UART 0x0125
|
|
#define MS_MODULE_VPU 0x0126
|
|
#define MS_MODULE_XC 0x0127
|
|
#define MS_MODULE_PNL 0x0128
|
|
#define MS_MODULE_ISP 0x0129
|
|
#define MS_MODULE_PFSH 0x012a
|
|
#define MS_MODULE_GPIO 0x012b
|
|
#define MS_MODULE_PM 0x012c
|
|
#define MS_MODULE_VBI 0x012d
|
|
#define MS_MODULE_PCMCIA 0x012e
|
|
#define MS_MODULE_PIU 0x012f
|
|
#define MS_MODULE_MHEG5 0x0130
|
|
#define MS_MODULE_RTC_0 0x0131
|
|
#define MS_MODULE_RTC_2 0x0132
|
|
#define MS_MODULE_VIF 0x0133
|
|
#define MS_MODULE_MFE 0x0134
|
|
#define MS_MODULE_DIP 0x0135
|
|
#define MS_MODULE_RASP 0x0136
|
|
#define MS_MODULE_MMFILEIN 0x0137
|
|
#define MS_MODULE_MPIF 0x0138
|
|
#define MS_MODULE_GPD 0x0139
|
|
#define MS_MODULE_TSO 0x013a
|
|
#define MS_MODULE_IMI 0x013b // for C3
|
|
|
|
|
|
#define MS_MODULE_SEM 0x02f0
|
|
|
|
#define MS_MODULE_CA 0x0300 // CA reserved
|
|
#define MS_MODULE_NDS 0x0310 // NDS
|
|
#define MS_MODULE_NSK 0x0311
|
|
#define MS_MODULE_CAM 0x0312
|
|
#define MS_MODULE_NGA 0x0313
|
|
|
|
#define MS_MODULE_PWM 0x1032
|
|
#define MS_MODULE_DMD 0x1033
|
|
#define MS_MODULE_PWS 0x1034
|
|
#define MS_MODULE_EFUSE 0x1035
|
|
|
|
#define MS_MODULE_FRC 0x2000 // A5 only
|
|
|
|
|