Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | /*
* 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>
#include "pinetime_devkit0-pinctrl.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;
zephyr,display = &st7789v;
};
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 */
kscan0 = &cst816s;
};
leds {
compatible = "gpio-leds";
blled0: bl_led_0 {
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
label = "Backlight Low";
};
blled1: bl_led_1 {
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
label = "Backlight Medium";
};
blled2: bl_led_2 {
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
label = "Backlight High";
};
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 {
compatible = "pine64,pinetime-key-out";
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
label = "Key out";
};
vbatt {
compatible = "voltage-divider";
io-channels = <&adc 7>;
output-ohms = <1000000>;
full-ohms = <(1000000 + 1000000)>;
};
};
&adc {
status = "okay";
};
&gpiote {
status = "okay";
};
&gpio0 {
status = "okay";
};
&uart0 {
compatible = "nordic,nrf-uart";
current-speed = <115200>;
status = "okay";
pinctrl-0 = <&uart0_default>;
pinctrl-1 = <&uart0_sleep>;
pinctrl-names = "default", "sleep";
};
&i2c0 {
compatible = "nordic,nrf-twim";
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>; /* 400KHz */
/* BOSCH BMA421 Triaxial Acceleration Sensor (1000KHz) */
pinctrl-0 = <&i2c0_default>;
pinctrl-1 = <&i2c0_sleep>;
pinctrl-names = "default", "sleep";
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";
cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>, <&gpio0 25 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&spi1_default>;
pinctrl-1 = <&spi1_sleep>;
pinctrl-names = "default", "sleep";
xt25fb32: xt25fb32@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <8000000>; /* 8MHz */
label = "XT25FB32";
jedec-id = [0b 40 16];
size = <DT_SIZE_M(32)>;
};
/* 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>;
};
};
};
|