drivers: counter_nrfx_rtc: Port driver to DTS

This commit updates the counter_nrfx_rtc driver in order to
use device tree infrastructure.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
This commit is contained in:
Piotr Zięcik 2019-02-26 15:18:17 +01:00 committed by Carles Cufí
commit 298b841873
8 changed files with 98 additions and 35 deletions

View file

@ -158,16 +158,6 @@ config COUNTER_RTC0
if COUNTER_RTC0
config COUNTER_RTC0_NAME
string "Counter device name"
default "RTC Counter 0"
help
Specify the device name for Counter driver instance.
config COUNTER_RTC0_IRQ_PRI
int "Counter interrupt priority"
default 0
config COUNTER_RTC0_PRESCALER
int "RTC prescaler"
default 0
@ -186,16 +176,6 @@ config COUNTER_RTC1
if COUNTER_RTC1
config COUNTER_RTC1_NAME
string "Counter device name"
default "RTC Counter 1"
help
Specify the device name for Counter driver instance.
config COUNTER_RTC1_IRQ_PRI
int "Counter interrupt priority"
default 0
config COUNTER_RTC1_PRESCALER
int "RTC prescaler"
default 0
@ -213,16 +193,6 @@ config COUNTER_RTC2
if COUNTER_RTC2
config COUNTER_RTC2_NAME
string "Counter device name"
default "RTC Counter 2"
help
Specify the device name for Counter driver instance.
config COUNTER_RTC2_IRQ_PRI
int "Counter interrupt priority"
default 0
config COUNTER_RTC2_PRESCALER
int "RTC prescaler"
default 0

View file

