1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * GPIO and IRQ definitions for HTC Magician PDA phones 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2007 Philipp Zabel 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifndef _MAGICIAN_H_ 9*4882a593Smuzhiyun #define _MAGICIAN_H_ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <linux/gpio.h> 12*4882a593Smuzhiyun #include <mach/irqs.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* 15*4882a593Smuzhiyun * PXA GPIOs 16*4882a593Smuzhiyun */ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #define GPIO0_MAGICIAN_KEY_POWER 0 19*4882a593Smuzhiyun #define GPIO9_MAGICIAN_UNKNOWN 9 20*4882a593Smuzhiyun #define GPIO10_MAGICIAN_GSM_IRQ 10 21*4882a593Smuzhiyun #define GPIO11_MAGICIAN_GSM_OUT1 11 22*4882a593Smuzhiyun #define GPIO13_MAGICIAN_CPLD_IRQ 13 23*4882a593Smuzhiyun #define GPIO14_MAGICIAN_TSC2046_CS 14 24*4882a593Smuzhiyun #define GPIO18_MAGICIAN_UNKNOWN 18 25*4882a593Smuzhiyun #define GPIO22_MAGICIAN_VIBRA_EN 22 26*4882a593Smuzhiyun #define GPIO26_MAGICIAN_GSM_POWER 26 27*4882a593Smuzhiyun #define GPIO27_MAGICIAN_USBC_PUEN 27 28*4882a593Smuzhiyun #define GPIO30_MAGICIAN_BQ24022_nCHARGE_EN 30 29*4882a593Smuzhiyun #define GPIO37_MAGICIAN_KEY_HANGUP 37 30*4882a593Smuzhiyun #define GPIO38_MAGICIAN_KEY_CONTACTS 38 31*4882a593Smuzhiyun #define GPIO40_MAGICIAN_GSM_OUT2 40 32*4882a593Smuzhiyun #define GPIO48_MAGICIAN_UNKNOWN 48 33*4882a593Smuzhiyun #define GPIO56_MAGICIAN_UNKNOWN 56 34*4882a593Smuzhiyun #define GPIO57_MAGICIAN_CAM_RESET 57 35*4882a593Smuzhiyun #define GPIO75_MAGICIAN_SAMSUNG_POWER 75 36*4882a593Smuzhiyun #define GPIO83_MAGICIAN_nIR_EN 83 37*4882a593Smuzhiyun #define GPIO86_MAGICIAN_GSM_RESET 86 38*4882a593Smuzhiyun #define GPIO87_MAGICIAN_GSM_SELECT 87 39*4882a593Smuzhiyun #define GPIO90_MAGICIAN_KEY_CALENDAR 90 40*4882a593Smuzhiyun #define GPIO91_MAGICIAN_KEY_CAMERA 91 41*4882a593Smuzhiyun #define GPIO93_MAGICIAN_KEY_UP 93 42*4882a593Smuzhiyun #define GPIO94_MAGICIAN_KEY_DOWN 94 43*4882a593Smuzhiyun #define GPIO95_MAGICIAN_KEY_LEFT 95 44*4882a593Smuzhiyun #define GPIO96_MAGICIAN_KEY_RIGHT 96 45*4882a593Smuzhiyun #define GPIO97_MAGICIAN_KEY_ENTER 97 46*4882a593Smuzhiyun #define GPIO98_MAGICIAN_KEY_RECORD 98 47*4882a593Smuzhiyun #define GPIO99_MAGICIAN_HEADPHONE_IN 99 48*4882a593Smuzhiyun #define GPIO100_MAGICIAN_KEY_VOL_UP 100 49*4882a593Smuzhiyun #define GPIO101_MAGICIAN_KEY_VOL_DOWN 101 50*4882a593Smuzhiyun #define GPIO102_MAGICIAN_KEY_PHONE 102 51*4882a593Smuzhiyun #define GPIO103_MAGICIAN_LED_KP 103 52*4882a593Smuzhiyun #define GPIO104_MAGICIAN_LCD_VOFF_EN 104 53*4882a593Smuzhiyun #define GPIO105_MAGICIAN_LCD_VON_EN 105 54*4882a593Smuzhiyun #define GPIO106_MAGICIAN_LCD_DCDC_NRESET 106 55*4882a593Smuzhiyun #define GPIO107_MAGICIAN_DS1WM_IRQ 107 56*4882a593Smuzhiyun #define GPIO108_MAGICIAN_GSM_READY 108 57*4882a593Smuzhiyun #define GPIO114_MAGICIAN_UNKNOWN 114 58*4882a593Smuzhiyun #define GPIO115_MAGICIAN_nPEN_IRQ 115 59*4882a593Smuzhiyun #define GPIO116_MAGICIAN_nCAM_EN 116 60*4882a593Smuzhiyun #define GPIO119_MAGICIAN_UNKNOWN 119 61*4882a593Smuzhiyun #define GPIO120_MAGICIAN_UNKNOWN 120 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun /* 64*4882a593Smuzhiyun * CPLD IRQs 65*4882a593Smuzhiyun */ 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define IRQ_MAGICIAN_SD (IRQ_BOARD_START + 0) 68*4882a593Smuzhiyun #define IRQ_MAGICIAN_EP (IRQ_BOARD_START + 1) 69*4882a593Smuzhiyun #define IRQ_MAGICIAN_BT (IRQ_BOARD_START + 2) 70*4882a593Smuzhiyun #define IRQ_MAGICIAN_VBUS (IRQ_BOARD_START + 3) 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #define MAGICIAN_NR_IRQS (IRQ_BOARD_START + 8) 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun /* 75*4882a593Smuzhiyun * CPLD EGPIOs 76*4882a593Smuzhiyun */ 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun #define MAGICIAN_EGPIO_BASE PXA_NR_BUILTIN_GPIO 79*4882a593Smuzhiyun #define MAGICIAN_EGPIO(reg,bit) \ 80*4882a593Smuzhiyun (MAGICIAN_EGPIO_BASE + 8*reg + bit) 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun /* output */ 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #define EGPIO_MAGICIAN_TOPPOLY_POWER MAGICIAN_EGPIO(0, 2) 85*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LED_POWER MAGICIAN_EGPIO(0, 5) 86*4882a593Smuzhiyun #define EGPIO_MAGICIAN_GSM_RESET MAGICIAN_EGPIO(0, 6) 87*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LCD_POWER MAGICIAN_EGPIO(0, 7) 88*4882a593Smuzhiyun #define EGPIO_MAGICIAN_SPK_POWER MAGICIAN_EGPIO(1, 0) 89*4882a593Smuzhiyun #define EGPIO_MAGICIAN_EP_POWER MAGICIAN_EGPIO(1, 1) 90*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IN_SEL0 MAGICIAN_EGPIO(1, 2) 91*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IN_SEL1 MAGICIAN_EGPIO(1, 3) 92*4882a593Smuzhiyun #define EGPIO_MAGICIAN_MIC_POWER MAGICIAN_EGPIO(1, 4) 93*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CODEC_RESET MAGICIAN_EGPIO(1, 5) 94*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CODEC_POWER MAGICIAN_EGPIO(1, 6) 95*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BL_POWER MAGICIAN_EGPIO(1, 7) 96*4882a593Smuzhiyun #define EGPIO_MAGICIAN_SD_POWER MAGICIAN_EGPIO(2, 0) 97*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CARKIT_MIC MAGICIAN_EGPIO(2, 1) 98*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IR_RX_SHUTDOWN MAGICIAN_EGPIO(2, 2) 99*4882a593Smuzhiyun #define EGPIO_MAGICIAN_FLASH_VPP MAGICIAN_EGPIO(2, 3) 100*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BL_POWER2 MAGICIAN_EGPIO(2, 4) 101*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BQ24022_ISET2 MAGICIAN_EGPIO(2, 5) 102*4882a593Smuzhiyun #define EGPIO_MAGICIAN_NICD_CHARGE MAGICIAN_EGPIO(2, 6) 103*4882a593Smuzhiyun #define EGPIO_MAGICIAN_GSM_POWER MAGICIAN_EGPIO(2, 7) 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun /* input */ 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun /* USB or AC charger type */ 108*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_TYPE MAGICIAN_EGPIO(4, 0) 109*4882a593Smuzhiyun /* 110*4882a593Smuzhiyun * Vbus is detected 111*4882a593Smuzhiyun * FIXME behaves like (6,3), may differ for host/device 112*4882a593Smuzhiyun */ 113*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_VBUS MAGICIAN_EGPIO(4, 1) 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID0 MAGICIAN_EGPIO(5, 0) 116*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID1 MAGICIAN_EGPIO(5, 1) 117*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID2 MAGICIAN_EGPIO(5, 2) 118*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LCD_SELECT MAGICIAN_EGPIO(5, 3) 119*4882a593Smuzhiyun #define EGPIO_MAGICIAN_nSD_READONLY MAGICIAN_EGPIO(5, 4) 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun #define EGPIO_MAGICIAN_EP_INSERT MAGICIAN_EGPIO(6, 1) 122*4882a593Smuzhiyun /* FIXME behaves like (4,1), may differ for host/device */ 123*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_INSERTED MAGICIAN_EGPIO(6, 3) 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun #endif /* _MAGICIAN_H_ */ 126