diff options
Diffstat (limited to 'meta/packages/uboot/u-boot-mkimage-openmoko-native/unbusy-i2c.patch')
| -rw-r--r-- | meta/packages/uboot/u-boot-mkimage-openmoko-native/unbusy-i2c.patch | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/meta/packages/uboot/u-boot-mkimage-openmoko-native/unbusy-i2c.patch b/meta/packages/uboot/u-boot-mkimage-openmoko-native/unbusy-i2c.patch deleted file mode 100644 index 680b301620..0000000000 --- a/meta/packages/uboot/u-boot-mkimage-openmoko-native/unbusy-i2c.patch +++ /dev/null | |||
| @@ -1,88 +0,0 @@ | |||
| 1 | board/neo1973/gta01/gta01.c: added logic to detect pending PMU interrupts | ||
| 2 | board/neo1973/gta01/gta01.c (neo1973_new_second, neo1973_on_key_pressed): only | ||
| 3 | poll PMU if there is a pending interrupt | ||
| 4 | board/neo1973/gta01/pcf50606.c (pcf50606_initial_regs): cleared (unmasked) | ||
| 5 | SECONDM in INT1M | ||
| 6 | |||
| 7 | - Werner Almesberger <werner@openmoko.org> | ||
| 8 | |||
| 9 | Index: u-boot/board/neo1973/gta01/gta01.c | ||
| 10 | =================================================================== | ||
| 11 | --- u-boot.orig/board/neo1973/gta01/gta01.c | ||
| 12 | +++ u-boot/board/neo1973/gta01/gta01.c | ||
| 13 | @@ -375,19 +375,60 @@ | ||
| 14 | #endif | ||
| 15 | } | ||
| 16 | |||
| 17 | +static int pwr_int_pending(void) | ||
| 18 | +{ | ||
| 19 | + S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); | ||
| 20 | + | ||
| 21 | +#if defined(CONFIG_ARCH_GTA01B_v4) | ||
| 22 | + return !(gpio->GPGDAT & (1 << 1)); /* EINT9/GPG1 */ | ||
| 23 | +#else | ||
| 24 | + return !(gpio->GPGDAT & (1 << 8)); /* EINT16/GPG8 */ | ||
| 25 | +#endif /* !CONFIG_ARCH_GTA01B_v4 */ | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +static int have_int1(uint8_t mask) | ||
| 29 | +{ | ||
| 30 | + static uint8_t pending = 0; | ||
| 31 | + | ||
| 32 | + if (pwr_int_pending()) { | ||
| 33 | + /* | ||
| 34 | + * We retrieve all interupts, so that we clear any stray ones | ||
| 35 | + * in INT2 and INT3. | ||
| 36 | + */ | ||
| 37 | + uint8_t int1,int2,int3; | ||
| 38 | + | ||
| 39 | + int1 = pcf50606_reg_read(PCF50606_REG_INT1); | ||
| 40 | + int2 = pcf50606_reg_read(PCF50606_REG_INT2); | ||
| 41 | + int3 = pcf50606_reg_read(PCF50606_REG_INT3); | ||
| 42 | + pending |= int1; | ||
| 43 | + } | ||
| 44 | + if (!(pending & mask)) | ||
| 45 | + return 0; | ||
| 46 | + pending &= ~mask; | ||
| 47 | + return 1; | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | int neo1973_new_second(void) | ||
| 51 | { | ||
| 52 | - return pcf50606_reg_read(PCF50606_REG_INT1) & PCF50606_INT1_SECOND; | ||
| 53 | + return have_int1(PCF50606_INT1_SECOND); | ||
| 54 | } | ||
| 55 | |||
| 56 | int neo1973_on_key_pressed(void) | ||
| 57 | { | ||
| 58 | - return !(pcf50606_reg_read(PCF50606_REG_OOCS) & PFC50606_OOCS_ONKEY); | ||
| 59 | + static int pressed = -1; | ||
| 60 | + | ||
| 61 | + if (pressed == -1 || | ||
| 62 | + have_int1(PCF50606_INT1_ONKEYF | PCF50606_INT1_ONKEYR)) { | ||
| 63 | + pressed = !(pcf50606_reg_read(PCF50606_REG_OOCS) & | ||
| 64 | + PFC50606_OOCS_ONKEY); | ||
| 65 | +} | ||
| 66 | + return pressed; | ||
| 67 | } | ||
| 68 | |||
| 69 | int neo1973_aux_key_pressed(void) | ||
| 70 | { | ||
| 71 | S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); | ||
| 72 | + | ||
| 73 | if (gpio->GPFDAT & (1 << 6)) | ||
| 74 | return 0; | ||
| 75 | return 1; | ||
| 76 | Index: u-boot/board/neo1973/gta01/pcf50606.c | ||
| 77 | =================================================================== | ||
| 78 | --- u-boot.orig/board/neo1973/gta01/pcf50606.c | ||
| 79 | +++ u-boot/board/neo1973/gta01/pcf50606.c | ||
| 80 | @@ -6,7 +6,7 @@ | ||
| 81 | const u_int8_t pcf50606_initial_regs[__NUM_PCF50606_REGS] = { | ||
| 82 | [PCF50606_REG_OOCS] = 0x00, | ||
| 83 | /* gap */ | ||
| 84 | - [PCF50606_REG_INT1M] = PCF50606_INT1_SECOND, | ||
| 85 | + [PCF50606_REG_INT1M] = 0x00, | ||
| 86 | [PCF50606_REG_INT2M] = 0x00, | ||
| 87 | [PCF50606_REG_INT3M] = PCF50606_INT3_TSCPRES, | ||
| 88 | [PCF50606_REG_OOCC1] = PCF50606_OOCC1_RTCWAK | | ||
