9 --> |
9 --> |
10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-73F220EA-F41F-56A5-BAEB-4A37174CFD1F" xml:lang="en"><title>Power |
12 <concept id="GUID-73F220EA-F41F-56A5-BAEB-4A37174CFD1F" xml:lang="en"><title>Power |
13 Management</title><shortdesc>Describes the power management policies. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
13 Management</title><shortdesc>Describes the power management policies. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 <p>The MMC Controller manages the power to the MultiMediaCard hardware. </p> |
14 <p>The MMC Controller manages the power to the MultiMediaCard hardware.</p> |
15 <section id="GUID-C54927A1-8631-5DA0-9DDF-C399577B44C0"><title>Normal power |
15 <section id="GUID-C54927A1-8631-5DA0-9DDF-C399577B44C0"><title>Normal power |
16 up and power down handling</title> <p>Before card commands can be issued to |
16 up and power down handling</title> <p>Before card commands can be issued to |
17 a card, three operations are required: </p> <ul> |
17 a card, three operations are required: </p> <ul> |
18 <li id="GUID-6E4702E7-FAC7-5AFE-BB83-73EAE2774E71"><p>power must be applied |
18 <li id="GUID-6E4702E7-FAC7-5AFE-BB83-73EAE2774E71"><p>power must be applied |
19 to the card, i.e. VDD must be turned on </p> </li> |
19 to the card, i.e. VDD must be turned on </p> </li> |
21 the power model must be set, e.g. requesting a necessary system clock </p> </li> |
21 the power model must be set, e.g. requesting a necessary system clock </p> </li> |
22 <li id="GUID-43728A53-CD2B-565A-B436-E3C59B61710E"><p>the clock to the card |
22 <li id="GUID-43728A53-CD2B-565A-B436-E3C59B61710E"><p>the clock to the card |
23 interface must be switched on. </p> </li> |
23 interface must be switched on. </p> </li> |
24 </ul> <p>All three operations are performed as part of the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state |
24 </ul> <p>All three operations are performed as part of the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state |
25 machine function which then issues the sequence of commands involved in performing |
25 machine function which then issues the sequence of commands involved in performing |
26 the CIM_UPDATE_ACQ macro to initialise a card stack. </p> <p>There are two |
26 the <codeph>CIM_UPDATE_ACQ</codeph> macro to initialize a card stack. </p> <p>There |
27 cases: </p> <ul> |
27 are two cases: </p> <ul> |
28 <li id="GUID-EB3AC768-EF05-5BED-867F-E0C65E2AB43E"><p>Local drive requests, |
28 <li id="GUID-EB3AC768-EF05-5BED-867F-E0C65E2AB43E"><p>Local drive requests, |
29 i.e. those originating from a media driver - if the card is not fully powered |
29 i.e. those originating from a media driver - if the card is not fully powered |
30 up when such a request is received, then the local media device driver automatically |
30 up when such a request is received, then the local media device driver automatically |
31 precedes the request with an instruction to the controller to power up the |
31 precedes the request with an instruction to the controller to power up the |
32 card. This results in <xref href="GUID-45B97680-1756-3559-8A2D-2F2E851AD6A7.dita#GUID-45B97680-1756-3559-8A2D-2F2E851AD6A7/GUID-C0E6CF87-8E8B-3B14-9B7E-302E3688CFA5"><apiname>DMMCSocket::InitiatePowerUpSequence()</apiname></xref> being |
32 card. This results in <xref href="GUID-45B97680-1756-3559-8A2D-2F2E851AD6A7.dita#GUID-45B97680-1756-3559-8A2D-2F2E851AD6A7/GUID-C0E6CF87-8E8B-3B14-9B7E-302E3688CFA5"><apiname>DMMCSocket::InitiatePowerUpSequence()</apiname></xref> being |
33 called, which in turn invokes the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state |
33 called, which in turn invokes the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state |
34 machine function. </p> <p>Once the MultiMediaCard stack has been initialised, |
34 machine function. </p> <p>Once the MultiMediaCard stack has been initialized, |
35 the MultiMediaCard controller calls <xref href="GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB.dita#GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB/GUID-0FEFB701-D37A-320F-A49B-6126EF608BF7"><apiname>DPBusSocket::PowerUpSequenceComplete()</apiname></xref> to |
35 the MultiMediaCard controller calls <xref href="GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB.dita#GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB/GUID-0FEFB701-D37A-320F-A49B-6126EF608BF7"><apiname>DPBusSocket::PowerUpSequenceComplete()</apiname></xref> to |
36 signal the completion of initialisation back to the local media driver, and |
36 signal the completion of initialization back to the local media driver, and |
37 this can then continue to open a media driver and continue with the original |
37 this can then continue to open a media driver and continue with the original |
38 request. </p> <p>This automatic re-powering of the card applies in all situations |
38 request. </p> <p>This automatic re-powering of the card applies in all situations |
39 which can lead to the card not being powered: media change, machine power |
39 which can lead to the card not being powered: media change, machine power |
40 down, card inactivity timeout, VDD power problem etc. In most cases, the process |
40 down, card inactivity timeout, VDD power problem etc. In most cases, the process |
41 of restoring power results in the closure of any existing media driver and |
41 of restoring power results in the closure of any existing media driver and |
43 is able to block, this means that no special mechanism is necessary to allow |
43 is able to block, this means that no special mechanism is necessary to allow |
44 for this potential long-running power up sequence prior to a request on the |
44 for this potential long-running power up sequence prior to a request on the |
45 device. </p> </li> |
45 device. </p> </li> |
46 <li id="GUID-D8AA1127-B8B2-52BB-A242-A487A875B908"><p>Requests not originating |
46 <li id="GUID-D8AA1127-B8B2-52BB-A242-A487A875B908"><p>Requests not originating |
47 via a local media device driver, for example device drivers for I/O cards |
47 via a local media device driver, for example device drivers for I/O cards |
48 - if the MultiMediaCard stack is not initialised when the client submits a |
48 - if the MultiMediaCard stack is not initialized when the client submits a |
49 session, then the MultiMediaCard controller automatically precedes the request |
49 session, then the MultiMediaCard controller automatically precedes the request |
50 with a call to the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state machine |
50 with a call to the <xref href="GUID-B5193656-9819-3E00-A335-EEF1726115A5.dita#GUID-B5193656-9819-3E00-A335-EEF1726115A5/GUID-D8D3CFDC-5292-3853-8618-5D3A21F5C4D7"><apiname>DMMCStack::CIMInitStackSM()</apiname></xref> state machine |
51 function. </p> </li> |
51 function. </p> </li> |
52 </ul> <p>The MultiMediaCard controller will normally be configured with an |
52 </ul> <p>The MultiMediaCard controller will normally be configured with an |
53 inactivity timer. If a given period elapses where there is no bus activity, |
53 inactivity timer. If a given period elapses where there is no bus activity, |
56 is the bus power down sequence. The length of this inactivity timeout period |
56 is the bus power down sequence. The length of this inactivity timeout period |
57 is set in the platform specific layer as part of porting the controller, and |
57 is set in the platform specific layer as part of porting the controller, and |
58 can be disabled completely if required; see the reference to porting the <xref href="GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B.dita#GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B/GUID-99529E84-17E1-5F23-9A1B-EBE3976D9B14">PsuInfo()</xref> function |
58 can be disabled completely if required; see the reference to porting the <xref href="GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B.dita#GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B/GUID-99529E84-17E1-5F23-9A1B-EBE3976D9B14">PsuInfo()</xref> function |
59 as part of implementing the <xref href="GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B.dita#GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B/GUID-3A1E907E-A74D-59CB-A1D6-FEF4849EF2D5">DMMCPsu |
59 as part of implementing the <xref href="GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B.dita#GUID-E55B4FE5-517C-5A23-8ACA-E28EE202330B/GUID-3A1E907E-A74D-59CB-A1D6-FEF4849EF2D5">DMMCPsu |
60 derived class</xref>. </p> <p>Clients of the controller do not need to worry |
60 derived class</xref>. </p> <p>Clients of the controller do not need to worry |
61 about re-initialising the stack following such a power down as the controller |
61 about re-initializing the stack following such a power down as the controller |
62 does this automatically. </p> <p>In the event of a PSU voltage check failure, |
62 does this automatically. </p> <p>In the event of a PSU voltage check failure, |
63 the controller performs the bus power down sequence. It will not re-power |
63 the controller performs the bus power down sequence. It will not re-power |
64 the problem card and will expect it to be removed. </p> <p>The power model |
64 the problem card and will expect it to be removed. </p> <p>The power model |
65 calls <xref href="GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB.dita#GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB/GUID-F037A26D-0C72-364F-B3CD-87B9FF22AAB1"><apiname>DPBusSocket::DoPowerDown()</apiname></xref> when the machine is about |
65 calls <xref href="GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB.dita#GUID-C988CAE6-9073-3851-A0B0-5479D1A34CFB/GUID-F037A26D-0C72-364F-B3CD-87B9FF22AAB1"><apiname>DPBusSocket::DoPowerDown()</apiname></xref> when the machine is about |
66 to be normally turned off (due to the off key being pressed or keyboard/touch |
66 to be normally turned off (due to the off key being pressed or keyboard/touch |