FreeNOS
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 
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  {
63  };
64 
68  enum Reset
69  {
72  };
73 
77  enum Result
78  {
82  };
83 
84  public:
85 
92 
100  Result enable(const Clock clock);
101 
109  Result deassert(const Reset reset);
110 
111  private:
112 
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