Symbian3/PDK/Source/GUID-73F220EA-F41F-56A5-BAEB-4A37174CFD1F.dita
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
     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