Skip to content

Commit 696cd5a

Browse files
committed
variants: add support for arduino_mkrzero
Add support for the arduino mkr zero board. - Add the LED builtin in arduino mkrzero - Add sercom as i2c because that's how it is described in arduino_mkrzero.dts: pinctrl-0 = <&sercom0_i2c_default>; Signed-off-by: Dhruva Gole <[email protected]>
1 parent 8a28d3a commit 696cd5a

File tree

3 files changed

+127
-0
lines changed

3 files changed

+127
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2022 Dhruva Gole <[email protected]>
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
/ {
7+
zephyr,user {
8+
d0_gpios = <&arduino_mkr_header 0 0>;
9+
d1_gpios = <&arduino_mkr_header 1 0>;
10+
d2_gpios = <&arduino_mkr_header 2 0>;
11+
d3_gpios = <&arduino_mkr_header 3 0>;
12+
d4_gpios = <&arduino_mkr_header 4 0>;
13+
d5_gpios = <&arduino_mkr_header 5 0>;
14+
d6_gpios = <&arduino_mkr_header 6 0>;
15+
d7_gpios = <&arduino_mkr_header 7 0>;
16+
d8_gpios = <&arduino_mkr_header 8 0>;
17+
d9_gpios = <&arduino_mkr_header 9 0>;
18+
d10_gpios = <&arduino_mkr_header 10 0>;
19+
d11_gpios = <&arduino_mkr_header 11 0>;
20+
d12_gpios = <&arduino_mkr_header 12 0>;
21+
d13_gpios = <&arduino_mkr_header 13 0>;
22+
d14_gpios = <&arduino_mkr_header 14 0>; /* D14 / A0 */
23+
d15_gpios = <&arduino_mkr_header 15 0>;
24+
d16_gpios = <&arduino_mkr_header 16 0>;
25+
d17_gpios = <&arduino_mkr_header 17 0>;
26+
d18_gpios = <&arduino_mkr_header 18 0>; /* D18 / A4 / I2C-SDA */
27+
d19_gpios = <&arduino_mkr_header 19 0>; /* D19 / A5 / I2C-SCL */
28+
d20_gpios = <&arduino_mkr_header 20 0>;
29+
d21_gpios = <&arduino_mkr_header 21 0>;
30+
};
31+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/*
2+
* Copyright (c) 2022 Dhruva Gole
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#pragma once
8+
#include <zephyr/drivers/gpio.h>
9+
#include <zephyr/kernel.h>
10+
#include <zephyr/drivers/i2c.h>
11+
12+
#define LED_BUILTIN 22
13+
#define LED0_NODE DT_ALIAS(led0)
14+
15+
static struct gpio_dt_spec d0 =
16+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d0_gpios);
17+
static struct gpio_dt_spec d1 =
18+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d1_gpios);
19+
static struct gpio_dt_spec d2 =
20+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d2_gpios);
21+
static struct gpio_dt_spec d3 =
22+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d3_gpios);
23+
static struct gpio_dt_spec d4 =
24+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d4_gpios);
25+
static struct gpio_dt_spec d5 =
26+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d5_gpios);
27+
static struct gpio_dt_spec d6 =
28+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d6_gpios);
29+
static struct gpio_dt_spec d7 =
30+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d7_gpios);
31+
static struct gpio_dt_spec d8 =
32+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d8_gpios);
33+
static struct gpio_dt_spec d9 =
34+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d9_gpios);
35+
static struct gpio_dt_spec d10 =
36+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d10_gpios);
37+
static struct gpio_dt_spec d11 =
38+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d11_gpios);
39+
static struct gpio_dt_spec d12 =
40+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d12_gpios);
41+
static struct gpio_dt_spec d13 =
42+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d13_gpios);
43+
static struct gpio_dt_spec d14 =
44+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d13_gpios);
45+
static struct gpio_dt_spec d15 =
46+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d15_gpios);
47+
static struct gpio_dt_spec d16 =
48+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d16_gpios);
49+
static struct gpio_dt_spec d17 =
50+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d17_gpios);
51+
static struct gpio_dt_spec d18 =
52+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d18_gpios);
53+
static struct gpio_dt_spec d19 =
54+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d19_gpios);
55+
static struct gpio_dt_spec d20 =
56+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d20_gpios);
57+
static struct gpio_dt_spec d21 =
58+
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), d21_gpios);
59+
static struct gpio_dt_spec led_builtin = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
60+
61+
static struct gpio_dt_spec *arduino_pins[23] = {
62+
&d0, &d1, &d2, &d3, &d4, &d5, &d6, &d7,
63+
&d8, &d9, &d10, &d11, &d12, &d13, &d14, &d15,
64+
&d16, &d17, &d18, &d19, &d20, &d21, &led_builtin};
65+
66+
enum digitalPins {
67+
D0,
68+
D1,
69+
D2,
70+
D3,
71+
D4,
72+
D5,
73+
D6,
74+
D7,
75+
D8,
76+
D9,
77+
D10,
78+
D11,
79+
D12,
80+
D13,
81+
D14,
82+
D15,
83+
D16,
84+
D17,
85+
D18,
86+
D19,
87+
D20,
88+
D21,
89+
LED
90+
};
91+
92+
const static struct device *i2c_dev = DEVICE_DT_GET(DT_NODELABEL(sercom0));

variants/variants.h

+4
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,7 @@
1010
#ifdef CONFIG_BOARD_NRF52840DK_NRF52840
1111
#include "nrf52840dk_nrf52840_pinmap.h"
1212
#endif /* CONFIG_BOARD_NRF52840DK_NRF52840 */
13+
#ifdef CONFIG_BOARD_ARDUINO_MKRZERO
14+
#include "arduino_mkrzero_pinmap.h"
15+
#endif // CONFIG_BOARD_ARDUINO_MKRZERO
16+

0 commit comments

Comments
 (0)