239 lines
4.9 KiB
Plaintext
239 lines
4.9 KiB
Plaintext
/*
|
|
* 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"
|
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
|
#include <zephyr/dt-bindings/mipi_dbi/mipi_dbi.h>
|
|
|
|
/ {
|
|
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 */
|
|
watchdog0 = &wdt0;
|
|
};
|
|
|
|
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";
|
|
zephyr,code = <INPUT_KEY_0>;
|
|
};
|
|
};
|
|
|
|
lvgl_pointer {
|
|
compatible = "zephyr,lvgl-pointer-input";
|
|
input = <&cst816s>;
|
|
};
|
|
|
|
vbatt {
|
|
compatible = "voltage-divider";
|
|
io-channels = <&adc 7>;
|
|
output-ohms = <1000000>;
|
|
full-ohms = <(1000000 + 1000000)>;
|
|
};
|
|
|
|
mipi_dbi {
|
|
compatible = "zephyr,mipi-dbi-spi";
|
|
spi-dev = <&spi1>;
|
|
dc-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; /* DET */
|
|
reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* RESX reset */
|
|
write-only;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
/* Sitronix ST7789V LCD */
|
|
st7789v: st7789v@1 {
|
|
compatible = "sitronix,st7789v";
|
|
reg = <1>;
|
|
mipi-max-frequency = <8000000>; /* 8MHz */
|
|
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];
|
|
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&adc {
|
|
status = "okay";
|
|
};
|
|
|
|
&uicr {
|
|
gpio-as-nreset;
|
|
};
|
|
|
|
&gpiote {
|
|
status = "okay";
|
|
};
|
|
|
|
&uicr {
|
|
nfct-pins-as-gpios;
|
|
};
|
|
|
|
&gpio0 {
|
|
status = "okay";
|
|
|
|
key-out {
|
|
gpio-hog;
|
|
gpios = <15 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
};
|
|
};
|
|
|
|
&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>;
|
|
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>;
|
|
};
|
|
|
|
/* Hynitron CST816S Capacitive Touch Controller (400KHz) */
|
|
cst816s: cst816s@15 {
|
|
compatible = "hynitron,cst816s";
|
|
reg = <0x15>;
|
|
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 */
|
|
jedec-id = [0b 40 16];
|
|
size = <DT_SIZE_M(32)>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
/* next firmware update */
|
|
slot1_partition: partition@0 {
|
|
label = "image-1";
|
|
reg = <0x00000000 0x74000>;
|
|
};
|
|
|
|
/* to be used in firmware */
|
|
storage_partition: partition@300000 {
|
|
label = "storage";
|
|
reg = <0x00300000 0x00100000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&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 0x74000>;
|
|
};
|
|
};
|
|
};
|