Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
This file is part of MutekH.
MutekH is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; version 2.1 of the
License.
MutekH is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/>.
Copyright Nicolas Pouillon <nipo@ssji.net> (c) 2016
*/
#include <device/resources.h>
#include <device/class/iomux.h>
#include <device/class/i2c.h>
#include <device/class/uart.h>
#include <device/class/gpio.h>
#include <device/class/cmu.h>
#include <arch/nrf5x/ids.h>
DEV_DECLARE_STATIC(clock_dev, "clock", 0, nrf5x_clock_drv,
// Muxes
DEV_STATIC_RES_CMU_MUX(NRF_CLOCK_OSC_HFXO, NRF_CLOCK_SRC_HFCLK, 0b100, 1, 1),
DEV_STATIC_RES_CMU_MUX(NRF_CLOCK_OSC_HFRC, NRF_CLOCK_SRC_HFCLK, 0b011, 1, 1),
DEV_STATIC_RES_CMU_MUX(NRF_CLOCK_OSC_LFRC, NRF_CLOCK_SRC_LFCLK, 0b111, 1, 1),
// Oscillators
DEV_STATIC_RES_CMU_OSC_ACC(NRF_CLOCK_OSC_LFRC, 0b110, 32768, 1, 7, 18), // 246ppm
DEV_STATIC_RES_CMU_OSC_ACC(NRF_CLOCK_OSC_LFRC, 0b001, 32768, 1, 2, 25), // 2%
DEV_STATIC_RES_CMU_OSC_ACC(NRF_CLOCK_OSC_HFXO, 0b111, 32000000, 1, 7, 15), // 31ppm
DEV_STATIC_RES_CMU_OSC_ACC(NRF_CLOCK_OSC_HFRC, 0b111, 16000000, 1, 2, 25), // 2%
NRF_STATIC_RES_PERIPHERAL_MEM(NRF5X_CLOCK),
DEV_STATIC_RES_DEV_ICU("/cpu"),
DEV_STATIC_RES_IRQ(0, NRF5X_CLOCK, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 1),
NRF_STATIC_RES_PERIPHERAL_MEM(NRF5X_TEMP),
DEV_STATIC_RES_IRQ(1, NRF5X_TEMP, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 1),
);
#if defined(CONFIG_DRIVER_NRF5X_UART)
DEV_DECLARE_STATIC(uart_dev, "uart0", 0, nrf5x_uart_drv,
NRF_STATIC_RES_PERIPHERAL_MEM(NRF5X_UART0),
DEV_STATIC_RES_DEV_ICU("/cpu"),,
DEV_STATIC_RES_IRQ(0, NRF5X_UART0, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 1)
DEV_STATIC_RES_DEV_IOMUX("/gpio"),
DEV_STATIC_RES_UART(1000000, 8, DEV_UART_PARITY_NONE, 1, 0, 0),
DEV_STATIC_RES_IOMUX("tx", 0, 19, 0, 0),
DEV_STATIC_RES_IOMUX("rx", 0, 20, 0, 0)
);
#endif
#if defined(CONFIG_DRIVER_NRF5X_SPI)
DEV_DECLARE_STATIC(spi_dev, "spi0", 0, nrf5x_spi_drv,
NRF_STATIC_RES_PERIPHERAL_MEM(NRF5X_SPI1),
DEV_STATIC_RES_DEV_ICU("/cpu"),
DEV_STATIC_RES_IRQ(0, NRF5X_SPI1, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 1),
DEV_STATIC_RES_DEV_IOMUX("/gpio"),
DEV_STATIC_RES_IOMUX("clk", 0, 29, 0, 0),
DEV_STATIC_RES_IOMUX("mosi", 0, 28, 0, 0),
DEV_STATIC_RES_IOMUX("miso", 0, 27, 0, 0)
);
#endif