blob: 52a42b060c55342afba6c0b80da316b04fb0560a [file] [log] [blame]
/*
* Copyright (c) 2018 Endre Karlson
* Copyright (c) 2018 Peter Bigot Consulting, LLC
*
* SPDX-License-Identifier: Apache-2.0
*/
/* Assignments common to all Feather-based Particle mesh boards.
*
* NOTE: This file is replicated in particle_{argon,boron,xenon}.
* Changes should be made in all instances. */
#include "mesh_feather-pinctrl.dtsi"
/ {
aliases {
led0 = &user_led;
led1 = &status_red;
led2 = &status_green;
led3 = &status_blue;
sw0 = &mode_button;
sw1 = &reset_button;
};
chosen {
zephyr,console = &uart0;
zephyr,uart-mcumgr = &uart0;
zephyr,shell-uart = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
user_led: led_0 {
gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
label = "User LED";
};
status_red: led_1 {
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
label = "Red LED";
};
status_green: led_2 {
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
label = "Green LED";
};
status_blue: led_3 {
gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
label = "Blue LED";
};
};
gpio_keys {
compatible = "gpio-keys";
mode_button: button_0 {
gpios = <&gpio0 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Mode Button";
};
reset_button: button_1 {
gpios = <&gpio0 18 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Reset Button";
};
};
mesh_header: connector {
compatible = "particle-gen3-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &gpio0 26 0>, /* SDA */
<1 0 &gpio0 27 0>, /* SCL */
<2 0 &gpio1 1 0>, /* PWM3 */
<3 0 &gpio1 2 0>, /* PWM3 */
<4 0 &gpio1 8 0>, /* PWM1 */
<5 0 &gpio1 10 0>, /* PWM1 */
<6 0 &gpio1 11 0>, /* PWM1 */
<7 0 &gpio1 12 0>, /* PWM0 */
<8 0 &gpio1 3 0>, /* PWM1 */
<9 0 &gpio0 6 0>, /* TX */
<10 0 &gpio0 8 0>, /* RX */
<11 0 &gpio1 14 0>, /* MISO */
<12 0 &gpio1 13 0>, /* MOSI */
<13 0 &gpio1 15 0>, /* SCK */
<14 0 &gpio0 31 0>, /* SS */
<15 0 &gpio0 30 0>, /* ADC4 = AIN6 */
<16 0 &gpio0 29 0>, /* ADC3 = AIN5 */
<17 0 &gpio0 28 0>, /* ADC2 = AIN4 */
<18 0 &gpio0 4 0>, /* ADC1 = AIN2 */
<19 0 &gpio0 3 0>, /* ADC0 = AIN1 */
<20 0 &gpio0 11 0>, /* MODEn */
<21 0 &gpio0 18 0>; /* RESETn */
};
feather_header: feather_connector {
compatible = "adafruit-feather-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <12 0 &gpio0 26 0>, /* SDA */
<13 0 &gpio0 27 0>, /* SCL */
<14 0 &gpio1 1 0>, /* PWM3 */
<15 0 &gpio1 2 0>, /* PWM3 */
<16 0 &gpio1 8 0>, /* PWM1 */
<17 0 &gpio1 10 0>, /* PWM1 */
<18 0 &gpio1 11 0>, /* PWM1 */
<19 0 &gpio1 12 0>, /* PWM0 */
<20 0 &gpio1 3 0>, /* PWM1 */
/* 11 not connected */
<10 0 &gpio0 6 0>, /* TX */
<9 0 &gpio0 8 0>, /* RX */
<8 0 &gpio1 14 0>, /* MISO */
<7 0 &gpio1 13 0>, /* MOSI */
<6 0 &gpio1 15 0>, /* SCK */
<5 0 &gpio0 31 0>, /* SS */
<4 0 &gpio0 30 0>, /* ADC4 = AIN6 */
<3 0 &gpio0 29 0>, /* ADC3 = AIN5 */
<2 0 &gpio0 28 0>, /* ADC2 = AIN4 */
<1 0 &gpio0 4 0>, /* ADC1 = AIN2 */
<0 0 &gpio0 3 0>; /* ADC0 = AIN1 */
};
};
feather_adc: &adc { /* feather ADC */
status = "okay";
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000C000>;
};
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000C000 0x00067000>;
};
slot1_partition: partition@73000 {
label = "image-1";
reg = <0x00073000 0x00067000>;
};
scratch_partition: partition@da000 {
label = "image-scratch";
reg = <0x000da000 0x0001e000>;
};
/*
* The flash starting at 0x000f8000 and ending at
* 0x000fffff is reserved for use by the application.
*/
/*
* Storage partition will be used by FCB/LittleFS/NVS
* if enabled.
*/
storage_partition: partition@f8000 {
label = "storage";
reg = <0x000f8000 0x00008000>;
};
};
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpiote {
status = "okay";
};
arduino_i2c: &i2c0 { /* feather I2C */
compatible = "nordic,nrf-twi";
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>;
pinctrl-0 = <&i2c0_default>;
pinctrl-1 = <&i2c0_sleep>;
pinctrl-names = "default", "sleep";
};
feather_i2c: &i2c0 { };
/* TWI1 used on Boron; also see mesh_feather_spi_spi1.dtsi */
&spi2 { /* dedicated MX25L */
compatible = "nordic,nrf-spi";
status = "okay";
cs-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&spi2_default>;
pinctrl-1 = <&spi2_sleep>;
pinctrl-names = "default", "sleep";
mx25l32: mx25l3233f@0 {
compatible = "jedec,spi-nor";
label = "MX25L3233F";
reg = <0>;
spi-max-frequency = <80000000>;
wp-gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
hold-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
size = <0x2000000>;
has-dpd;
t-enter-dpd = <10000>;
t-exit-dpd = <100000>;
jedec-id = [c2 20 16];
sfdp-bfp = [
e5 20 f1 ff ff ff ff 01 44 eb 08 6b 08 3b 04 bb
ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52
10 d8 00 ff
];
};
};
/* see mesh_feather_spi1_spi3.dtsi */
feather_serial: &uart0 { /* feather UART1 */
compatible = "nordic,nrf-uarte";
current-speed = <115200>;
status = "okay";
/* optional mesh_feather_uart1_rtscts.dtsi */
pinctrl-0 = <&uart0_default>;
pinctrl-1 = <&uart0_sleep>;
pinctrl-names = "default", "sleep";
};
zephyr_udc0: &usbd {
compatible = "nordic,nrf-usbd";
status = "okay";
};