diff --git a/boards/arm/particle_boron/CMakeLists.txt b/boards/arm/particle_boron/CMakeLists.txt new file mode 100644 index 00000000000000..218a0602483ab4 --- /dev/null +++ b/boards/arm/particle_boron/CMakeLists.txt @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 + +zephyr_library() +zephyr_library_sources(board.c) diff --git a/boards/arm/particle_boron/Kconfig.defconfig b/boards/arm/particle_boron/Kconfig.defconfig index 9c7427ddd0a87a..8bc3d28058e4f3 100644 --- a/boards/arm/particle_boron/Kconfig.defconfig +++ b/boards/arm/particle_boron/Kconfig.defconfig @@ -50,4 +50,20 @@ endif # IEEE802154 config BT_CTLR default BT +if MODEM + +config UART_1_NRF_UARTE + default y + +config UART_1_NRF_FLOW_CONTROL + default y + +config MODEM_UBLOX_SARA_R4 + default y + +config UART_INTERRUPT_DRIVEN + default y + +endif # MODEM + endif # BOARD_PARTICLE_BORON diff --git a/boards/arm/particle_boron/board.c b/boards/arm/particle_boron/board.c new file mode 100644 index 00000000000000..23f1cbb77317a3 --- /dev/null +++ b/boards/arm/particle_boron/board.c @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2019 Foundries.io + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include "board.h" +#include + +static int particle_boron_init(struct device *dev) +{ + + ARG_UNUSED(dev); + +#if defined(CONFIG_MODEM_UBLOX_SARA_R4) + struct device *gpio_dev; + + /* Enable the serial buffer for SARA-R4 modem */ + gpio_dev = device_get_binding(SERIAL_BUFFER_ENABLE_GPIO_NAME); + if (!gpio_dev) { + return -ENODEV; + } + + gpio_pin_configure(gpio_dev, V_INT_DETECT_GPIO_PIN, GPIO_DIR_IN); + + gpio_pin_configure(gpio_dev, SERIAL_BUFFER_ENABLE_GPIO_PIN, + GPIO_DIR_OUT); +#endif + + return 0; +} + +/* needs to be done after GPIO driver init */ +SYS_INIT(particle_boron_init, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); diff --git a/boards/arm/particle_boron/board.h b/boards/arm/particle_boron/board.h new file mode 100644 index 00000000000000..566c653f4d7b09 --- /dev/null +++ b/boards/arm/particle_boron/board.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2019 Foundries.io + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __INC_BOARD_H +#define __INC_BOARD_H + +/* pin used to enable the buffer power */ +#define SERIAL_BUFFER_ENABLE_GPIO_NAME DT_NORDIC_NRF_GPIO_0_LABEL +#define SERIAL_BUFFER_ENABLE_GPIO_PIN 25 + +/* pin used to detect V_INT (buffer power) */ +#define V_INT_DETECT_GPIO_PIN 2 + +#endif /* __INC_BOARD_H */ diff --git a/boards/arm/particle_boron/particle_boron.dts b/boards/arm/particle_boron/particle_boron.dts index f442e4b698b3c4..1c4b3256164dc5 100644 --- a/boards/arm/particle_boron/particle_boron.dts +++ b/boards/arm/particle_boron/particle_boron.dts @@ -6,6 +6,7 @@ /dts-v1/; #include +#include #include "mesh_feather.dtsi" / { @@ -23,10 +24,20 @@ &uart1 { /* u-blox SARA-U2 or SARA-R4 */ compatible = "nordic,nrf-uarte"; - current-speed = <921600>; + current-speed = <115200>; status = "ok"; + tx-pin = <37>; rx-pin = <36>; rts-pin = <39>; cts-pin = <38>; + + sara_r4 { + compatible = "ublox,sara-r4"; + label = "ublox-sara-r4"; + status = "ok"; + + mdm-power-gpios-gpio = <&gpio0 16 0>; + mdm-reset-gpios-gpio = <&gpio0 12 0>; + }; }; diff --git a/boards/arm/particle_boron/particle_boron_defconfig b/boards/arm/particle_boron/particle_boron_defconfig index baa4c16a99c103..9c04e10772832c 100644 --- a/boards/arm/particle_boron/particle_boron_defconfig +++ b/boards/arm/particle_boron/particle_boron_defconfig @@ -18,7 +18,6 @@ CONFIG_GPIO=y # enable uart driver CONFIG_SERIAL=y CONFIG_UART_0_NRF_UARTE=y -CONFIG_UART_1_NRF_UARTE=y # enable power I2C interface CONFIG_I2C=y