FreeNOS
lib
libarch
arm
sunxi
SunxiClockControl.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2020 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
#ifndef __LIBARCH_ARM_SUNXI_SUNXICLOCKCONTROL_H
19
#define __LIBARCH_ARM_SUNXI_SUNXICLOCKCONTROL_H
20
21
#include <FreeNOS/System.h>
22
#include <
Types.h
>
23
38
class
SunxiClockControl
39
{
40
private
:
41
43
static
const
Address
IOBase
= 0x01C20000;
44
45
private
:
46
50
enum
Registers
51
{
52
};
53
54
public
:
55
59
enum
Clock
60
{
61
ClockEmacTx
= 1,
62
ClockEphy
,
63
};
64
68
enum
Reset
69
{
70
ResetEmacTx
= 1,
71
ResetEphy
,
72
};
73
77
enum
Result
78
{
79
Success
,
80
IOError
,
81
InvalidArgument
82
};
83
84
public
:
85
91
Result
initialize
();
92
100
Result
enable
(
const
Clock
clock);
101
109
Result
deassert
(
const
Reset
reset);
110
111
private
:
112
114
Arch::IO
m_io
;
115
};
116
123
#endif
/* __LIBARCH_ARM_SUNXI_SUNXICLOCKCONTROL_H */
Types.h
SunxiClockControl::ResetEmacTx
@ ResetEmacTx
Definition:
SunxiClockControl.h:70
SunxiClockControl::initialize
Result initialize()
Perform initialization.
Definition:
SunxiClockControl.cpp:21
SunxiClockControl::InvalidArgument
@ InvalidArgument
Definition:
SunxiClockControl.h:81
ARMIO
Input/Output operations specific to the ARM architecture.
Definition:
ARMIO.h:39
SunxiClockControl::enable
Result enable(const Clock clock)
Enable a clock.
Definition:
SunxiClockControl.cpp:37
Address
unsigned long Address
A memory address.
Definition:
Types.h:131
SunxiClockControl::IOError
@ IOError
Definition:
SunxiClockControl.h:80
SunxiClockControl::Success
@ Success
Definition:
SunxiClockControl.h:79
SunxiClockControl::IOBase
static const Address IOBase
Physical base memory address of the CCU module.
Definition:
SunxiClockControl.h:43
SunxiClockControl::ClockEphy
@ ClockEphy
Definition:
SunxiClockControl.h:62
SunxiClockControl::Registers
Registers
Hardware registers.
Definition:
SunxiClockControl.h:50
SunxiClockControl
Allwinner Clock Control Unit (CCU)
Definition:
SunxiClockControl.h:38
SunxiClockControl::Reset
Reset
Reset signal identifiers.
Definition:
SunxiClockControl.h:68
SunxiClockControl::ResetEphy
@ ResetEphy
Definition:
SunxiClockControl.h:71
SunxiClockControl::Clock
Clock
Clock identifiers.
Definition:
SunxiClockControl.h:59
SunxiClockControl::Result
Result
Result codes.
Definition:
SunxiClockControl.h:77
SunxiClockControl::deassert
Result deassert(const Reset reset)
De-assert a reset signal.
Definition:
SunxiClockControl.cpp:65
SunxiClockControl::ClockEmacTx
@ ClockEmacTx
Definition:
SunxiClockControl.h:61
SunxiClockControl::m_io
Arch::IO m_io
Memory I/O object.
Definition:
SunxiClockControl.h:114
Generated by
1.8.17