diff --git a/boards/arm/adafruit_trinket_m0/CMakeLists.txt b/boards/arm/adafruit_trinket_m0/CMakeLists.txt
new file mode 100644
index 0000000..96ab6ca
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/CMakeLists.txt
@@ -0,0 +1,4 @@
+if(CONFIG_PINMUX_SAM0)
+  zephyr_library()
+  zephyr_library_sources(pinmux.c)
+endif()
diff --git a/boards/arm/adafruit_trinket_m0/Kconfig.board b/boards/arm/adafruit_trinket_m0/Kconfig.board
new file mode 100644
index 0000000..8369b64
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/Kconfig.board
@@ -0,0 +1,8 @@
+# Kconfig - Adafruit Trinket M0 board configuration
+#
+# Copyright (c) 2018 Google LLC.
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_ADAFRUIT_TRINKET_M0
+	bool "Adafruit Trinket M0"
+	depends on SOC_PART_NUMBER_SAMD21E18A
diff --git a/boards/arm/adafruit_trinket_m0/Kconfig.defconfig b/boards/arm/adafruit_trinket_m0/Kconfig.defconfig
new file mode 100644
index 0000000..3d909fb
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/Kconfig.defconfig
@@ -0,0 +1,11 @@
+# Kconfig - Adafruit Trinket M0 board configuration
+#
+# Copyright (c) 2018 Google LLC.
+# SPDX-License-Identifier: Apache-2.0
+
+if BOARD_ADAFRUIT_TRINKET_M0
+
+config BOARD
+	default adafruit_trinket_m0
+
+endif
diff --git a/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.dts b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.dts
new file mode 100644
index 0000000..787ecd8
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.dts
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2018 Google LLC.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/dts-v1/;
+#include <atmel/samd21.dtsi>
+
+/ {
+	model = "Adafruit Trinket M0";
+	compatible = "adafruit,trinket-m0", "atmel,samd21e18a", "atmel,samd21";
+
+	chosen {
+		zephyr,console = &sercom0;
+		zephyr,sram = &sram0;
+		zephyr,flash = &flash0;
+		zephyr,code-partition = &code_partition;
+	};
+};
+
+&sercom0 {
+	status = "ok";
+	current-speed = <115200>;
+};
+
+&sercom2 {
+	status = "ok";
+	current-speed = <115200>;
+};
+
+/* Drives the on-board DotStar LED */
+&spi1 {
+	status = "ok";
+};
+
+&flash0 {
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		boot_partition: partition@0 {
+			label = "uf2";
+			reg = <0x00000000 0x2000>;
+			read-only;
+		};
+
+		code_partition: partition@2000 {
+			label = "code";
+			reg = <0x2000 0x3A000>;
+			read-only;
+		};
+
+		/*
+		 * The final 16 KiB is reserved for the application
+		 * and is used by NFFS if enabled.
+		 */
+
+#if defined(CONFIG_FILE_SYSTEM_NFFS)
+		nffs_partition: partition@3c000 {
+			label = "nffs";
+			reg = <0x0003c000 0x00004000>;
+		};
+#endif
+	};
+};
diff --git a/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.yaml b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.yaml
new file mode 100644
index 0000000..23a3ada
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0.yaml
@@ -0,0 +1,9 @@
+identifier: adafruit_trinket_m0
+name: Adafruit Trinket M0
+type: mcu
+arch: arm
+ram: 32
+flash: 256
+toolchain:
+  - zephyr
+  - gccarmemb
diff --git a/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0_defconfig b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0_defconfig
new file mode 100644
index 0000000..b24a20e
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/adafruit_trinket_m0_defconfig
@@ -0,0 +1,23 @@
+CONFIG_ARM=y
+CONFIG_SOC_FAMILY_SAM0=y
+CONFIG_SOC_SERIES_SAMD21=y
+CONFIG_SOC_PART_NUMBER_SAMD21E18A=y
+CONFIG_BOARD_ADAFRUIT_TRINKET_M0=y
+CONFIG_SOC_ATMEL_SAMD_OSC8M_AS_MAIN=y
+CONFIG_CORTEX_M_SYSTICK=y
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_UART_SAM0=y
+CONFIG_UART_INTERRUPT_DRIVEN=y
+CONFIG_GPIO=y
+CONFIG_GPIO_SAM0=y
+CONFIG_WATCHDOG=y
+CONFIG_WDT_SAM0=y
+CONFIG_SPI=y
+CONFIG_SPI_SAM0=y
+CONFIG_SPI_1=y
+CONFIG_SPI_1_IRQ_PRI=0
+CONFIG_SPI_LEGACY_API=n
+CONFIG_PINMUX=y
+CONFIG_PINMUX_SAM0=y
diff --git a/boards/arm/adafruit_trinket_m0/board.cmake b/boards/arm/adafruit_trinket_m0/board.cmake
new file mode 100644
index 0000000..9525725
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/board.cmake
@@ -0,0 +1,4 @@
+# Copyright (c) 2018 Google LLC.
+# SPDX-License-Identifier: Apache-2.0
+
+include(${ZEPHYR_BASE}/boards/common/bossac.board.cmake)
diff --git a/boards/arm/adafruit_trinket_m0/board.h b/boards/arm/adafruit_trinket_m0/board.h
new file mode 100644
index 0000000..391aa68
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/board.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018 Google LLC.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef __INC_BOARD_H
+#define __INC_BOARD_H
+
+#include <soc.h>
+
+/* LED on PA10 */
+#define LED0_GPIO_PORT	CONFIG_GPIO_SAM0_PORTA_LABEL
+#define LED0_GPIO_PIN	10
+
+#define CONFIG_UART_SAM0_SERCOM0_PADS \
+	(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1))
+#define CONFIG_UART_SAM0_SERCOM2_PADS \
+	(SERCOM_USART_CTRLA_RXPO(1) | SERCOM_USART_CTRLA_TXPO(0))
+
+#define CONFIG_SPI_SAM0_SERCOM0_PADS \
+	(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(1))
+
+#define CONFIG_SPI_SAM0_SERCOM1_PADS \
+	(SERCOM_SPI_CTRLA_DIPO(2) | SERCOM_SPI_CTRLA_DOPO(0))
+
+#endif /* __INC_BOARD_H */
diff --git a/boards/arm/adafruit_trinket_m0/doc/adafruit_trinket_m0.rst b/boards/arm/adafruit_trinket_m0/doc/adafruit_trinket_m0.rst
new file mode 100644
index 0000000..c2dcc21
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/doc/adafruit_trinket_m0.rst
@@ -0,0 +1,149 @@
+.. _adafruit_trinket_m0:
+
+Adafruit Trinket M0
+###################
+
+Overview
+********
+
+The Adafruit Trinket M0 is a tiny (27 mm x 15 mm) ARM development
+board with an onboard RGB LED, USB port, and range of I/O broken out
+onto 5 pins.
+
+.. image:: img/adafruit_trinket_m0.png
+     :width: 500px
+     :align: center
+     :alt: Adafruit Trinket M0
+
+Hardware
+********
+
+- ATSAMD21E18A ARM Cortex-M0+ processor at 48 MHz
+- 256 KiB flash memory and 32 KiB of RAM
+- Internal trimmed 8 MHz oscillator
+- A user LED
+- An RGB DotStar LED
+- Native USB port
+- One reset button
+
+Supported Features
+==================
+
+The adafruit_trinket_m0 board configuration supports the following hardware
+features:
+
++-----------+------------+--------------------------------------+
+| Interface | Controller | Driver/Component                     |
++===========+============+======================================+
+| NVIC      | on-chip    | nested vector interrupt controller   |
++-----------+------------+--------------------------------------+
+| Flash     | on-chip    | Can be used with NFFS to store files |
++-----------+------------+--------------------------------------+
+| SYSTICK   | on-chip    | systick                              |
++-----------+------------+--------------------------------------+
+| WDT       | on-chip    | Watchdog                             |
++-----------+------------+--------------------------------------+
+| GPIO      | on-chip    | I/O ports                            |
++-----------+------------+--------------------------------------+
+| USART     | on-chip    | Serial ports                         |
++-----------+------------+--------------------------------------+
+| SPI       | on-chip    | Serial Peripheral Interface ports    |
++-----------+------------+--------------------------------------+
+
+Other hardware features are not currently supported by Zephyr.
+
+The default configuration can be found in the Kconfig file
+:file:`boards/arm/adafruit_trinket_m0/adafruit_trinket_m0_defconfig`.
+
+Connections and IOs
+===================
+
+The `Adafruit Trinket M0 Learn site`_ has detailed information about
+the board including `pinouts`_ and the `schematic`_.
+
+System Clock
+============
+
+The SAMD21 MCU is configured to use the 8 MHz internal oscillator
+with the on-chip PLL generating the 48 MHz system clock.  The internal
+APB and GCLK unit are set up in the same way as the upstream Arduino
+libraries.
+
+Serial Port
+===========
+
+The SAMD21 MCU has 6 SERCOM based USARTs.  On the Trinket, SERCOM0 is
+the Zephyr console and is available on pins 3 (RX) and 4 (TX).
+SERCOM2 is available on pins 2 (RX) and 0 (TX).
+
+SPI Port
+========
+
+The SAMD21 MCU has 6 SERCOM based SPIs.  On the Trinket, SPI1 is used
+to drive the DotStar RGB LED.  SERCOM0 can be put into SPI mode and
+used to connect to devices over pin 2 (MISO), pin 4 (MOSI), and pin 3
+(SCK).
+
+Programming and Debugging
+*************************
+
+The Trinket M0 ships the BOSSA compatible UF2 bootloader.  The
+bootloader can be entered by quickly tapping the reset button twice.
+
+Flashing
+========
+
+#. Build the Zephyr kernel and the :ref:`hello_world` sample application:
+
+   .. zephyr-app-commands::
+      :zephyr-app: samples/hello_world
+      :board: adafruit_trinket_m0
+      :goals: build
+      :compact:
+
+#. Connect the Trinket M0 to your host computer using USB
+
+#. Connect a 3.3 V USB to serial adapter to the board and to the
+   host.  See the `Serial Port`_ section above for the board's pin
+   connections.
+
+#. Run your favorite terminal program to listen for output. Under Linux the
+   terminal should be :code:`/dev/ttyACM0`. For example:
+
+   .. code-block:: console
+
+      $ minicom -D /dev/ttyACM0 -o
+
+   The -o option tells minicom not to send the modem initialization
+   string. Connection should be configured as follows:
+
+   - Speed: 115200
+   - Data: 8 bits
+   - Parity: None
+   - Stop bits: 1
+
+#. Tap the reset button twice quickly to enter bootloader mode
+
+#. Flash the image:
+
+   .. zephyr-app-commands::
+      :zephyr-app: samples/hello_world
+      :board: adafruit_trinket_m0
+      :goals: flash
+      :compact:
+
+   You should see "Hello World! arm" in your terminal.
+
+References
+**********
+
+.. target-notes::
+
+.. _Adafruit Trinket M0 Learn site:
+    https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino
+
+.. _pinouts:
+    https://learn.adafruit.com/assets/49778
+
+.. _schematic:
+    https://learn.adafruit.com/assets/45723
diff --git a/boards/arm/adafruit_trinket_m0/doc/img/adafruit_trinket_m0.png b/boards/arm/adafruit_trinket_m0/doc/img/adafruit_trinket_m0.png
new file mode 100644
index 0000000..f4e3037
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/doc/img/adafruit_trinket_m0.png
Binary files differ
diff --git a/boards/arm/adafruit_trinket_m0/pinmux.c b/boards/arm/adafruit_trinket_m0/pinmux.c
new file mode 100644
index 0000000..d4f9fe1
--- /dev/null
+++ b/boards/arm/adafruit_trinket_m0/pinmux.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 Google LLC.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <init.h>
+#include <pinmux.h>
+
+static int board_pinmux_init(struct device *dev)
+{
+	struct device *muxa = device_get_binding(CONFIG_PINMUX_SAM0_A_LABEL);
+
+	ARG_UNUSED(dev);
+
+#if CONFIG_UART_SAM0_SERCOM0_BASE_ADDRESS
+	/* SERCOM0 on RX=PA7/pad 3, TX=PA6/pad 2 */
+	pinmux_pin_set(muxa, 7, PINMUX_FUNC_D);
+	pinmux_pin_set(muxa, 6, PINMUX_FUNC_D);
+#endif
+
+#if CONFIG_UART_SAM0_SERCOM2_BASE_ADDRESS
+	/* SERCOM2 on RX=PA9/pad 1, TX=PA8/pad 0 */
+	pinmux_pin_set(muxa, 9, PINMUX_FUNC_D);
+	pinmux_pin_set(muxa, 8, PINMUX_FUNC_D);
+#endif
+
+#if CONFIG_UART_SAM0_SERCOM1_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_UART_SAM0_SERCOM3_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_UART_SAM0_SERCOM4_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_UART_SAM0_SERCOM5_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+
+#if CONFIG_SPI_SAM0_SERCOM0_BASE_ADDRESS
+	/* SPI SERCOM0 on MISO=PA9/pad 1, MOSI=PA6/pad 2, SCK=PA7/pad 3 */
+	pinmux_pin_set(muxa, 9, PINMUX_FUNC_D);
+	pinmux_pin_set(muxa, 6, PINMUX_FUNC_D);
+	pinmux_pin_set(muxa, 7, PINMUX_FUNC_D);
+#endif
+
+#if CONFIG_SPI_SAM0_SERCOM1_BASE_ADDRESS
+	/* SPI SERCOM1 on MOSI=PA0/pad 0, SCK=PA1/pad 1 */
+	pinmux_pin_set(muxa, 0, PINMUX_FUNC_D);
+	pinmux_pin_set(muxa, 1, PINMUX_FUNC_D);
+#endif
+
+#if CONFIG_SPI_SAM0_SERCOM2_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_SPI_SAM0_SERCOM3_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_SPI_SAM0_SERCOM4_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+#if CONFIG_SPI_SAM0_SERCOM5_BASE_ADDRESS
+#error Pin mapping is not configured
+#endif
+
+	return 0;
+}
+
+SYS_INIT(board_pinmux_init, PRE_KERNEL_1, CONFIG_PINMUX_INIT_PRIORITY);
