blob: f2088a4df097c801d78d5b4259b4de2d4aa502d6 [file] [log] [blame]
/*
* Copyright (c) 2020 Stephane Dorre <stephane.dorre@gmail.com>
*
* SPDX-License-Identifier: Apache-2.0
*
* DTS for Pine64 PineTime DevKit-0 board
* Further info: https://wiki.pine64.org/index.php/PineTime
*
*/
/dts-v1/;
#include <nordic/nrf52832_qfaa.dtsi>
/ {
model = "Pine64 PineTime DevKit0";
compatible = "pine64,pinetime-devkit0";
chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,bt-mon-uart = &uart0;
zephyr,bt-c2h-uart = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};
aliases {
led0 = &blled0; /* backlight low */
led1 = &blled1; /* backlight mid */
led2 = &blled2; /* backlight high */
led3 = &statusled; /* status led, may be not populated */
sw0 = &key_in; /* key in */
sw1 = &key_out; /* key out */
};
leds {
compatible = "gpio-leds";
blled0: bl_led_0 {
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
label = "Backlight LED 0";
};
blled1: bl_led_1 {
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
label = "Backlight LED 1";
};
blled2: bl_led_2 {
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
label = "Backlight LED 2";
};
statusled: led_3 {
gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
label = "Status Led";
};
};
buttons {
compatible = "gpio-keys";
key_in: button_0 {
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
label = "Key in";
};
key_out: button_1 {
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
label = "Key out";
};
};
};
&gpiote {
status = "okay";
};
&gpio0 {
status = "okay";
};
&uart0 {
compatible = "nordic,nrf-uart";
current-speed = <115200>;
status = "okay";
tx-pin = <11>;
rx-pin = <30>;
};
&i2c0 {
compatible = "nordic,nrf-twim";
status = "okay";
sda-pin = <6>;
scl-pin = <7>;
clock-frequency = <I2C_BITRATE_FAST>; /* 400KHz */
/* BOSCH BMA421 Triaxial Acceleration Sensor (1000KHz) */
bma421: bma421@18 {
compatible = "bosch,bma4xx";
reg = <0x18>;
label = "BMA421";
int1-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
};
/* TianYiHeXin HRS3300 PPG Hear Rate Sensor (800KHz) */
hrs3300: hrs3300@44 {
compatible = "tian-yi-he-xin-hrs3300";
reg = <0x44>;
label = "HRS3300";
};
/* Hynitron CST816S Capacitive Touch Controller (400KHz) */
cst816s: cst816s@15 {
compatible = "hynitron-cst816s";
reg = <0x15>;
label = "CST816S";
irq-gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
rst-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
};
};
&spi1 {
compatible = "nordic,nrf-spi";
status = "okay";
sck-pin = <2>;
mosi-pin = <3>;
miso-pin = <4>;
cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>, <&gpio0 25 GPIO_ACTIVE_LOW>;
/* Macronix MX25L CMOS Flash Memory */
mx25l: mx25l@0 {
compatible = "mxicy,cmos-mx25l";
reg = <0>;
spi-max-frequency = <8000000>; /* 8MHz */
label = "CMOS MX25L";
};
/* Sitronix ST7789V LCD */
st7789v: st7789v@1 {
compatible = "sitronix,st7789v";
reg = <1>;
spi-max-frequency = <8000000>; /* 8MHz */
label = "ST7789V";
cmd-data-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; /* DET */
reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* RESX reset */
width = <240>;
height = <240>;
x-offset = <0>;
y-offset = <0>;
vcom = <0x19>;
gctrl = <0x35>;
vrhs = <0x12>;
vdvs = <0x20>;
mdac = <0x00>;
gamma = <0x01>;
colmod = <0x05>;
lcm = <0x2c>;
porch-param = [0c 0c 00 33 33];
cmd2en-param = [5a 69 02 01];
pwctrl1-param = [a4 a1];
pvgam-param = [D0 04 0D 11 13 2B 3F 54 4C 18 0D 0B 1F 23];
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0];
rgb-param = [CD 08 14];
};
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
/* MCUboot bootloader */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0xc000>;
};
/* main firmware partition */
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000C000 0x32000>;
};
/* next firmware update */
slot1_partition: partition@3e000 {
label = "image-1";
reg = <0x0003E000 0x32000>;
};
/* needed to slot0-slot1 swapping */
scratch_partition: partition@70000 {
label = "image-scratch";
reg = <0x00070000 0xa000>;
};
/* to be used in firmware */
storage_partition: partition@7a000 {
label = "storage";
reg = <0x0007a000 0x00006000>;
};
};
};