PortalPlayer PP502x Device Enable Registers
Overview
The PortalPlayer PP502x SoC have three device enable registers: DEV_EN = 0x6000600c DEV_EN2 = 0x60006010 DEV_EN3 = 0x60006044
Each bit in these registers enables and disables a particular part of the device. Hence, it is thought that this is the key to improving power usage and battery life on these devices. If we can figure out what each bit does, then we can selectively enable and disable bits that we're not using to give a nice battery life boost. This page collects all the information we know so far about these registers.
Known bits
The following bits are already known.
DEV_EN
| Bit | Function | | 0 | | | 1 | External Device Clocks (according to firmware/drivers/audio/as3514.c:154) | | 2 | System | | 3 | USB0, needs to be set for USB-initialization and when USB is inserted. Otherwise should be unset to save power. | | 4 | | | 5 | 5G, nano: must be set, otherwise system freezes | | 6 | Serial 0 | | 7 | Serial 1 | | 8 | 5G: enables GPIO? | | 9 | | | 10 | | | 11 | I2S? | | 12 | I2C? | | 13 | | | 14 | ATA | | 15 | | | 16 | OPTO/PIEZO | | 17 | 4G: backlight PWM | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | USB1, needs to be set for USB-initialization and when USB is inserted. Otherwise should be unset to save power. | | 23 | Firewire | | 24 | | | 25 | IDE0 | | 26 | LCD | | 27 | | | 28 | | | 29 | | | 30 | 5G, nano: must be set, otherwise system freezes | | 31 | 5G, nano: must be set at startup (otherwise doesn't start), can be unset later |
DEV_EN2
| Bit | Function | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | PP5020: ADC | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | nano, H10, 4G Color/Photo: LCD | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | | | 26 | | | 27 | | | 28 | | | 29 | | | 30 | | | 31 | |
DEV_EN3
| Bit | Function | | 0 | 5G: must be set, otherwise system freezes | | 1 | 5G: must be set, otherwise system freezes | | 2 | 5G: must be set, otherwise crash on playback | | 3 | 5G: must be set at startup (otherise doesn't reboot into disk mode), can be unset later | | 4 | 5G: must be set, otherwise system freezes / Doesn't Boot if unset | | 5 | 5G: must be set, otherwise crash on playback | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | | | 26 | | | 27 | | | 28 | | | 29 | | | 30 | | | 31 | |
DEV_INIT1
| Bit | Function | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | H10: remote | | 8 | H10: ADC remote, mrobe100: needed for startup | | 9 | | | 10 | | | 11 | H10: wheel | | 12 | H10: ADC wheel, mrobe100: needed for startup | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | nano, 5G: needed for button detection (e.g. hold) | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | | | 26 | e280: needed for LCD, H10, 4G Color/Photo: needed for startup | | 27 | nano: needed for LCD, H10, 4G Color/Photo: needed for startup | | 28 | e280: needed for LCD, H10, 4G Color/Photo: needed for startup | | 29 | nano: needed for LCD | | 30 | e280: needed for LCD, H10, 4G Color/Photo: needed for startup | | 31 | nano: needed for LCD, H10, 4G Color/Photo: needed for startup |
DEV_INIT2
| Bit | Function | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | | | 26 | | | 27 | | | 28 | | | 29 | | | 30 | PP502x: enable PLL | | 31 | |
Known values for devices
The following lists the values as obtained from the I/O ports debug screen for some devices: devices (idle, no hold-button, no USB connected, not boosted):
| Device | DEV_EN | DEV_EN2 | DEV_EN3 | DEV_INIT1 | DEV_INIT2 | | iPod 4G Greyscale | 0xC2C3197F | 0x00000000 | 0x0007003F | | | | iPod 4G Color Greyscale + FS#8379 (idle) | 0xC2831977 0xC2C3197F | 0x00000000 0x00002000 | 0x0007003F | 0x00004000 | 0x00000000 | | iPod Color Mini 1G (svn < 16259) | 0xC2C3197F 0xC2801977 | 0x00002000 0x00000000 | 0x0007003F | 0x00040000 | 0x00000000 | | iPod Mini 1G 2G + FS#8379 (idle) | 0xC2801977 0xC2C1197F | 0x00000000 | 0x0007003F | 0x00040000 | 0x00000000 | | iPod Mini 2G Video (5.5G) | 0xC2C1197F | 0x00000000 | 0x0007003F | | | | iPod Video (5.5G) (svn >= 16259) | 0xC2C1197F 0xC0011926 | 0x00000000 | 0x0007003F 0x0000003F | 0x00040000 | 0x00000000 | | iPod Video (5.5G) iriver H10 20GB + FS#8379 (idle) | 0xC0011926 0xC240197F | 0x00000000 0x00002020 | 0x0000003F 0x0007003F | 0x00040000 | 0x00000000 | | iriver H10 20GB 6GB | 0xC240197F | 0x00002020 | 0x0007003F | | | | iriver iiriver H10 6GB (5.5G) (svn >= 16259) | 0xC240197F 0xC2001926 | 0x00002020 | 0x0007003F 0x0000003F | 0xDC001100 | 0x00000000 | | iiriver H10 Sansa c240 6GB (5.5G) + FS#8379 (idle) | 0xC2001926 0xC040597F | 0x00002020 0x00000000 | 0x0000003F | 0xDC001100 | 0x00000000 | | Sansa c240 e280 | 0xC040597F 0xC440597F | 0x00000000 | 0x0007003F | | | | Sansa e280 e200 (svn >= 16259) | 0xC440597F 0xC4005926 | 0x00000000 | 0x0007003F 0x0000003F | 0x54000000 | 0x00000000 | | Sansa e200 + FS#8379 e250 (-radio) ( (idle) JonathanGordon) | 0xC4005926 0xC440597F | 0x00000000 0x00002000 | 0x0000003F 0x0007003F | 0x54000000 | 0x00000000 | | Sansa e250 (-radio) (JonathanGordon) | 0xC440597F | 0x00002000 | 0x0007003F | | |
Revision r21 - 10 Feb 2008 - 16:01 - AndreeBuschmann
Revision r20 - 05 Feb 2008 - 17:02 - AndreeBuschmann
Copyright © by the contributing authors.
|