18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PCMCIA/Cardbus */ 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#ifndef _HW_PCMCIA_H 45d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define _HW_PCMCIA_H 55d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 65d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#include "qemu-common.h" 75d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 85d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct { 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq; 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int attached; 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const char *slot_string; 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const char *card_string; 135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} PCMCIASocket; 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pcmcia_socket_register(PCMCIASocket *socket); 165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pcmcia_socket_unregister(PCMCIASocket *socket); 175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pcmcia_info(Monitor *mon); 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstruct PCMCIACardState { 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void *state; 215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PCMCIASocket *slot; 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int (*attach)(void *state); 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int (*detach)(void *state); 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const uint8_t *cis; 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int cis_len; 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Only valid if attached */ 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint8_t (*attr_read)(void *state, uint32_t address); 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*attr_write)(void *state, uint32_t address, uint8_t value); 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint16_t (*common_read)(void *state, uint32_t address); 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*common_write)(void *state, uint32_t address, uint16_t value); 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint16_t (*io_read)(void *state, uint32_t address); 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*io_write)(void *state, uint32_t address, uint16_t value); 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_DEVICE 0x01 /* 5V Device Information Tuple */ 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_NO_LINK 0x14 /* No Link Tuple */ 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_VERS_1 0x15 /* Level 1 Version Tuple */ 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_JEDEC_C 0x18 /* JEDEC ID Tuple */ 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_JEDEC_A 0x19 /* JEDEC ID Tuple */ 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_CONFIG 0x1a /* Configuration Tuple */ 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_CFTABLE_ENTRY 0x1b /* 16-bit PCCard Configuration */ 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_DEVICE_OC 0x1c /* Additional Device Information */ 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_DEVICE_OA 0x1d /* Additional Device Information */ 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_DEVICE_GEO 0x1e /* Additional Device Information */ 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_DEVICE_GEO_A 0x1f /* Additional Device Information */ 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_MANFID 0x20 /* Manufacture ID Tuple */ 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_FUNCID 0x21 /* Function ID Tuple */ 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_FUNCE 0x22 /* Function Extension Tuple */ 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_END 0xff /* Tuple End */ 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CISTPL_ENDMARK 0xff 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* dscm1xxxx.c */ 545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPCMCIACardState *dscm1xxxx_init(BlockDriverState *bdrv); 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#endif /* _HW_PCMCIA_H */ 57