mirror of
https://github.com/lupyuen/nuttx-star64.git
synced 2025-01-12 12:48:31 +08:00
1131 lines
25 KiB
Text
Executable file
1131 lines
25 KiB
Text
Executable file
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
|
/*
|
|
* Copyright (C) 2022 StarFive Technology Co., Ltd.
|
|
* Copyright (C) 2022 Hal Feng <hal.feng@starfivetech.com>
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
#include <dt-bindings/pinctrl/starfive,jh7110-pinfunc.h>
|
|
#include <dt-bindings/input/linux-event-codes.h>
|
|
#include "jh7110.dtsi"
|
|
|
|
/ {
|
|
model = "StarFive VisionFive V2 Pinetable";
|
|
compatible = "starfive,visionfive-v2", "starfive,jh7110";
|
|
|
|
aliases {
|
|
spi0 = &qspi;
|
|
gpio0 = &gpio;
|
|
ethernet0 = &gmac0;
|
|
ethernet1 = &gmac1;
|
|
mmc0 = &sdio0;
|
|
mmc1 = &sdio1;
|
|
serial0 = &uart0;
|
|
serial3 = &uart3;
|
|
i2c0 = &i2c0;
|
|
i2c1 = &i2c1;
|
|
i2c2 = &i2c2;
|
|
i2c3 = &i2c3;
|
|
i2c4 = &i2c4;
|
|
i2c5 = &i2c5;
|
|
i2c6 = &i2c6;
|
|
};
|
|
|
|
chosen {
|
|
linux,initrd-start = <0x0 0x46100000>;
|
|
linux,initrd-end = <0x0 0x4c000000>;
|
|
stdout-path = "serial0:115200";
|
|
#bootargs = "debug console=ttyS0 rootwait";
|
|
};
|
|
|
|
cpus {
|
|
timebase-frequency = <4000000>;
|
|
};
|
|
|
|
memory@40000000 {
|
|
device_type = "memory";
|
|
reg = <0x0 0x40000000 0x1 0x0>;
|
|
};
|
|
|
|
reserved-memory {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
linux,cma {
|
|
compatible = "shared-dma-pool";
|
|
reusable;
|
|
size = <0x0 0x20000000>;
|
|
alignment = <0x0 0x1000>;
|
|
alloc-ranges = <0x0 0x80000000 0x0 0x20000000>;
|
|
linux,cma-default;
|
|
};
|
|
|
|
e24_mem: e24@c0000000 {
|
|
no-map;
|
|
reg = <0x0 0xc0110000 0x0 0xf0000>;
|
|
};
|
|
|
|
xrp_reserved: xrpbuffer@f0000000 {
|
|
reg = <0x0 0xf0000000 0x0 0x01ffffff
|
|
0x0 0xf2000000 0x0 0x00001000
|
|
0x0 0xf2001000 0x0 0x00fff000
|
|
0x0 0xf3000000 0x0 0x00001000>;
|
|
};
|
|
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led-ack {
|
|
gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
function = LED_FUNCTION_HEARTBEAT;
|
|
linux,default-trigger = "heartbeat";
|
|
label = "ack";
|
|
};
|
|
};
|
|
|
|
vcc5v: vcc5v{
|
|
compatible = "regulator-fixed";
|
|
enable-active-high;
|
|
gpio = <&gpio 39 0>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-name = "vcc_5v";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
};
|
|
|
|
wifi_3v3: wifi_3v3{
|
|
compatible = "regulator-fixed";
|
|
enable-active-low;
|
|
gpio = <&gpio 46 1>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-name = "wifi_3v3";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
rfkill_bt {
|
|
compatible = "rfkill-gpio";
|
|
label = "BlueTooth";
|
|
radio-type = "bluetooth";
|
|
shutdown-gpios = <&gpio 54 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
rfkill_wifi {
|
|
compatible = "rfkill-gpio";
|
|
label = "Wi-Fi";
|
|
radio-type = "wlan";
|
|
shutdown-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
gpio_keys: gpio-keys {
|
|
status = "okay";
|
|
compatible = "gpio-keys";
|
|
autorepeat;
|
|
|
|
vol-up-key {
|
|
label = "vol up key";
|
|
debounce-interval = <10>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <KEY_VOLUMEUP>;
|
|
gpios = <&gpio 51 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
vol-down-key {
|
|
label = "vol down key";
|
|
debounce-interval = <10>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <KEY_VOLUMEDOWN>;
|
|
gpios = <&gpio 49 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
hall-key {
|
|
label = "hall test key";
|
|
debounce-interval = <10>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <KEY_1>;
|
|
gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
bat: battery {
|
|
compatible = "simple-battery";
|
|
charge-full-design-microamp-hours = <9800000>;
|
|
voltage-max-design-microvolt = <4350000>;
|
|
voltage-min-design-microvolt = <3000000>;
|
|
};
|
|
|
|
|
|
};
|
|
|
|
&gpio {
|
|
i2c0_pins: i2c0-pins {
|
|
i2c0-pins-scl {
|
|
starfive,pins = <PAD_GPIO57>;
|
|
starfive,pinmux = <PAD_GPIO57_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C0_IC_CLK_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C0_IC_CLK_IN_A>;
|
|
};
|
|
|
|
i2c0-pins-sda {
|
|
starfive,pins = <PAD_GPIO58>;
|
|
starfive,pinmux = <PAD_GPIO58_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C0_IC_DATA_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C0_IC_DATA_IN_A>;
|
|
};
|
|
};
|
|
|
|
i2c5_pins: i2c5-pins {
|
|
i2c5-pins-scl {
|
|
starfive,pins = <PAD_GPIO19>;
|
|
starfive,pinmux = <PAD_GPIO19_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C5_IC_CLK_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C5_IC_CLK_IN_A>;
|
|
};
|
|
|
|
i2c5-pins-sda {
|
|
starfive,pins = <PAD_GPIO20>;
|
|
starfive,pinmux = <PAD_GPIO20_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C5_IC_DATA_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C5_IC_DATA_IN_A>;
|
|
};
|
|
};
|
|
|
|
i2c6_pins: i2c6-pins {
|
|
i2c6-pins-scl {
|
|
starfive,pins = <PAD_GPIO16>;
|
|
starfive,pinmux = <PAD_GPIO16_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C6_IC_CLK_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C6_IC_CLK_IN_A>;
|
|
};
|
|
|
|
i2c6-pins-sda {
|
|
starfive,pins = <PAD_GPIO17>;
|
|
starfive,pinmux = <PAD_GPIO17_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_I2C6_IC_DATA_OE>;
|
|
starfive,pin-gpio-din = <GPI_I2C6_IC_DATA_IN_A>;
|
|
};
|
|
};
|
|
|
|
csi_pins: csi-pins {
|
|
csi-pins-pwdn {
|
|
starfive,pins = <PAD_GPIO18>;
|
|
starfive,pinmux = <PAD_GPIO18_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
ov5640_pins: ov5640_pins {
|
|
ov5640_pins-pwdn {
|
|
starfive,pins = <PAD_GPIO22>;
|
|
starfive,pinmux = <PAD_GPIO22_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
ov5640_pins-rst {
|
|
starfive,pins = <PAD_GPIO34>;
|
|
starfive,pinmux = <PAD_GPIO34_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
ov5640_pins-sw {
|
|
starfive,pins = <PAD_GPIO53>;
|
|
starfive,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
gc02m2_pins: gc02m2_pins {
|
|
gc02m2pins-pwdn {
|
|
starfive,pins = <PAD_GPIO25>;
|
|
starfive,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
gc02m2_pins-rst {
|
|
starfive,pins = <PAD_GPIO33>;
|
|
starfive,pinmux = <PAD_GPIO33_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
// gc02m2_pins-sw {
|
|
// starfive,pins = <PAD_GPIO53>;
|
|
// starfive,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
|
|
// starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
// starfive,pin-gpio-dout = <GPO_LOW>;
|
|
// starfive,pin-gpio-doen = <OEN_LOW>;
|
|
// };
|
|
};
|
|
|
|
pwmdac0_pins: pwmdac0-pins {
|
|
pwmdac0-pins-left {
|
|
starfive,pins = <PAD_GPIO33>;
|
|
starfive,pinmux = <PAD_GPIO33_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_PWMDAC0_LEFT_OUTPUT>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
pwmdac0-pins-right {
|
|
starfive,pins = <PAD_GPIO34>;
|
|
starfive,pinmux = <PAD_GPIO34_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
|
|
starfive,pin-gpio-dout = <GPO_PWMDAC0_RIGHT_OUTPUT>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pwm_pins: pwm-pins {
|
|
pwm_ch0-pins {
|
|
starfive,pins = <PAD_GPIO46>;
|
|
starfive,pinmux = <PAD_GPIO46_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_PTC0_PWM_0>;
|
|
starfive,pin-gpio-doen = <OEN_PTC0_PWM_0_OE_N>;
|
|
};
|
|
|
|
pwm_ch1-pins {
|
|
starfive,pins = <PAD_GPIO59>;
|
|
starfive,pinmux = <PAD_GPIO59_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_PTC0_PWM_1>;
|
|
starfive,pin-gpio-doen = <OEN_PTC0_PWM_1_OE_N>;
|
|
};
|
|
};
|
|
|
|
ssp0_pins: ssp0-pins {
|
|
ssp0-pins_tx {
|
|
starfive,pins = <PAD_GPIO52>;
|
|
starfive,pinmux = <PAD_GPIO52_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_SPI0_SSPTXD>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
ssp0-pins_rx {
|
|
starfive,pins = <PAD_GPIO53>;
|
|
starfive,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
starfive,pin-gpio-din = <GPI_SPI0_SSPRXD>;
|
|
};
|
|
|
|
ssp0-pins_clk {
|
|
starfive,pins = <PAD_GPIO48>;
|
|
starfive,pinmux = <PAD_GPIO48_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
|
|
ssp0-pins_cs {
|
|
starfive,pins = <PAD_GPIO49>;
|
|
starfive,pinmux = <PAD_GPIO49_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pcie0_perst_default: pcie0_perst_default {
|
|
perst-pins {
|
|
starfive,pins = <PAD_GPIO26>;
|
|
starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pcie0_perst_active: pcie0_perst_active {
|
|
perst-pins {
|
|
starfive,pins = <PAD_GPIO26>;
|
|
starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pcie0_wake_default: pcie0_wake_default {
|
|
wake-pins {
|
|
starfive,pins = <PAD_GPIO32>;
|
|
starfive,pinmux = <PAD_GPIO32_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
pcie0_clkreq_default: pcie0_clkreq_default {
|
|
clkreq-pins {
|
|
starfive,pins = <PAD_GPIO27>;
|
|
starfive,pinmux = <PAD_GPIO27_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
pcie1_perst_default: pcie1_perst_default {
|
|
perst-pins {
|
|
starfive,pins = <PAD_GPIO28>;
|
|
starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_HIGH>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pcie1_perst_active: pcie1_perst_active {
|
|
perst-pins {
|
|
starfive,pins = <PAD_GPIO28>;
|
|
starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_LOW>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
pcie1_wake_default: pcie1_wake_default {
|
|
wake-pins {
|
|
starfive,pins = <PAD_GPIO21>;
|
|
starfive,pinmux = <PAD_GPIO21_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
pcie1_clkreq_default: pcie1_clkreq_default {
|
|
clkreq-pins {
|
|
starfive,pins = <PAD_GPIO29>;
|
|
starfive,pinmux = <PAD_GPIO29_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
usb_pins: usb-pins {
|
|
// drive-vbus-pin {
|
|
// starfive,pins = <PAD_GPIO25>;
|
|
// starfive,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
|
|
// starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
// starfive,pin-gpio-dout = <GPO_USB0_DRIVE_VBUS_IO>;
|
|
// starfive,pin-gpio-doen = <OEN_LOW>;
|
|
// };
|
|
overcurrent-pin {
|
|
starfive,pins = <PAD_GPIO43>;
|
|
starfive,pinmux = <PAD_GPIO43_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-din = <GPI_USB0_OVERCURRENT_N_IO>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
i2srx_pins: i2srx-pins {
|
|
i2srx-pins0 {
|
|
starfive,pins = <PAD_GPIO61>;
|
|
starfive,pinmux = <PAD_GPIO61_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
starfive,pin-gpio-din = <GPI_I2SRX0_EXT_SDIN0>;
|
|
};
|
|
};
|
|
|
|
i2s_clk_pins: i2s-clk0 {
|
|
i2s-clk0_bclk {
|
|
starfive,pins = <PAD_GPIO38>;
|
|
starfive,pinmux = <PAD_GPIO38_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-din = <GPI_I2STX0_BCLK_SLV GPI_I2SRX0_BCLK_SLV>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
|
|
i2s-clk0_lrclk {
|
|
starfive,pins = <PAD_GPIO63>;
|
|
starfive,pinmux = <PAD_GPIO63_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-din = <GPI_I2STX0_LRCK_SLV GPI_I2SRX0_LRCK_SLV>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
i2stx_pins: i2stx-pins {
|
|
i2stx-pins0 {
|
|
starfive,pins = <PAD_GPIO44>;
|
|
starfive,pinmux = <PAD_GPIO44_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-dout = <GPO_I2STX_4CH1_SDO0>;
|
|
starfive,pin-gpio-doen = <OEN_LOW>;
|
|
};
|
|
};
|
|
|
|
rfkill_wifi_pins: rfkill_wifi_pins {
|
|
rfkill_wifi_disn {
|
|
starfive,pins = <PAD_GPIO42>;
|
|
starfive,pinmux = <PAD_GPIO42_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
|
|
rfkill_bt_pins: rfkill_bt_pins {
|
|
rfkill_bt_disn {
|
|
starfive,pins = <PAD_GPIO54>;
|
|
starfive,pinmux = <PAD_GPIO54_FUNC_SEL 0>;
|
|
starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
|
|
starfive,pin-gpio-doen = <OEN_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&uart0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&dma {
|
|
status = "okay";
|
|
};
|
|
|
|
&trng {
|
|
status = "okay";
|
|
};
|
|
|
|
&crypto {
|
|
status = "okay";
|
|
};
|
|
|
|
&sec_dma {
|
|
status = "okay";
|
|
};
|
|
|
|
/* i2s + es8316 */
|
|
&sound7 {
|
|
/* i2s + es8316 */
|
|
simple-audio-card,dai-link@0 {
|
|
reg = <0>;
|
|
format = "i2s";
|
|
bitclock-master = <&sndes8316>;
|
|
frame-master = <&sndes8316>;
|
|
mclk-fs = <256>;
|
|
status = "okay";
|
|
|
|
sndi2srx1: cpu0 {
|
|
sound-dai = <&i2srx_3ch>;
|
|
};
|
|
|
|
sndi2stx1: cpu1 {
|
|
sound-dai = <&i2stx_4ch1>;
|
|
};
|
|
|
|
sndes8316: codec {
|
|
sound-dai = <&es8316>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
clock-frequency = <100000>;
|
|
i2c-sda-hold-time-ns = <300>;
|
|
i2c-sda-falling-time-ns = <510>;
|
|
i2c-scl-falling-time-ns = <510>;
|
|
auto_calc_scl_lhcnt;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
status = "okay";
|
|
|
|
es8316: codec@11 {
|
|
compatible = "everest,es8316";
|
|
reg = <0x11>;
|
|
clocks = <&es8316_mclk>;
|
|
clock-names = "mclk";
|
|
#sound-dai-cells = <0>;
|
|
|
|
papower-gpio = <&gpio 50 0>;
|
|
hp-det-gpio = <&gpio 36 0>;
|
|
};
|
|
|
|
};
|
|
|
|
&i2c2 {
|
|
clock-frequency = <100000>;
|
|
i2c-sda-hold-time-ns = <300>;
|
|
i2c-sda-falling-time-ns = <510>;
|
|
i2c-scl-falling-time-ns = <510>;
|
|
auto_calc_scl_lhcnt;
|
|
status = "okay";
|
|
|
|
seeed_plane_i2c@45 {
|
|
compatible = "seeed_panel";
|
|
reg = <0x45>;
|
|
|
|
port {
|
|
panel_out0: endpoint {
|
|
remote-endpoint = <&dsi0_output>;
|
|
};
|
|
};
|
|
};
|
|
|
|
tinker_ft5406: tinker_ft5406@38 {
|
|
compatible = "tinker_ft5406";
|
|
reg = <0x38>;
|
|
};
|
|
|
|
panel_radxa@19 {
|
|
status = "okay";
|
|
compatible ="starfive_jadard";
|
|
reg = <0x19>;
|
|
//reset-gpio = <&gpio 23 0>;
|
|
blen-gpio = <&gpio 45 0>;
|
|
enable-gpio = <&gpio 37 0>;
|
|
|
|
port {
|
|
panel_out1: endpoint {
|
|
remote-endpoint = <&dsi1_output>;
|
|
};
|
|
};
|
|
};
|
|
|
|
touchscreen@14 {
|
|
status = "okay";
|
|
compatible = "goodix,gt911";
|
|
reg = <0x14>;
|
|
irq-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
&i2c5 {
|
|
clock-frequency = <100000>;
|
|
i2c-sda-hold-time-ns = <300>;
|
|
i2c-sda-falling-time-ns = <510>;
|
|
i2c-scl-falling-time-ns = <510>;
|
|
auto_calc_scl_lhcnt;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c5_pins>;
|
|
status = "okay";
|
|
|
|
eeprom@50 {
|
|
compatible = "atmel,24c04";
|
|
reg = <0x50>;
|
|
pagesize = <16>;
|
|
};
|
|
|
|
pmic: axp15060_reg@36 {
|
|
compatible = "stf,axp15060-regulator";
|
|
reg = <0x36>;
|
|
|
|
regulators {
|
|
mipi_0p9: ALDO1 {
|
|
regulator-boot-on;
|
|
regulator-compatible = "mipi_0p9";
|
|
regulator-name = "mipi_0p9";
|
|
regulator-min-microvolt = <900000>;
|
|
regulator-max-microvolt = <900000>;
|
|
};
|
|
hdmi_0p9: ALDO5 {
|
|
regulator-boot-on;
|
|
regulator-compatible = "hdmi_0p9";
|
|
regulator-name = "hdmi_0p9";
|
|
regulator-min-microvolt = <900000>;
|
|
regulator-max-microvolt = <900000>;
|
|
};
|
|
hdmi_1p8: ALDO3 {
|
|
regulator-boot-on;
|
|
regulator-compatible = "hdmi_1p8";
|
|
regulator-name = "hdmi_1p8";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
cpu_vdd: DCDC2 {
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-compatible = "cpu_vdd";
|
|
regulator-name = "cpu_vdd";
|
|
regulator-min-microvolt = <500000>;
|
|
regulator-max-microvolt = <1540000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
// sc89890: sc89890@6a{
|
|
// compatible = "sc,sc89890";
|
|
// reg = <0x6a>;
|
|
|
|
// // interrupt-parent = <&gpio>;
|
|
// // interrupts = <RK_PD5 IRQ_TYPE_EDGE_FALLING>;
|
|
// irq-gpios = <&gpio 48 GPIO_ACTIVE_LOW>;
|
|
|
|
// sc,battery-regulation-voltage = <4200000>;
|
|
// sc,charge-current = <1000000>;
|
|
// // sc,termination-current = <50000>;
|
|
// sc,termination-current = <500>;
|
|
// sc,precharge-current = <128000>;
|
|
// sc,minimum-sys-voltage = <3000000>;
|
|
// sc,boost-voltage = <5000000>;
|
|
// sc,boost-max-current = <1600000>;
|
|
|
|
// // sc,thermal-regulation-threshold = <4000000>;
|
|
// // sc,ibatcomp-clamp-microvolt = <1000000>;
|
|
// sc,ibatcomp-micro-ohms = <10>;
|
|
|
|
// sc89890h_otg_vbus: sc89890h_otg_vbus {
|
|
// regulator-name = "sc89890h_otg_vbus";
|
|
// };
|
|
// };
|
|
|
|
sc89890h: sc89890@6a{
|
|
compatible = "sc,sc89890h";
|
|
reg = <0x6A>;
|
|
|
|
// nterrupt-parent = <&tlmm>;
|
|
// interrupts = <65 0>;
|
|
// pinctrl-names = "default";
|
|
// pinctrl-0 = <&sc89890h_int_default>;
|
|
irq-gpios = <&gpio 48 GPIO_ACTIVE_LOW>;
|
|
|
|
charger_name = "primary_chg";
|
|
eint_name = "chr_stat";
|
|
/*sc,sc8989x,charge-detect-enable*/
|
|
sc,sc89890h,usb-vlim = <4500>;
|
|
sc,sc89890h,usb-ilim = <2000>;
|
|
sc,sc89890h,usb-vreg = <4200>;
|
|
sc,sc89890h,usb-ichg = <2000>;
|
|
sc,sc89890h,precharge-current = <180>;
|
|
sc,sc89890h,termination-current = <180>;
|
|
sc,sc89890h,boost-voltage = <5000>;
|
|
sc,sc89890h,boost-current = <1200>;
|
|
sc,sc89890h,charge-current = <1500>;
|
|
};
|
|
|
|
cw2015@62 {
|
|
status = "okay";
|
|
compatible = "cellwise,cw2015";
|
|
reg = <0x62>;
|
|
cellwise,battery-profile = /bits/ 8
|
|
<0x17 0x67 0x63 0x64 0x63 0x62 0x61 0x5E
|
|
0x59 0x61 0x55 0x57 0x60 0x50 0x43 0x3C
|
|
0x33 0x2D 0x27 0x24 0x26 0x2D 0x39 0x47
|
|
0x44 0x11 0x0E 0x15 0x20 0x41 0x48 0x55
|
|
0x59 0x5B 0x60 0x60 0x3F 0x19 0x6A 0x4A
|
|
0x0B 0x1B 0x2D 0x57 0x8B 0x93 0x96 0x13
|
|
0x2E 0x56 0xA3 0xCA 0x80 0x6A 0x99 0xCB
|
|
0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x31>;
|
|
cellwise,monitor-interval-ms = <5000>;
|
|
monitored-battery = <&bat>;
|
|
power-supplies = <&sc89890h>;
|
|
};
|
|
};
|
|
|
|
&i2c6 {
|
|
clock-frequency = <100000>;
|
|
i2c-sda-hold-time-ns = <300>;
|
|
i2c-sda-falling-time-ns = <510>;
|
|
i2c-scl-falling-time-ns = <510>;
|
|
auto_calc_scl_lhcnt;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c6_pins>;
|
|
status = "okay";
|
|
|
|
ov5640: camera@3c {
|
|
status = "okay";
|
|
compatible = "ovti,ov5640";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ov5640_pins>;
|
|
reg = <0x3c>;
|
|
clocks = <&clk_ext_camera>;
|
|
clock-names = "xclk";
|
|
powerdown-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
|
|
sw-gpios = <&gpio 53 GPIO_ACTIVE_HIGH>;
|
|
rotation = <0>;
|
|
|
|
port {
|
|
/* CSI2 bus endpoint */
|
|
ov5640_to_csi2rx: endpoint {
|
|
remote-endpoint = <&csi2rx_from_ov5640>;
|
|
bus-type = <4>; /* MIPI CSI-2 D-PHY */
|
|
data-lanes = <2 1>;
|
|
lane-polarities = <0 0 0>;
|
|
link-frequencies = /bits/ 64 <456000000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
gc02m2: gc02m2@37 {
|
|
status = "okay";
|
|
compatible = "galaxycore,gc02m2";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gc02m2_pins>;
|
|
reg = <0x37>;
|
|
clocks = <&clk_ext_camera>;
|
|
clock-names = "xvclk";
|
|
reset-gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
|
|
pwdn-gpio = <&gpio 25 GPIO_ACTIVE_LOW>;
|
|
// sw-gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
|
|
|
|
port {
|
|
gc02m2_to_csi2rx0: endpoint {
|
|
remote-endpoint = <&csi2rx0_from_gc02m2>;
|
|
bus-type = <4>; /* MIPI CSI-2 D-PHY */
|
|
data-lanes = <1>;
|
|
link-frequencies = /bits/ 64 <336000000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&sdio0 {
|
|
max-frequency = <100000000>;
|
|
card-detect-delay = <300>;
|
|
bus-width = <8>;
|
|
cap-mmc-highspeed;
|
|
// mmc-ddr-1_8v;
|
|
// mmc-hs200-1_8v;
|
|
non-removable;
|
|
cap-mmc-hw-reset;
|
|
post-power-on-delay-ms = <200>;
|
|
status = "okay";
|
|
};
|
|
|
|
&sdio1 {
|
|
max-frequency = <100000000>;
|
|
card-detect-delay = <300>;
|
|
bus-width = <4>;
|
|
no-sdio;
|
|
no-mmc;
|
|
broken-cd;
|
|
cap-sd-highspeed;
|
|
post-power-on-delay-ms = <200>;
|
|
status = "okay";
|
|
};
|
|
|
|
&vin_sysctl {
|
|
/* when use dvp open this pinctrl*/
|
|
status = "okay";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
csi2rx_from_ov5640: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&ov5640_to_csi2rx>;
|
|
bus-type = <4>; /* MIPI CSI-2 D-PHY */
|
|
clock-lanes = <0>;
|
|
data-lanes = <2 1>;
|
|
lane-polarities = <0 0 0>;
|
|
status = "okay";
|
|
};
|
|
|
|
csi2rx0_from_gc02m2: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&gc02m2_to_csi2rx0>;
|
|
bus-type = <4>; /* MIPI CSI-2 D-PHY */
|
|
clock-lanes = <0>;
|
|
data-lanes = <2 1>;
|
|
lane-polarities = <0 0 0>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&sfctemp {
|
|
status = "okay";
|
|
};
|
|
|
|
&jpu {
|
|
status = "okay";
|
|
};
|
|
|
|
&vpu_dec {
|
|
status = "okay";
|
|
};
|
|
|
|
&vpu_enc {
|
|
status = "okay";
|
|
};
|
|
|
|
&gmac0 {
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
phy0: ethernet-phy@0 {
|
|
rxc_dly_en = <1>;
|
|
tx_delay_sel_fe = <5>;
|
|
tx_delay_sel = <0xa>;
|
|
tx_inverted_10 = <0x1>;
|
|
tx_inverted_100 = <0x1>;
|
|
tx_inverted_1000 = <0x1>;
|
|
};
|
|
};
|
|
|
|
&gmac1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
phy1: ethernet-phy@1 {
|
|
tx_delay_sel_fe = <5>;
|
|
tx_delay_sel = <0>;
|
|
rxc_dly_en = <0>;
|
|
tx_inverted_10 = <0x1>;
|
|
tx_inverted_100 = <0x1>;
|
|
tx_inverted_1000 = <0x0>;
|
|
};
|
|
};
|
|
|
|
&gpu {
|
|
status = "okay";
|
|
};
|
|
|
|
&pwmdac {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pwmdac0_pins>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&i2srx_3ch {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2s_clk_pins &i2srx_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&i2stx_4ch1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2stx_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&pwmdac_codec {
|
|
status = "disabled";
|
|
};
|
|
|
|
&spi0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ssp0_pins>;
|
|
status = "disabled";
|
|
|
|
spi_dev0: spi@0 {
|
|
compatible = "rohm,dh2228fv";
|
|
pl022,com-mode = <1>;
|
|
spi-max-frequency = <10000000>;
|
|
reg = <0>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&pcie0 {
|
|
pinctrl-names = "default", "perst-default", "perst-active";
|
|
pinctrl-0 = <&pcie0_wake_default>,
|
|
<&pcie0_clkreq_default>;
|
|
pinctrl-1 = <&pcie0_perst_default>;
|
|
pinctrl-2 = <&pcie0_perst_active>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&pcie1 {
|
|
pinctrl-names = "default", "perst-default", "perst-active";
|
|
pinctrl-0 = <&pcie1_wake_default>,
|
|
<&pcie1_clkreq_default>;
|
|
pinctrl-1 = <&pcie1_perst_default>;
|
|
pinctrl-2 = <&pcie1_perst_active>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&mailbox_contrl0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&mailbox_client0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&display {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi {
|
|
status = "okay";
|
|
|
|
hdmi_in: port {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
hdmi_in_lcdc: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&dc_out_dpi1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&dc8200 {
|
|
status = "okay";
|
|
|
|
dc_out: port {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
dc_out_dpi0: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&hdmi_input0>;
|
|
};
|
|
dc_out_dpi1: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&hdmi_in_lcdc>;
|
|
};
|
|
|
|
dc_out_dpi2: endpoint@2 {
|
|
reg = <2>;
|
|
remote-endpoint = <&mipi_in>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&rgb_output {
|
|
status = "disabled";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
port@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0>;
|
|
hdmi_input0:endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&dc_out_dpi0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&dsi_output {
|
|
status = "okay";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
mipi_in: endpoint {
|
|
remote-endpoint = <&dc_out_dpi2>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
sf_dpi_output: endpoint {
|
|
remote-endpoint = <&dsi_in_port>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mipi_dsi {
|
|
status = "okay";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
dsi0_output: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&panel_out0>;
|
|
};
|
|
|
|
dsi1_output: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&panel_out1>;
|
|
};
|
|
};
|
|
|
|
port@1{
|
|
reg = <1>;
|
|
dsi_in_port: endpoint {
|
|
remote-endpoint = <&sf_dpi_output>;
|
|
};
|
|
};
|
|
|
|
};
|
|
};
|
|
|
|
&mipi_dphy {
|
|
status = "okay";
|
|
};
|
|
|
|
&co_process {
|
|
status = "okay";
|
|
};
|
|
|
|
&usbdrd30 {
|
|
// clocks = <&clkgen JH7110_USB_125M>,
|
|
// <&clkgen JH7110_USB0_CLK_APP_125>,
|
|
// <&clkgen JH7110_USB0_CLK_LPM>,
|
|
// <&clkgen JH7110_USB0_CLK_STB>,
|
|
// <&clkgen JH7110_USB0_CLK_USB_APB>,
|
|
// <&clkgen JH7110_USB0_CLK_AXI>,
|
|
// <&clkgen JH7110_USB0_CLK_UTMI_APB>;
|
|
// clock-names = "125m","app","lpm","stb","apb","axi","utmi";
|
|
// resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>,
|
|
// <&rstgen RSTN_U0_CDN_USB_APB>,
|
|
// <&rstgen RSTN_U0_CDN_USB_AXI>,
|
|
// <&rstgen RSTN_U0_CDN_USB_UTMI_APB>;
|
|
// reset-names = "pwrup","apb","axi","utmi";
|
|
// starfive,usb2-only;
|
|
dr_mode = "host"; /*host or peripheral*/
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb_pins>;
|
|
|
|
xhci-lowmem-pool;
|
|
status = "okay";
|
|
};
|
|
|
|
&xrp {
|
|
status = "okay";
|
|
};
|
|
|
|
&ptc {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pwm_pins>;
|
|
status = "disabled";
|
|
};
|