, <port-hpcsh@netbsd.org>
From: Jeremiah Holt <jholt5638@earthlink.net>
List: port-hpcsh
Date: 06/23/2004 06:23:31
This is a multi-part message in MIME format.
------=_NextPart_000_0000_01C458EA.9ACD64C0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
I was given the register information for the Jornada 928 which uses the
same F1769 companion chip as the 540 series. It seems like the best place to
start I'd begin working on this myself but my system right now is a Win2k3
box since its modem is a softmodem and go's 14.4K with the linmodem drivers
------=_NextPart_000_0000_01C458EA.9ACD64C0
Content-Type: application/octet-stream;
name="jornada928-regs.h"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="jornada928-regs.h"
/*
*
* Definitions for HP Jornada928 Handheld Computer
*
* Author: Eugene Borisov.
*
* History:
*
*
*/
#ifndef _INCLUDE_JORNADA928_H_
#define _INCLUDE_JORNADA928_H_
/* LCD backlight registers
* Backlight control pin is connected to GPIO3 Bit 0x20
*/
#define JORNADA928_LCD_INVERTER_CTRL GPIO3_DATA_OUTPUT_REG
#define JORNADA928_LCD_INVERTER_CONF GPIO3_DIR_CONTROL_REG
#define LCD_INVERTER_EN 0x20
#define LCD_INVERTER_OUTPUT_EN 0x20
/* LCD panel ENABLE is connected to bit 0x80000 of GPIO2 */
#define JORNADA928_LCD_CTRL GPIO2_DATA_OUTPUT_REG
#define JORNADA928_LCD_CONF GPIO2_DIR_CONTROL_REG
#define LCD_CONF_OUTPUT_EN 0x80000
#define LCD_CTRL_PANEL_EN 0x80000
/* LCD Dither logic seems to be connected to GPIO1 bit 0x2000000 */
#define JORNADA928_DITHER_CTRL GPIO1_DATA_OUTPUT_REG
#define JORNADA928_DITHER_CONF GPIO1_DIR_CONTROL_REG
#define DITHER_OUTPUT_EN 0x2000000
#define DITHER_EN 0x2000000
/* vibrator */
#define JORNADA928_VIBRATE_CTRL GPIO1_DATA_OUTPUT_REG
#define JORNADA928_VIBRATE_CONF GPIO1_DIR_CONTROL_REG
#define VIBRATE_OUTPUT_EN 0x0000040
#define VIBRATE_EN 0x0000040
/* F1796 Registers */
#define F1796_IREQ 0xe8000000 /* interrupt control */
#define F1796_CF_STS 0xe8000002 /* CF status */
#define F1796_CF_CTRL 0xe8000002 /* CF control */
#define F1796_CF_REG04 0xe8000004 /* don't know what this is, but it =
seems to be related to CF */
#define F1796_CF_REG06 0xe8000006 /* don't know what this is, but it =
seems to be related to CF */
#define F1796_POWER_IRQ 0xe8000008 /* power realted irq status/mask =
register */
#define F1796_POWER_STS 0xe800000a
#define F1796_BAT_STS __REGH(0xe800000a) /* battery status */
#define F1796_TFT_1 0xe80000c0 /* TFT panel control reg0 (mini =
display)*/=20
#define F1796_TFT_2 0xe80000c2 /* TFT panel control reg1 (mini =
display)*/
#define F1796_TFT_3 0xe80000c4 /* TFT panel control reg2 (mini =
display)*/
#define F1796_KEYB_STS 0xe8000020 /* Keyboard status reg */
#define JORNADA928_PCMCIA_BASE 0x08000000
#define JORNADA928_PCMCIA_WINDOW 0x40000
#define JORNADA928_PCMCIA_ATTR ( JORNADA928_PCMCIA_BASE + 0x10000 )
#define JORNADA928_PCMCIA_MEM ( JORNADA928_PCMCIA_BASE + 0x20000 )
#define JORNADA928_PCMCIA_IO ( JORNADA928_PCMCIA_BASE + 0x30000 )
#define JORNADA928_PCMCIA_IO_VIRT 0xe8030000
=20
/* CF Slot bits */
#define CTRL_CD_IRQ_EN 0x0001 /* card CD irq enable */
#define CTRL_IREQ_EN 0x0002 /* card IREQ irq enable */
#define CTRL_CD_IRQ_ACK 0x0004 /* card CD irq acknoledge =
*/
#define CTRL_CD_IREQ_ACK 0x0008 /* card IREQ acknowledge =
*/
#define CTRL_IO_MODE 0x0010
#define CTRL_RESET 0x0020 /* card software reset */
#define CTRL_EN 0x0080 /* card interface enable */
#define STS_POWERON 0x8000 /* card power is active */
#define STS_READY 0x2000 /* ready */ =20
#define STS_CD1 0x1000 /* card detect 1 */
#define STS_CD2 0x0800 /* card detect 2 */
#define STS_BVD2 0x0400 /* card BVD2 */
#define STS_BVD1 0x0200 /* card BVD1 */
#define STS_SCH 0x0100 /* socket change */ =
=20
#define STS_VS1 0x4000
#define STS_VS2 0x8000
/* IREQ Reg Bits */
#define IRQ_CF 0x1 /* compact flash irq */
#define IRQ_POWER 0x2 /* power */
#define IRQ_KEY 0x4 /* key press irq */
/* Touch Panel Registers */
#define PEN_DOWN 0x2 /* touch event is signaled on bit 2 of MPU GPIO =
*/
#define TOUCH_INT_CTRL_REG __REG(0xfffce00c) /* control register of =
touch GPIO */
#define TOUCH_INT_STS_REG __REG(0xfffce014) /* interrupt status =
register */
#define TOUCH_DATA_REG __REG(0xfffce000) /* data input register of =
touch GPIO */
#define TOUCH_DIR_CTRL_REG __REG(0xfffce008)
#define TOUCH_INT_MASK_REG __REG(0xfffce010) /* interrupt mask register =
*/
#define JORNADA928_TOUCH_X 0x90000000
#define JORNADA928_TOUCH_Y 0xd0000000
#define JORNADA928_LIGHT_SENSOR 0xa4000000
#define JORNADA928_BACKUP_BATTERY 0xe4000000
#define JORNADA928_MAIN_BATTERY 0xa4000000
#define INT_TOUCHSCREEN INT_GPIO1 /* touchscreen evenet interrupt */
/* #define LED_REG1 __REGB(0xfffba800) LED control register */
/* #define LED_REG2 __REGB(0xfffba801) another LED reg */
/* Jornada Keypad registers */
#define KEYSTAT __REGH(0xe8000020) /* status on pressed =
keys */
#define KEYBASE 0xe8000024 /* base for key config =
registers */
#define UP __REGH(0xe8000024)
#define UPPERVOLUME __REGH(0xe8000028)
#define LOWERVOLUME __REGH(0xe800002c)
#define SIDEPOWER __REGH(0xe8000030)
#define UPLEFT __REGH(0xe8000034)
#define LEFTLOWER __REGH(0xe8000038)
#define LEFT __REGH(0xe800003c)
#define POWER __REGH(0xe8000040)
#define DOWN __REGH(0xe8000044)
#define CENTERLOWER __REGH(0xe8000048)
#define RIGHT __REGH(0xe800004c)
#define RIGHTLOWER __REGH(0xe8000050)
#define UPRIGHT __REGH(0xe8000054)
#define COVER __REGH(0xe8000058)
#define LEFTCALL __REGH(0xe800005c)
#define RIGHTCALL __REGH(0xe8000060)
#define KEY_UP_IRQ_EN 0x1
#define KEY_DOWN_IRQ_EN 0x2
#define KEY_IRQ_UP_ACK 0x1000
#define KEY_IRQ_DOWN_ACK 0x2000
#define KEY_UP_IRQ 0x0100
#define KEY_DOWN_IRQ 0x0200
#define NUM_KEYS 16M
/* Jornada Battery register bits */
#define ON_EXT_BAT 0x0001
#define ON_INT_BAT 0x0002
#define BAT_SELECTION 0x0004 /* 1 - manual; 0 - auto */
#define EXT_STS 0x0010 /* 1=3DExt Battery Absent; 0=3DExt Battery =
Present */
#define INT_CHARGE 0x0020 /* 1=3DLow; 0=3DHigh */
#define EXT_CHARGE 0x0040 /* 1=3DLow, 0=3DHigh */
#define AC_STS 0x0080 /* 1=3DAC Out, 0=3DAc in */
/* power irq bits */
#define AC_IRQ 0x0800
#define EXT_IRQ 0x0400
#define INT_CHARGE_IRQ 0x0200
#define EXT_CHARGE_IRQ 0x0100
/* level bits, setting these to 1 will generate irqs when */
/* AC out, ext battery installed, ext battery charged, int battery =
charged */
/* level bits, setting these to 0 will generate irqs when */
/* AC in, ext battery removed, ext battery not charged, int battery not =
charged */
#define AC_TRIG 0x80
#define EXT_TRIG 0x40
#define INT_CHARGE_TRIG 0x20
#define EXT_CHARGE_TRIG 0x10
#define AC_MASK 0x8
#define EXT_MASK 0x4
#define INT_CHARGE_MASK 0x2
#define EXT_CHARGE_MASK 0x1
#endif /* _INCLUDE_JORNADA928_H_ */
------=_NextPart_000_0000_01C458EA.9ACD64C0--