aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/Palm/Device/EZAustin
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/Palm/Device/EZAustin')
-rw-r--r--SrcShared/Palm/Device/EZAustin/IncsPrv/HardwareAustin.h214
-rw-r--r--SrcShared/Palm/Device/EZAustin/IncsPrv/SED1375Hwr.h240
2 files changed, 454 insertions, 0 deletions
diff --git a/SrcShared/Palm/Device/EZAustin/IncsPrv/HardwareAustin.h b/SrcShared/Palm/Device/EZAustin/IncsPrv/HardwareAustin.h
new file mode 100644
index 0000000..f08fe36
--- /dev/null
+++ b/SrcShared/Palm/Device/EZAustin/IncsPrv/HardwareAustin.h
@@ -0,0 +1,214 @@
+/******************************************************************************
+ *
+ * Copyright (c) 1995-1999 Palm Computing, Inc. or its subsidiaries.
+ * All rights reserved.
+ *
+ * File: HardwareAustin.h
+ *
+ * Description:
+ * Hardware Equates for the EZ (Austin) platform. This header file
+ * contains equates specific to Hardware platform EZ.
+ *
+ * History:
+ * 03/04/99 ben Created from HardwareEZ.h
+ * 07/15/99 kwk Added hwrDigitizerWidth & hwrDigitizerHeight.
+ *
+ *****************************************************************************/
+
+#ifdef NON_PORTABLE // So app's don't mistakenly include this
+
+#ifndef __HARDWAREAUSTIN_H__
+#define __HARDWAREAUSTIN_H__
+
+
+/***********************************************************************
+ * EZ Rev of the Pilot Hardware
+ ***********************************************************************/
+#define hwr68328Base 0xFFFFF000L // Base address of 68328
+
+// Define the base of card 0 and the size of each card slot.
+#define hwrCardBase0 0x00000000L // starts here (just above Dheap)
+#define hwrCardSize 0x20000000L // Size of each card slot
+#define hwrFlashBase 0x10C00000L // Base of Flash ROM
+//#define hwrFlashSize 0x00400000L // Size of Flash ROM
+#define hwrCardOffsetMask 0x1FFFFFFFL // Used to convert a pointer to a card offset
+#define hwrMinBigROMOffset 0x00008000L // Minimum ROM offset to BigROM
+
+
+// Define the Flash width
+#define hwrROMWidth 2
+
+
+/************************************************************************
+ * Port B Bit settings
+ ************************************************************************/
+#define hwrEZPortBLCD_CS 0x01 // (L) LCD Chip Select
+#define hwrEZPortBCS_ADC 0x02 // (L) BurrBrown Chip-select
+#define hwrEZPortBLCDBright 0x08 // (L) LCD Brightness controller SYNC
+#define hwrEZPortBRS232Enable 0x40 // (H) Enable the RS232 Transceiver
+#define hwrEZPortBSoundUnfiltered 0x80 // (-) Unfiltered Sound
+
+
+/************************************************************************
+ * Port C Bit settings
+ ************************************************************************/
+#define hwrEZPortCKbdRow0 0x01 // (H) Keyboard Row 0
+#define hwrEZPortCKbdRow1 0x02 // (H) Keyboard Row 1
+#define hwrEZPortCKbdRow2 0x04 // (H) Keyboard Row 2
+#define hwrEZPortCCharging 0x08 // (L) Battery Charging - Low if battery is charging.
+#define hwrEZPortCKbdRows 0x07 // All Keyboard Rows
+
+#define hwrEZPortCBacklightEnable 0x10 // (H) Enable SED1375 Backlight
+#define hwrEZPortCChargerShutdown 0x20 // (H) Output high to disable the charger
+#define hwrEZPortCEnable5V 0x40 // (H) Enable 5V power supply for screen
+#define hwrEZPortCEnableDTR 0x80 // (H) Assert Serial DTR signal.
+
+
+/************************************************************************
+ * Port D Bit settings
+ ************************************************************************/
+
+#define hwrEZPortDKbdCol0 0x01 // (H) Keyboard Column 0 (aka INT0)
+#define hwrEZPortDKbdCol1 0x02 // (H) Keyboard Column 1 (aka INT1)
+#define hwrEZPortDKbdCol2 0x04 // (H) Keyboard Column 2 (aka INT2)
+#define hwrEZPortDKbdCol3 0x08 // (H) Keyboard Column 3 (aka INT3)
+#define hwrEZPortDKeyBits 0x0F // All Keyboard Columns
+
+#define hwrEZPortDDockButton 0x10 // (L) IRQ1 HotSync/Dock Button
+#define hwrEZPortDGoodBattery 0x20 // (H) IRQ2 Good Battery
+#define hwrEZPortDAdapterInstalled 0x40 // (L) IRQ3 Adapter installed
+#define hwrEZPortDPowerFail 0x80 // (L) Power Fail interrupt (IRQ6)
+
+
+// DANGER: Writing to PortD to (for example) toggle the serial enable bit has potential side effects.
+// For example, if we |= or &= the serial enable bit (as PrvSerialEnable used to do) and inadvertently
+// write other one-bits to portDData, we may clear pending edge interrupts on those other bits, like
+// for example, the keyboard edge interrupt bits. Though the docs are somewhat ambiguous (surprise!),
+// it would APPEAR that this is only the case for the keyboard interrupt bits (INT0-INT3). This DID
+// cause problems when re-enabling the serial port during HwrWake->SerialWake, as it would clear any
+// pending keyboard interrupts that woke the device (such as the power key or application buttons).
+// SO, when writing to the serial enable bit, we MUST be sure to mask against hwrEZPortDDataMaskBeforeWrite
+// before writing to portDData. This is ALSO VERY IMPORTANT for anyone who might make use of bit 6 (IRQ3)
+// as an output pin. Whenever writing to hwrEZPortDFree3, one should always read portDData first, twiddle
+// hwrEZPortDFree3 as appropriate, and with hwrEZPortDDataMaskBeforeWrite and finally write to portDData.
+// Maybe in future parts, Moto can spare us a PortDIntStatus register, separate from portDData.
+
+#define hwrEZPortDDataMaskBeforeWrite (~(hwrEZPortDKeyBits)) // Don't write ones to these bits!
+
+#define hwrEZPortDKeyOffset 0x0 // bits to shift to put Col 0 in lsb
+
+/************************************************************************
+ * Port E Bit settings
+ ************************************************************************/
+#define hwrEZPortESpiTxD 0x01 // (L) SPI TXD (Internal)
+#define hwrEZPortESpiRxD 0x02 // (L) SPI RXD (Internal)
+#define hwrEZPortESpiClk 0x04 // SPI Clock
+#define hwrEZPortESpiBits 0x07 // all the SPI bits
+#define hwrEZPortERXD 0x10 // external RXD
+#define hwrEZPortETXD 0x20 // external TXD
+#define hwrEZPortERTS 0x40 // external RTS
+#define hwrEZPortECTS 0x80 // external CTS
+
+
+/************************************************************************
+ * Port F Bit settings
+ ************************************************************************/
+
+#define hwrEZPortFLCDPowered 0x01 // (H) Input asserted when LCD is at full power.
+#define hwrEZPortFPenIO 0x02 // (H) Pen Interrupt, Pen IO (IRQ5)
+#define hwrEZPortFBusClock 0x04 // (H) Bus Clock
+#define hwrEZPortFA20 0x08 // (H) A20
+
+#define hwrEZPortFA21 0x10 // (H) A21
+#define hwrEZPortFVideoClkEnable 0x20 // (H) Enable Video clock.
+#define hwrEZPortFBatteryEnable 0x40 // (H) Battery Enable
+#define hwrEZPortFIXTRNL2 0x80 // (L) IXTRNL2 line, used to ID the device connected to the sync port.
+
+
+/************************************************************************
+ * Port G Bit settings
+ ************************************************************************/
+
+#define hwrEZPortGDTACK 0x01 // (-) DTACK
+#define hwrEZPortGA0 0x02 // (-) A0
+#define hwrEZPortGIDDetect 0x04 // (L) ID select (drives kbd)
+#define hwrEZPortGHiZ 0x08 // (L) Used in ICT to tristate dragonball pins
+#define hwrEZPortGIRShutdown 0x10 // (H) Shutdown IRDA
+#define hwrEZPortGEmuBrk 0x20 // (-) EMUBRK
+
+
+/************************************************************************
+ * SPIM Base Configuration
+ ************************************************************************/
+#define hwrEZSPIMBaseControl (hwrEZ328SPIMControlRateDiv16 | \
+ hwrEZ328SPIMControlIntEnable | \
+ hwrEZ328SPIMControlInvPolarity | \
+ hwrEZ328SPIMControlOppPhase | \
+ 16-1)
+
+
+
+/************************************************************************
+ *Initial values for the PLL. We set the system clock to be VCO/1 so
+ * the system clock speed becomes:
+ *
+ * 32768 * ((hwrEZFreqSelP + 1) * 14 + hwrEZFreqSelQ + 1)
+ * --------------------------------------------------------
+ * VCO divider
+ ************************************************************************/
+// NEW ASIC versions run at 16.580608 Mhz
+
+#define hwrEZPLLControl (hwrEZ328PLLControlClkEn | \
+ hwrEZ328PLLControlSysDMADiv1 | \
+ hwrEZ328PLLControlPixDMADiv1 | \
+ hwrEZ328PLLControlDMAVCODiv1)
+
+
+// The Frequency needs to be lowered on the older DragonBall-EZ processors.
+//
+// The values are:
+// 15MHz: Allows processor to operate without screen noise within the voltage
+// range specified for the Power Supply (3.3V +- 100mV)
+// P = 0x1F, Q=0x9
+// 13.5 MHz: Brings processor into voltage spec (runs as low as 3.0V without noise)
+// P = 0x1C, Q=0x7
+//
+// The following are the OK values for 0J83C processors (id 4)
+// 16.580608 is the spec'd frequency for the part. HK admits that 20MHz works
+// 16.580608MHz: P = 0x23, Q=0x01
+// 20.0 MHz: P = 0x2A, Q=0x9
+
+#define hwrEZFreqSelPQ_13_5MHz (0x1C | (0x07 << 8))
+
+#define hwrEZFreqSelPQ_14_75MHz (0x1F | (0x01 << 8))
+
+#define hwrEZFreqSelPQ_15MHz (0x1F | (0x09 << 8))
+
+#define hwrEZFreqSelPQ_16MHz (0x23 | (0x01 << 8))
+
+#define hwrEZFreqSelPQ_20MHz (0x2A | (0x09 << 8))
+
+
+/************************************************************************
+ * Display constants specific to Austin product.
+ ************************************************************************/
+
+#define hwrDisplayBootDepth 8 // Boot time bits per pixel (system default)
+
+#define hwrDisplayWidth 160 // Physical Screen Width
+#define hwrDisplayHeight 160 // Physical Screen Height
+#define hwrDisplayMaxDepth 8 // Maximum bits per pixel hardware supports
+
+#define hwrDigitizerWidth hwrDisplayWidth // Same as width of display
+#define hwrDigitizerHeight 220 // Height of digitizer area
+
+// Screen refresh rate
+#define hwrDisplayPeriod 13 // frame period in ms.
+
+// Brightness Control Adjuster special values
+#define hwrDisplayBrightAdjLowPwr 0x2000 // Sets special low power state for brightness adjust.
+
+
+#endif // __HARDWAREAUSTIN_H__
+
+#endif // NON_PORTABLE
diff --git a/SrcShared/Palm/Device/EZAustin/IncsPrv/SED1375Hwr.h b/SrcShared/Palm/Device/EZAustin/IncsPrv/SED1375Hwr.h
new file mode 100644
index 0000000..dc85e2a
--- /dev/null
+++ b/SrcShared/Palm/Device/EZAustin/IncsPrv/SED1375Hwr.h
@@ -0,0 +1,240 @@
+/******************************************************************************
+ *
+ * Copyright (c) 1998-1999 Palm Computing, Inc. or its subsidiaries.
+ * All rights reserved.
+ *
+ * File: SED1375Hwr.h
+ *
+ * Description:
+ * Hardware definitions for SED1375 controller.
+ *
+ * History:
+ * 12/14/98 BRM Adpated from SED1374 Test tool by Bob Ebert.
+ *
+ *****************************************************************************/
+
+//-----------------------------------------------------------------------
+// SED1375 Registers
+//-----------------------------------------------------------------------
+
+typedef struct SED1375RegsType {
+ UInt8 productRevisionCode; // 0x00
+ UInt8 mode0; // 0x01
+
+ UInt8 mode1; // 0x02
+ UInt8 mode2; // 0x03
+
+ UInt8 horizontalPanelSize; // 0x04
+ UInt8 verticalPanelSizeLSB; // 0x05
+
+ UInt8 verticalPanelSizeMSB; // 0x06
+ UInt8 FPLineStartPosition; // 0x07
+
+ UInt8 horizontalNonDisplayPeriod; // 0x08
+ UInt8 FPFRAMEStartPosition; // 0x09
+
+ UInt8 verticalNonDisplayPeriod; // 0x0A
+ UInt8 MODRate; // 0x0B
+
+ UInt8 screen1StartAddressLSB; // 0x0C
+ UInt8 screen1StartAddressMSB; // 0x0D
+
+ UInt8 screen2StartAddressLSB; // 0x0E
+ UInt8 screen2StartAddressMSB; // 0x0F
+
+ UInt8 screen1StartAddressMSBit; // 0x10 !!! YES, screen1MSBit in a weird place. Send complaints to Epson.
+ UInt8 memoryAddressOffset; // 0x11
+
+ UInt8 screen1VerticalSizeLSB; // 0x12
+ UInt8 screen1VerticalSizeMSB; // 0x13
+
+ UInt8 unused1; // 0x14
+ UInt8 lookUpTableAddress; // 0x15
+
+ UInt8 unused2; // 0x16
+ UInt8 lookUpTableData; // 0x17
+
+ UInt8 GPIOConfigurationControl; // 0x18
+ UInt8 GPIOStatusControl; // 0x19
+
+ UInt8 scratchPad; // 0x1A
+ UInt8 portraitMode; // 0x1B
+
+ UInt8 lineByteCountRegister; // 0x1C, for portrait mode only
+ UInt8 unused3; // 0x01D not used
+
+ UInt8 unused4; // 0x1E
+ UInt8 unused5; // 0x1F
+} SED1375RegsType;
+
+typedef volatile SED1375RegsType *SED1375RegsPtr;
+
+
+//-----------------------------------------------------------------------
+// Register constants and definitions
+//-----------------------------------------------------------------------
+#define sed1375BaseAddress 0x1F000000
+#define sed1375RegisterOffset 0x1FFE0
+#define sed1375RegsAddr ((UInt8 *)sed1375BaseAddress + sed1375RegisterOffset)
+
+#define sed1375VideoMemStart sed1375BaseAddress
+#define sed1375VideoMemSize 81920 // 80K of memory for VRAM and CLUT's
+
+
+// REG[0x00] Revision Code Register
+// bits 7-2 are product code, bits 1-0 are revision code
+#define sed1375RevisionCodeRegister 0x00
+#define sed1375ProductCodeMask 0xFC
+#define sed1375RevisionCodeMask 0x03
+#define sed1375ProductCode 0x06
+#define sed1375ProductCodeExpected (sed1375ProductCode << 2)
+#define sed1375RevisionCodeExpected 0x00
+
+// REG[0x01] Mode Register 0
+// bits 6 (Dual/Single) and 5 (Color/Mono) and 1 (mode) are ignored if bit 7 is set.
+#define sed1375ModeRegister0 0x01
+#define sed1375ModeTFT 0x80 // bit 7
+#define sed1375ModeDual 0x40 // bit 6
+#define sed1375ModeColor 0x20 // bit 5
+#define sed1375FPLineActiveHigh 0x10 // bit 4
+#define sed1375FPFramePolarityActiveHigh 0x07 // bit 3
+#define sed1375FPShiftMasked 0x04 // bit 2
+#define sed1375DataWidth12BitTFTPanel 0x01 // bits 1-0
+
+// REG[0x02] Mode Register 1
+#define sed1375ModeRegister1 0x02
+#define sed1375BPPMask 0xC0 // bits 7,6
+#define sed1375BPPShift 6
+#define sed1375BPP(n) ((((n) - 1) & 0x04) << sed1375BPPShift)
+#define sed13758bpp 0xC0
+#define sed13754bpp 0x80
+#define sed13752bpp 0x40
+#define sed13751bpp 0x00
+#define sed1375HighPerformance 0x20 // bit 5
+#define sed1375InputClockDiv2 0x10 // bit 4
+#define sed1375DisplayBlank 0x08 // bit 3
+#define sed1375FrameRepeat 0x04 // bit 2
+#define sed1375HardwareVideoInvertEnable 0x02 // bit 1
+#define sed1375SoftwareVideoInvert 0x01 // bit 0
+
+// REG[0x03] Mode Register 2
+#define sed1375ModeRegister2 0x03
+#define sed1375LCDPWROverride 0x08 // bit 3
+#define sed1375HwrPowerSaveEnable 0x04 // bit 2
+#define sed1375PowerSaveMode 0x00 // bits 1,0
+#define sed1375PowerSaveNormalOperation 0x03
+
+// REG[0x04] Horizontal Panel Size Register
+// (Horizontal Panel Resolution pixels / 8)-1
+#define sed1375HorizontalPanelSizeRegister 0x04
+#define sed1375HorizontalResolutionMask 0x7F // bits 6-0
+
+// REG[0x05] Vertical Panel Size Register (LSB)
+// REG[0x06] Vertical Panel Size Register (MSB)
+// together define 10 bits of vertical lines, set to # of lines - 1
+#define sed1375VerticalPanelSizeRegisterLSB 0x05
+#define sed1375VerticalPanelSizeRegisterMSB 0x06
+#define sed1375VerticalResolutionMSBMask 0x30 // bits 1,0
+
+// REG[0x07] FPLINE Start Position
+#define sed1375FPLINEStartPosition 0x07
+#define sed1375FPLINEStartPositionMask 0x1F // bits 4-0
+
+// REG[0x08] Horizontal Non-Display Period
+#define sed1375HorizontalNonDisplayPeriod 0x08
+#define sed1375HorizontalNonDisplayMask 0x1F // bits 4-0
+#define sed1375NoHorizontalNonDisplay 0x00
+
+// REG[0x09] FPFRAME Start Position
+#define sed1375FPFRAMEStartPosition 0x09
+#define sed1375FPFRAMEStartPositionMask 0x3F // bits 5-0
+
+// REG[0x0A] Vertical Non-Display Period
+#define sed1375VerticalNonDisplayPeriod 0x0A
+#define sed1375VerticalNonDisplayStatus 0x80 // bit 7
+#define sed1375VerticalNonDisplayMask 0x3F // bits 5-0
+#define sed1375NoVerticalNonDisplay 0x00
+
+// REG[0x0B] MOD Rate Register (passive LCD only)
+#define sed1375MODRateRegister 0x0B
+#define sed1375MODRateUnused 0x00
+
+// REG[0x0C] Screen 1 Start Address Register (LSB)
+// REG[0x0D] Screen 1 Start Address Register (MSB)
+#define sed1375Screen1StartAddressRegisterLSB 0x0C
+#define sed1375Screen1StartAddressRegisterMSB 0x0D
+
+// REG[0x0F] Screen 2 Start Address Register (LSB)
+// REG[0x10] Screen 2 Start Address Register (MSB)
+#define sed1375Screen2StartAddressRegisterLSB 0x0F
+#define sed1375Screen2StartAddressRegisterMSB 0x10
+
+// REG[0x12] Memory Address Offset Register
+#define sed1375MemoryAddressOffsetRegister 0x12
+
+// REG[0x13] Screen 1 Vertical Size Register (LSB)
+// REG[0x14] Screen 1 Vertical Size Register (MSB)
+#define sed1375Screen1VerticalSizeRegisterLSB 0x13
+#define sed1375Screen1VerticalSizeRegisterMSB 0x14
+
+// REG[0x15] Look-Up Table Address Register
+#define sed1375LookUpTableAddressRegister 0x15
+#define sed1375LookUpAutoIncrement 0x00
+#define sed1375LookUpRedTableSelect 0x10
+#define sed1375LookUpGrayGreenTableSelect 0x20
+#define sed1375LookUpBlueTableSelect 0x30
+#define sed1375LookUpTableAddressMask 0x0F
+
+// REG[0x16] Look-Up Table Bank Select Register
+#define sed1375LookUpTableBankSelectRegister 0x16
+#define sed1375LookUpTableRedBank(n) (((n) & 0x03) << 4)
+#define sed1375LookUpTableGreenBank(n) (((n) & 0x03) << 2)
+#define sed1375LookUpTableBlueBank(n) ((n) & 0x03)
+#define sed1375LookUpTableBank(n) (sed1375LookUpTableRedBank(n) | sed1375LookUpTableGreenBank(n) | sed1375LookUpTableBlueBank(n))
+
+// REG[0x17] Look-Up Table Data Register
+#define sed1375LookUpTableDataRegister 0x17
+#define sed1375LookUpTableDataMask 0x0F
+
+// REG[0x18] GPIO Configuration Control Register
+#define sed1375GPIOConfigurationControlRegister 0x18
+#define sed1375GPIOPinOut(n, v) (((v) ? 1:0) << (n))
+
+// REG[0x19] GPIO Status/Control Register
+#define sed1375GPIOStatusControlRegister 0x19
+#define sed1375GPIOPinStatusMask(n) (1 << (n))
+#define sed1375GPIOPinSet(n, v) (((v) ? 1:0) << (n))
+
+// REG[0x1A] Scratch Pad Register
+#define sed1375ScratchPadRegister 0x1A
+
+// REG[0x1B] Portrait Mode Register
+#define sed1375PortraitModeRegister 0x1B
+#define sed1375LandscapeMode 0x00
+#define sed1375PortraitModeEnable 0x80 // bit 7
+#define sed1375X2SchemeSelect 0x40 // bit 6
+#define sed1375MCLKAutoDisable 0x04 // bit 2
+#define sed1375PCLKSelectBit1 0x02 // bit 1
+#define sed1375PCLKSelectBit0 0x01 // bit 0
+
+// REG[0x1C] Line UInt8 Count Register (for Portrait Mode)
+#define sed1375LineByteCountRegister 0x1C
+
+// REG[0x1D] ???? Register
+#define sed1375UnusualRegister 0x1D
+#define sed1375RepeatFrame 0x80
+#define sed1375Skip128FramesDuringPS 0x40
+#define sed1375OverlayEnable 0x20
+#define sed1375OverlayOperationBit1 0x10
+#define sed1375OverlayOperationBit0 0x08
+#define sed1375ForceHighClock 0x04
+#define sed1375FrameSkip 0x02
+#define sed1375FrameSkipStatus 0x01
+
+// REG[0x1F] Test Mode Register
+#define sed1375TestModeRegister 0x1F
+#define sed1375TestMode(n) ((n & 0x03) << 6)
+#define sed1375TestInput(n) ((n & 0x07) << 3)
+#define sed1375TestOutputMask 0x07
+#define sed1375TestModeNormal 0x00
+#define sed1375TestModeUnusual sed1375TestMode(1)