cy7c67200_300_lcd.h
来自「linux嵌入式课程实践中的一个关于声卡驱动程序 。」· C头文件 代码 · 共 231 行
H
231 行
#ifndef __CY7C67200_300_LCDH_#define __CY7C67200_300_LCDH_/******************************************************************* * * DESCRIPTION: CY7C67200_300 Low-level interface header file * * AUTHOR: ARY * * HISTORY: * Created 7/3/2002 ARY * * Copyright (c) Cypress Semiconductor 2002 * *******************************************************************//** include file(s) **/#include <linux/list.h>#include <linux/spinlock.h>#include "cy7c67200_300_common.h"/** definitions **//* Endpoint definition(s) */#define MAX_NUM_ENDPOINTS 0x8/** OTG Command defines **/#define LCD_OFFER_HNP 0x00#define LCD_INITIATE_SRP 0x01/* Reserved for future use - 0x02 to 0x0F *//** HCD Command defines **/#define LCD_DISABLE_OTG_VBUS 0x10#define LCD_ENABLE_OTG_VBUS 0x11#define LCD_START_SOF 0x12#define LCD_STOP_SOF 0x13#define LCD_CHANGE_TO_PERIPHERAL_ROLE 0x14/* Reserved for future use - 0x15 to 0x1F *//** PCD Command defines **/#define LCD_CHANGE_TO_HOST_ROLE 0x20#define LCD_REMOTE_WAKEUP 0x21/* Reserved for future use - 0x22 to 0x2F *//** Shared Command defines */#define LCD_DATALINE_RESISTOR_TERMINATION 0x30/* Reserved for future use - 0x31 to 0x3F *//** Dataline Termination Resistor Defines **/#define DATALINE_TERMINATION_OFF 0x0#define DPLUS_PULLUP 0x1#define DMINUS_PULLUP 0x2#define DPLUS_PULLDOWN 0x4#define DMINUS_PULLDOWN 0x8/** Download start address **/#define DOWNLOAD_START_ADDRESS 0x04D4/** Structures **/typedef void (*lcd_callback_t)(unsigned short response, unsigned short value, int opt_arg, cy_priv_t * cy_priv_data);typedef struct lcd_lcp_entry_struct{ struct list_head list; unsigned short command; unsigned short arg[15]; unsigned short response; unsigned short value; char * buf; int len; lcd_callback_t funcptr; int opt_arg; cy_priv_t * cy_priv_data;} lcd_lcp_entry_t;typedef struct lcd_priv_data_struct{ struct list_head lcd_lcp_list; spinlock_t lcd_lock; unsigned short sie1_cb_addresses[MAX_NUM_ENDPOINTS]; unsigned short sie2_cb_addresses[MAX_NUM_ENDPOINTS];} lcd_priv_data_t;typedef struct lcd_int_data_struct{ unsigned short int_num; unsigned short reg[14];} lcd_int_data_t;/** Prototypes **/unsigned short lcd_get_cb_address(unsigned short port_num, int endpoint, cy_priv_t * cy_private_data);int lcd_init(char * download_data, int download_length, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_complete_lcp_entry(cy_priv_t * cy_private_data);int lcd_command(int command, int command_arg, unsigned short port_number, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_send_data(unsigned short chip_addr, unsigned short port_number, unsigned short endpoint, int byte_length, char * data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_recv_data(unsigned short chip_addr, unsigned short port_number, unsigned short endpoint, int byte_length, char * data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_send_tdlist(unsigned short chip_addr, int port_number, int byte_length, char * data, cy_priv_t * cy_private_data);int lcd_get_tdstatus(unsigned short chip_addr, int byte_length, char * data, cy_priv_t * cy_private_data);int lcd_read_memory(unsigned short chip_addr, int byte_length, char * data, cy_priv_t * cy_private_data);int lcd_write_memory(unsigned short chip_addr, int byte_length, char * data, cy_priv_t * cy_private_data);int lcd_read_xmemory(unsigned short xmem_addr, unsigned short byte_length, char * data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_write_xmemory(unsigned short xmem_addr, unsigned short byte_length, char * data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_read_reg(unsigned short reg_addr, unsigned short *reg_value, cy_priv_t * cy_private_data);int lcd_write_reg(unsigned short reg_addr, unsigned short reg_value, cy_priv_t * cy_private_data);int lcd_exec_interrupt(lcd_int_data_t *int_data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);int lcd_download_code(unsigned short chip_addr, int byte_length, char * data, lcd_callback_t funcptr, int opt_arg, cy_priv_t * cy_private_data);void lcd_hpi_write_word(unsigned short chip_addr, unsigned short value, cy_priv_t * cy_private_data);unsigned short lcd_hpi_read_word(unsigned short chip_addr, cy_priv_t * cy_private_data);void lcd_hpi_write_words(unsigned short chip_addr, unsigned short * data, int num_words, cy_priv_t * cy_private_data);void lcd_hpi_read_words(unsigned short chip_addr, unsigned short * data, int num_words, cy_priv_t * cy_private_data);void lcd_hpi_write_mbx(unsigned short value, cy_priv_t * cy_private_data);unsigned short lcd_hpi_read_mbx(cy_priv_t * cy_private_data);unsigned short lcd_hpi_read_status_reg(cy_priv_t * cy_private_data);void lcd_hpi_write_status_reg(unsigned short value, cy_priv_t * cy_private_data);extern void cy67x00_int_handler(int irq, void * cy_priv, struct pt_regs * r);#endif /* __CY7C67200_300_LCDH_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?