FreeNOS
BroadcomGPIO.h
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#ifndef __LIBARCH_ARM_BROADCOMGPIO_H
19#define __LIBARCH_ARM_BROADCOMGPIO_H
20
21#include <FreeNOS/System.h>
22#include <Types.h>
23
39{
40 private:
41
42 static const Address GPIOBase = 0x200000;
43
48 {
50 };
51
52 public:
53
57 enum Mode
58 {
59 Input = 0,
60 Output = 1,
66 Function5 = 2
67 };
68
78
79 public:
80
85
91 virtual Result initialize();
92
101 virtual Result setAltFunction(Size pin, uint function);
102
103 private:
104
107};
108
115#endif /* __LIBARCH_ARM_BROADCOMGPIO_H */
Input/Output operations specific to the ARM architecture.
Definition ARMIO.h:40
Broadcom (2835) GPIO controller implementation.
Registers
Hardware registers.
Mode
Pin modes.
static const Address GPIOBase
virtual Result setAltFunction(Size pin, uint function)
Set alternate function.
BroadcomGPIO()
Constructor.
virtual Result initialize()
Initialize the Controller.
Arch::IO m_io
I/O instance.
Result
Result code.
unsigned long Address
A memory address.
Definition Types.h:131
unsigned int uint
Unsigned integer number.
Definition Types.h:44
unsigned int Size
Any sane size indicator cannot go negative.
Definition Types.h:128