@ -245,8 +245,8 @@ static const struct counter_driver_api counter_nrfx_driver_api = {
} \
static int counter_##idx##_init(struct device *dev) \
{ \
IRQ_CONNECT(NRFX_IRQ_NUMBER_GET(NRF_RTC##idx), \
CONFIG_COUNTER_RTC##idx##_IRQ_PRI, \
IRQ_CONNECT(DT_NORDIC_NRF_RTC_RTC_##idx##_IRQ, \
DT_NORDIC_NRF_RTC_RTC_##idx##_IRQ_PRIORITY, \
nrfx_isr, nrfx_rtc_##idx##_irq_handler, 0); \
const nrfx_rtc_config_t config = { \
.prescaler = CONFIG_COUNTER_RTC##idx##_PRESCALER, \
@ -269,7 +269,8 @@ static const struct counter_driver_api counter_nrfx_driver_api = {
.rtc = NRFX_RTC_INSTANCE(idx), \
LOG_INSTANCE_PTR_INIT(log, LOG_MODULE_NAME, idx) \
}; \
DEVICE_AND_API_INIT(rtc_##idx, CONFIG_COUNTER_RTC##idx##_NAME, \
DEVICE_AND_API_INIT(rtc_##idx, \
DT_NORDIC_NRF_RTC_RTC_##idx##_LABEL, \
counter_##idx##_init, \
&counter_##idx##_data, \
&nrfx_counter_##idx##_config.info, \

View file

@ -47,6 +47,8 @@
gpiote-0 = &gpiote;
wdt-0 = &wdt;
qdec-0 = &qdec;
rtc-0 = &rtc0;
rtc-1 = &rtc1;
};
soc {
@ -141,6 +143,22 @@
label = "SPI_1";
};
rtc0: rtc@4000b000 {
compatible = "nordic,nrf-rtc";
reg = <0x4000b000 0x1000>;
interrupts = <11 1>;
status = "ok";
label = "RTC_0";
};
rtc1: rtc@40011000 {
compatible = "nordic,nrf-rtc";
reg = <0x40011000 0x1000>;
interrupts = <17 1>;
status = "ok";
label = "RTC_1";
};
wdt: watchdog@40010000 {
compatible = "nordic,nrf-watchdog";
reg = <0x40010000 0x1000>;

View file

@ -45,6 +45,8 @@
wdt-0 = &wdt;
pwm-0 = &pwm0;
qdec-0 = &qdec;
rtc-0 = &rtc0;
rtc-1 = &rtc1;
};
soc {
@ -128,6 +130,22 @@
label = "SPI_0";
};
rtc0: rtc@4000b000 {
compatible = "nordic,nrf-rtc";
reg = <0x4000b000 0x1000>;
interrupts = <11 1>;
status = "ok";
label = "RTC_0";
};
rtc1: rtc@40011000 {
compatible = "nordic,nrf-rtc";
reg = <0x40011000 0x1000>;
interrupts = <17 1>;
status = "ok";
label = "RTC_1";
};
wdt: watchdog@40010000 {
compatible = "nordic,nrf-watchdog";
reg = <0x40010000 0x1000>;

View file

@ -51,6 +51,9 @@
pwm-1 = &pwm1;
pwm-2 = &pwm2;
qdec-0 = &qdec;
rtc-0 = &rtc0;
rtc-1 = &rtc1;
rtc-2 = &rtc2;
};
soc {
@ -181,6 +184,30 @@
label = "SPI_2";
};
rtc0: rtc@4000b000 {
compatible = "nordic,nrf-rtc";
reg = <0x4000b000 0x1000>;
interrupts = <11 1>;
status = "ok";
label = "RTC_0";
};
rtc1: rtc@40011000 {
compatible = "nordic,nrf-rtc";
reg = <0x40011000 0x1000>;
interrupts = <17 1>;
status = "ok";
label = "RTC_1";
};
rtc2: rtc@40024000 {
compatible = "nordic,nrf-rtc";
reg = <0x40024000 0x1000>;
interrupts = <36 1>;
status = "ok";
label = "RTC_2";
};
wdt: watchdog@40010000 {
compatible = "nordic,nrf-watchdog";
reg = <0x40010000 0x1000>;

View file

@ -58,6 +58,9 @@
pwm-2 = &pwm2;
pwm-3 = &pwm3;
qdec-0 = &qdec;
rtc-0 = &rtc0;
rtc-1 = &rtc1;
rtc-2 = &rtc2;
};
soc {
@ -224,6 +227,30 @@
label = "SPI_3";
};
rtc0: rtc@4000b000 {
compatible = "nordic,nrf-rtc";
reg = <0x4000b000 0x1000>;
interrupts = <11 1>;
status = "ok";
label = "RTC_0";
};
rtc1: rtc@40011000 {
compatible = "nordic,nrf-rtc";
reg = <0x40011000 0x1000>;
interrupts = <17 1>;
status = "ok";
label = "RTC_1";
};
rtc2: rtc@40024000 {
compatible = "nordic,nrf-rtc";
reg = <0x40024000 0x1000>;
interrupts = <36 1>;
status = "ok";
label = "RTC_2";
};
usbd: usbd@40027000 {
compatible = "nordic,nrf-usbd";
reg = <0x40027000 0x1000>;

View file

@ -191,6 +191,7 @@ rtc0: rtc@14000 {
reg = <0x14000 0x1000>;
interrupts = <20 1>;
status = "ok";
label = "RTC_0";
};
rtc1: rtc@15000 {
@ -198,6 +199,7 @@ rtc1: rtc@15000 {
reg = <0x15000 0x1000>;
interrupts = <21 1>;
status = "ok";
label = "RTC_1";
};
clock: clock@5000 {

View file

@ -44,11 +44,11 @@ const char *devices[] = {
#endif
#ifdef CONFIG_COUNTER_RTC0
/* Nordic RTC0 may be reserved for Bluetooth */
CONFIG_COUNTER_RTC0_NAME,
DT_NORDIC_NRF_RTC_RTC_0_LABEL,
#endif
/* Nordic RTC1 is used for the system clock */
#ifdef CONFIG_COUNTER_RTC2
CONFIG_COUNTER_RTC2_NAME,
DT_NORDIC_NRF_RTC_RTC_2_LABEL,
#endif
#ifdef CONFIG_COUNTER_IMX_EPIT_1
DT_COUNTER_IMX_EPIT_1_LABEL,