18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Intel XScale PXA255/270 processor support. 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 2006 Openedhand Ltd. 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Written by Andrzej Zaborowski <balrog@zabor.org> 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * This code is licenced under the GNU GPL v2. 88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PXA_H 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA_H "pxa.h" 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Interrupt numbers */ 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_SSP3 0 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_USBH2 2 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_USBH1 3 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_KEYPAD 4 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_PWRI2C 6 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA25X_PIC_HWUART 7 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA27X_PIC_OST_4_11 7 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_GPIO_0 8 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_GPIO_1 9 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_GPIO_X 10 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_I2S 13 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA26X_PIC_ASSP 15 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA25X_PIC_NSSP 16 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA27X_PIC_SSP2 16 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_LCD 17 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_I2C 18 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_ICP 19 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_STUART 20 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_BTUART 21 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_FFUART 22 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_MMC 23 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_SSP 24 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_DMA 25 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_OST_0 26 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_RTC1HZ 30 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_PIC_RTCALARM 31 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* DMA requests */ 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_I2S 2 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_I2S 3 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_BTUART 4 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_BTUART 5 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_FFUART 6 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_FFUART 7 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_SSP1 13 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_SSP1 14 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_SSP2 15 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_SSP2 16 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_ICP 17 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_ICP 18 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_STUART 19 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_STUART 20 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_MMCI 21 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_MMCI 22 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_USB_RQ(x) ((x) + 24) 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_RX_RQ_SSP3 66 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_TX_RQ_SSP3 67 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_SDRAM_BASE 0xa0000000 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_INTERNAL_BASE 0x5c000000 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PXA2XX_INTERNAL_SIZE 0x40000 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_pic.c */ 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectqemu_irq *pxa2xx_pic_init(target_phys_addr_t base, CPUState *env); 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_timer.c */ 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid pxa25x_timer_init(target_phys_addr_t base, qemu_irq *irqs); 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid pxa27x_timer_init(target_phys_addr_t base, qemu_irq *irqs, qemu_irq irq4); 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_gpio.c */ 735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxGPIOInfo PXA2xxGPIOInfo; 745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxGPIOInfo *pxa2xx_gpio_init(target_phys_addr_t base, 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project CPUState *env, qemu_irq *pic, int lines); 765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerqemu_irq *pxa2xx_gpio_in_get(PXA2xxGPIOInfo *s); 775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa2xx_gpio_out_set(PXA2xxGPIOInfo *s, 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int line, qemu_irq handler); 795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa2xx_gpio_read_notifier(PXA2xxGPIOInfo *s, qemu_irq handler); 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_dma.c */ 825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxDMAState PXA2xxDMAState; 835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxDMAState *pxa255_dma_init(target_phys_addr_t base, 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq); 855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxDMAState *pxa27x_dma_init(target_phys_addr_t base, 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq); 875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa2xx_dma_request(PXA2xxDMAState *s, int req_num, int on); 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_lcd.c */ 905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxLCDState PXA2xxLCDState; 915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxLCDState *pxa2xx_lcdc_init(target_phys_addr_t base, 925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner qemu_irq irq); 935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa2xx_lcd_vsync_notifier(PXA2xxLCDState *s, qemu_irq handler); 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid pxa2xx_lcdc_oritentation(void *opaque, int angle); 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_mmci.c */ 975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxMMCIState PXA2xxMMCIState; 985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxMMCIState *pxa2xx_mmci_init(target_phys_addr_t base, 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project BlockDriverState *bd, qemu_irq irq, void *dma); 1005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa2xx_mmci_handlers(PXA2xxMMCIState *s, qemu_irq readonly, 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq coverswitch); 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_pcmcia.c */ 1045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxPCMCIAState PXA2xxPCMCIAState; 1055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxPCMCIAState *pxa2xx_pcmcia_init(target_phys_addr_t base); 1065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint pxa2xx_pcmcia_attach(void *opaque, PCMCIACardState *card); 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint pxa2xx_pcmcia_dettach(void *opaque); 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid pxa2xx_pcmcia_set_irq_cb(void *opaque, qemu_irq irq, qemu_irq cd_irq); 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx_keypad.c */ 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct keymap { 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int column; 1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int row; 1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 1155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxKeyPadState PXA2xxKeyPadState; 1165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base, 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq); 1185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid pxa27x_register_keypad(PXA2xxKeyPadState *kp, struct keymap *map, 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int size); 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pxa2xx.c */ 1225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxI2CState PXA2xxI2CState; 1235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxI2CState *pxa2xx_i2c_init(target_phys_addr_t base, 1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq, uint32_t page_size); 1255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turneri2c_bus *pxa2xx_i2c_bus(PXA2xxI2CState *s); 1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxI2SState PXA2xxI2SState; 1285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct PXA2xxFIrState PXA2xxFIrState; 1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnertypedef struct { 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project CPUState *env; 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq *pic; 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq reset; 1345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxDMAState *dma; 1355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxGPIOInfo *gpio; 1365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxLCDState *lcd; 1375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner SSIBus **ssp; 1385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxI2CState *i2c[2]; 1395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxMMCIState *mmc; 1405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxPCMCIAState *pcmcia[2]; 1415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxI2SState *i2s; 1425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxFIrState *fir; 1435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxKeyPadState *kp; 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Power management */ 1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project target_phys_addr_t pm_base; 1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t pm_regs[0x40]; 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Clock management */ 1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project target_phys_addr_t cm_base; 1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t cm_regs[4]; 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t clkcfg; 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Memory management */ 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project target_phys_addr_t mm_base; 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t mm_regs[0x1a]; 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Performance monitoring */ 1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t pmnc; 1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Real-Time clock */ 1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project target_phys_addr_t rtc_base; 1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t rttr; 1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t rtsr; 1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t rtar; 1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t rdar1; 1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t rdar2; 1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t ryar1; 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t ryar2; 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t swar1; 1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t swar2; 1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t piar; 1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t last_rcnr; 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t last_rdcr; 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t last_rycr; 1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t last_swcr; 1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t last_rtcpicr; 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int64_t last_hz; 1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int64_t last_sw; 1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int64_t last_pi; 1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_hz; 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_rdal1; 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_rdal2; 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_swal1; 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_swal2; 1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project QEMUTimer *rtc_pi; 1875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} PXA2xxState; 1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstruct PXA2xxI2SState { 1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq; 1915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PXA2xxDMAState *dma; 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*data_req)(void *, int, int); 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t control[2]; 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t status; 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t mask; 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t clk; 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int enable; 2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int rx_len; 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int tx_len; 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*codec_out)(void *, uint32_t); 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t (*codec_in)(void *); 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void *opaque; 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int fifo_len; 2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t fifo[16]; 2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PA_FMT "0x%08lx" 2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define REG_FMT "0x" TARGET_FMT_plx 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxState *pxa270_init(unsigned int sdram_size, const char *revision); 2145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' TurnerPXA2xxState *pxa255_init(unsigned int sdram_size); 2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* usb-ohci.c */ 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid usb_ohci_init_pxa(target_phys_addr_t base, int num_ports, int devfn, 2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project qemu_irq irq); 2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PXA_H */ 221