Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Hardware specific definitions for SL-C7xx series of PDAs
0004  *
0005  * Copyright (c) 2004-2005 Richard Purdie
0006  *
0007  * Based on Sharp's 2.4 kernel patches
0008  */
0009 #ifndef __ASM_ARCH_CORGI_H
0010 #define __ASM_ARCH_CORGI_H  1
0011 
0012 #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */
0013 
0014 /*
0015  * Corgi (Non Standard) GPIO Definitions
0016  */
0017 #define CORGI_GPIO_KEY_INT          (0) /* Keyboard Interrupt */
0018 #define CORGI_GPIO_AC_IN            (1) /* Charger Detection */
0019 #define CORGI_GPIO_WAKEUP           (3) /* System wakeup notification? */
0020 #define CORGI_GPIO_AK_INT           (4) /* Headphone Jack Control Interrupt */
0021 #define CORGI_GPIO_TP_INT           (5) /* Touch Panel Interrupt */
0022 #define CORGI_GPIO_nSD_WP           (7) /* SD Write Protect? */
0023 #define CORGI_GPIO_nSD_DETECT       (9) /* MMC/SD Card Detect */
0024 #define CORGI_GPIO_nSD_INT          (10) /* SD Interrupt for SDIO? */
0025 #define CORGI_GPIO_MAIN_BAT_LOW     (11) /* Main Battery Low Notification */
0026 #define CORGI_GPIO_BAT_COVER        (11) /* Battery Cover Detect */
0027 #define CORGI_GPIO_LED_ORANGE       (13) /* Orange LED Control */
0028 #define CORGI_GPIO_CF_CD            (14) /* Compact Flash Card Detect */
0029 #define CORGI_GPIO_CHRG_FULL        (16) /* Charging Complete Notification */
0030 #define CORGI_GPIO_CF_IRQ           (17) /* Compact Flash Interrupt */
0031 #define CORGI_GPIO_LCDCON_CS        (19) /* LCD Control Chip Select */
0032 #define CORGI_GPIO_MAX1111_CS       (20) /* MAX1111 Chip Select */
0033 #define CORGI_GPIO_ADC_TEMP_ON      (21) /* Select battery voltage or temperature */
0034 #define CORGI_GPIO_IR_ON            (22) /* Enable IR Transceiver */
0035 #define CORGI_GPIO_ADS7846_CS       (24) /* ADS7846 Chip Select */
0036 #define CORGI_GPIO_SD_PWR           (33) /* MMC/SD Power */
0037 #define CORGI_GPIO_CHRG_ON          (38) /* Enable battery Charging */
0038 #define CORGI_GPIO_DISCHARGE_ON     (42) /* Enable battery Discharge */
0039 #define CORGI_GPIO_CHRG_UKN         (43) /* Unknown Charging (Bypass Control?) */
0040 #define CORGI_GPIO_HSYNC            (44) /* LCD HSync Pulse */
0041 #define CORGI_GPIO_USB_PULLUP       (45) /* USB show presence to host */
0042 
0043 
0044 /*
0045  * Corgi Keyboard Definitions
0046  */
0047 #define CORGI_KEY_STROBE_NUM        (12)
0048 #define CORGI_KEY_SENSE_NUM         (8)
0049 #define CORGI_GPIO_ALL_STROBE_BIT   (0x00003ffc)
0050 #define CORGI_GPIO_HIGH_SENSE_BIT   (0xfc000000)
0051 #define CORGI_GPIO_HIGH_SENSE_RSHIFT    (26)
0052 #define CORGI_GPIO_LOW_SENSE_BIT    (0x00000003)
0053 #define CORGI_GPIO_LOW_SENSE_LSHIFT (6)
0054 #define CORGI_GPIO_STROBE_BIT(a)    GPIO_bit(66+(a))
0055 #define CORGI_GPIO_SENSE_BIT(a)     GPIO_bit(58+(a))
0056 #define CORGI_GAFR_ALL_STROBE_BIT   (0x0ffffff0)
0057 #define CORGI_GAFR_HIGH_SENSE_BIT   (0xfff00000)
0058 #define CORGI_GAFR_LOW_SENSE_BIT    (0x0000000f)
0059 #define CORGI_GPIO_KEY_SENSE(a)     (58+(a))
0060 #define CORGI_GPIO_KEY_STROBE(a)    (66+(a))
0061 
0062 
0063 /*
0064  * Corgi Interrupts
0065  */
0066 #define CORGI_IRQ_GPIO_KEY_INT      PXA_GPIO_TO_IRQ(0)
0067 #define CORGI_IRQ_GPIO_AC_IN        PXA_GPIO_TO_IRQ(1)
0068 #define CORGI_IRQ_GPIO_WAKEUP       PXA_GPIO_TO_IRQ(3)
0069 #define CORGI_IRQ_GPIO_AK_INT       PXA_GPIO_TO_IRQ(4)
0070 #define CORGI_IRQ_GPIO_TP_INT       PXA_GPIO_TO_IRQ(5)
0071 #define CORGI_IRQ_GPIO_nSD_DETECT   PXA_GPIO_TO_IRQ(9)
0072 #define CORGI_IRQ_GPIO_nSD_INT      PXA_GPIO_TO_IRQ(10)
0073 #define CORGI_IRQ_GPIO_MAIN_BAT_LOW PXA_GPIO_TO_IRQ(11)
0074 #define CORGI_IRQ_GPIO_CF_CD        PXA_GPIO_TO_IRQ(14)
0075 #define CORGI_IRQ_GPIO_CHRG_FULL    PXA_GPIO_TO_IRQ(16) /* Battery fully charged */
0076 #define CORGI_IRQ_GPIO_CF_IRQ       PXA_GPIO_TO_IRQ(17)
0077 #define CORGI_IRQ_GPIO_KEY_SENSE(a) PXA_GPIO_TO_IRQ(58+(a)) /* Keyboard Sense lines */
0078 
0079 
0080 /*
0081  * Corgi SCOOP GPIOs and Config
0082  */
0083 #define CORGI_SCP_LED_GREEN     SCOOP_GPCR_PA11
0084 #define CORGI_SCP_SWA           SCOOP_GPCR_PA12  /* Hinge Switch A */
0085 #define CORGI_SCP_SWB           SCOOP_GPCR_PA13  /* Hinge Switch B */
0086 #define CORGI_SCP_MUTE_L        SCOOP_GPCR_PA14
0087 #define CORGI_SCP_MUTE_R        SCOOP_GPCR_PA15
0088 #define CORGI_SCP_AKIN_PULLUP   SCOOP_GPCR_PA16
0089 #define CORGI_SCP_APM_ON        SCOOP_GPCR_PA17
0090 #define CORGI_SCP_BACKLIGHT_CONT    SCOOP_GPCR_PA18
0091 #define CORGI_SCP_MIC_BIAS      SCOOP_GPCR_PA19
0092 
0093 #define CORGI_SCOOP_IO_DIR  ( CORGI_SCP_LED_GREEN | CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R | \
0094             CORGI_SCP_AKIN_PULLUP | CORGI_SCP_APM_ON | CORGI_SCP_BACKLIGHT_CONT | \
0095             CORGI_SCP_MIC_BIAS )
0096 #define CORGI_SCOOP_IO_OUT  ( CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R )
0097 
0098 #define CORGI_SCOOP_GPIO_BASE       (PXA_NR_BUILTIN_GPIO)
0099 #define CORGI_GPIO_LED_GREEN        (CORGI_SCOOP_GPIO_BASE + 0)
0100 #define CORGI_GPIO_SWA          (CORGI_SCOOP_GPIO_BASE + 1)  /* Hinge Switch A */
0101 #define CORGI_GPIO_SWB          (CORGI_SCOOP_GPIO_BASE + 2)  /* Hinge Switch B */
0102 #define CORGI_GPIO_MUTE_L       (CORGI_SCOOP_GPIO_BASE + 3)
0103 #define CORGI_GPIO_MUTE_R       (CORGI_SCOOP_GPIO_BASE + 4)
0104 #define CORGI_GPIO_AKIN_PULLUP      (CORGI_SCOOP_GPIO_BASE + 5)
0105 #define CORGI_GPIO_APM_ON       (CORGI_SCOOP_GPIO_BASE + 6)
0106 #define CORGI_GPIO_BACKLIGHT_CONT   (CORGI_SCOOP_GPIO_BASE + 7)
0107 #define CORGI_GPIO_MIC_BIAS     (CORGI_SCOOP_GPIO_BASE + 8)
0108 
0109 #endif /* __ASM_ARCH_CORGI_H  */
0110