FreeNOS
lib
libarch
arm
broadcom
BroadcomPower.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Niek Linnenbank
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#include <
Log.h
>
19
#include "
BroadcomPower.h
"
20
21
BroadcomPower::BroadcomPower
()
22
: m_mask(UART0)
23
{
24
}
25
26
BroadcomPower::Result
BroadcomPower::initialize
()
27
{
28
// Initialize mailbox
29
if
(
m_mailbox
.
initialize
() !=
BroadcomMailbox::Success
)
30
{
31
ERROR
(
"failed to initialize mailbox"
);
32
return
IOError
;
33
}
34
// Initialize register stats
35
m_mailbox
.
write
(
BroadcomMailbox::PowerManagement
,
m_mask
);
36
return
Success
;
37
}
38
39
BroadcomPower::Result
BroadcomPower::enable
(
BroadcomPower::Device
device)
40
{
41
m_mask
|= device;
42
m_mailbox
.
write
(
BroadcomMailbox::PowerManagement
,
m_mask
);
43
m_mailbox
.
read
(
BroadcomMailbox::PowerManagement
, &
m_mask
);
44
return
Success
;
45
}
BroadcomPower::initialize
Result initialize()
Initialize the power manager.
Definition:
BroadcomPower.cpp:26
BroadcomPower::m_mailbox
BroadcomMailbox m_mailbox
Mailbox for communicating with the GPU.
Definition:
BroadcomPower.h:89
BroadcomPower::Success
@ Success
Definition:
BroadcomPower.h:59
BroadcomMailbox::Success
@ Success
Definition:
BroadcomMailbox.h:84
Log.h
BroadcomPower::enable
Result enable(Device device)
Set power on.
Definition:
BroadcomPower.cpp:39
BroadcomPower::m_mask
u32 m_mask
Current bitmask of enabled devices.
Definition:
BroadcomPower.h:92
BroadcomPower::BroadcomPower
BroadcomPower()
Constructor.
Definition:
BroadcomPower.cpp:21
BroadcomPower.h
BroadcomPower::Result
Result
Result codes.
Definition:
BroadcomPower.h:57
BroadcomPower::IOError
@ IOError
Definition:
BroadcomPower.h:60
BroadcomMailbox::PowerManagement
@ PowerManagement
Definition:
BroadcomMailbox.h:93
ERROR
#define ERROR(msg)
Output an error message.
Definition:
Log.h:61
BroadcomMailbox::read
Result read(Channel channel, u32 *message) const
Read 28-bit message.
Definition:
BroadcomMailbox.cpp:37
BroadcomMailbox::write
Result write(Channel channel, u32 message)
Write 28-bit message.
Definition:
BroadcomMailbox.cpp:54
BroadcomPower::Device
Device
Powered devices.
Definition:
BroadcomPower.h:46
BroadcomMailbox::initialize
Result initialize()
Initialize the Mailbox.
Definition:
BroadcomMailbox.cpp:25
Generated by
1.8.17