release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > DeviceEnableRegistersPP502x (compare)

Difference: DeviceEnableRegistersPP502x (r21 vs. r20)

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    

r22 - 11 May 2008 - 21:43:09 - BertrikSikken

Revision r21 - 10 Feb 2008 - 16:01 - AndreeBuschmann
Revision r20 - 05 Feb 2008 - 17:02 - AndreeBuschmann
Copyright by the contributing authors.