// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020 Fii USA Inc.
/dts-v1/;
#include "nuvoton-npcm730.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Fii Kudo Board";
compatible = "fii,kudo", "nuvoton,npcm730";
aliases {
ethernet1 = &gmac0;
serial0 = &serial0;
serial1 = &serial1;
serial2 = &serial2;
serial3 = &serial3;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &i2c7;
i2c8 = &i2c8;
i2c9 = &i2c9;
i2c10 = &i2c10;
i2c11 = &i2c11;
i2c12 = &i2c12;
i2c13 = &i2c13;
i2c14 = &i2c14;
i2c15 = &i2c15;
spi0 = &spi0;
spi1 = &spi1;
fiu0 = &fiu0;
fiu1 = &fiu3;
};
chosen {
stdout-path = &serial3;
};
memory {
reg = <0 0x40000000>;
};
iio-hwmon {
compatible = "iio-hwmon";
io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>;
};
jtag_master {
compatible = "nuvoton,npcm750-jtag-master";
#address-cells = <1>;
#size-cells = <1>;
// dev/jtag0
dev-num = <0>;
// pspi or gpio
mode = "pspi";
// pspi2
pspi-controller = <2>;
reg = <0xf0201000 0x1000>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk NPCM7XX_CLK_APB5>;
// TCK, TDI, TDO, TMS
jtag-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>,
<&gpio0 18 GPIO_ACTIVE_HIGH>,
<&gpio0 17 GPIO_ACTIVE_HIGH>,
<&gpio0 16 GPIO_ACTIVE_HIGH>;
};
leds {
compatible = "gpio-leds";
heartbeat {
label = "heartbeat";
gpios = <&gpio0 14 1>;
};
};
pinctrl: pinctrl@f0800000 {
gpio61oh_pins: gpio61oh-pins {
pins = "GPO61/nDTR1_BOUT1/STRAP6";
bias-disable;
output-high;
};
gpio62oh_pins: gpio62oh-pins {
pins = "GPO62/nRTST1/STRAP5";
bias-disable;
output-high;
};
gpio161ol_pins: gpio161ol-pins {
pins = "GPIO161/nLFRAME/nESPICS";
bias-disable;
output-low;
};
gpio163i_pins: gpio163i-pins {
pins = "GPIO163/LCLK/ESPICLK";
bias-disable;
input-enable;
};
gpio167ol_pins: gpio167ol-pins {
pins = "GPIO167/LAD3/ESPI_IO3";
bias-disable;
output-low;
};
gpio95i_pins: gpio95i-pins {
pins = "GPIO95/nLRESET/nESPIRST";
bias-disable;
input-enable;
};
gpio65ol_pins: gpio65ol-pins {
pins = "GPIO65/FANIN1";
bias-disable;
output-low;
};
gpio66oh_pins: gpio66oh-pins {
pins = "GPIO66/FANIN2";
bias-disable;
output-high;
};
gpio67oh_pins: gpio67oh-pins {
pins = "GPIO67/FANIN3";
bias-disable;
output-high;
};
gpio68ol_pins: gpio68ol-pins {
pins = "GPIO68/FANIN4";
bias-disable;
output-low;
};
gpio69i_pins: gpio69i-pins {
pins = "GPIO69/FANIN5";
bias-disable;
input-enable;
};
gpio70ol_pins: gpio70ol-pins {
pins = "GPIO70/FANIN6";
bias-disable;
output-low;
};
gpio71i_pins: gpio71i-pins {
pins = "GPIO71/FANIN7";
bias-disable;
input-enable;
};
gpio72i_pins: gpio72i-pins {
pins = "GPIO72/FANIN8";
bias-disable;
input-enable;
};
gpio73i_pins: gpio73i-pins {
pins = "GPIO73/FANIN9";
bias-disable;
input-enable;
};
gpio74i_pins: gpio74i-pins {
pins = "GPIO74/FANIN10";
bias-disable;
input-enable;
};
gpio75i_pins: gpio75i-pins {
pins = "GPIO75/FANIN11";
bias-disable;
input-enable;
};
gpio76i_pins: gpio76i-pins {
pins = "GPIO76/FANIN12";
bias-disable;
input-enable;
};
gpio77i_pins: gpio77i-pins {
pins = "GPIO77/FANIN13";
bias-disable;
input-enable;
};
gpio78i_pins: gpio78i-pins {
pins = "GPIO78/FANIN14";
bias-disable;
input-enable;
};
gpio79ol_pins: gpio79ol-pins {
pins = "GPIO79/FANIN15";
bias-disable;
output-low;
};
gpio80oh_pins: gpio80oh-pins {
pins = "GPIO80/PWM0";
bias-disable;
output-high;
};
gpio81i_pins: gpio81i-pins {
pins = "GPIO81/PWM1";
bias-disable;
input-enable;
};
gpio82i_pins: gpio82i-pins {
pins = "GPIO82/PWM2";
bias-disable;
input-enable;
};
gpio83i_pins: gpio83i-pins {
pins = "GPIO83/PWM3";
bias-disable;
input-enable;
};
gpio144i_pins: gpio144i-pins {
pins = "GPIO144/PWM4";
bias-disable;
input-enable;
};
gpio145i_pins: gpio145i-pins {
pins = "GPIO145/PWM5";
bias-disable;
input-enable;
};
gpio146i_pins: gpio146i-pins {
pins = "GPIO146/PWM6";
bias-disable;
input-enable;
};
gpio147oh_pins: gpio147oh-pins {
pins = "GPIO147/PWM7";
bias-disable;
output-high;
};
gpio168ol_pins: gpio168ol-pins {
pins = "GPIO168/nCLKRUN/nESPIALERT";
bias-disable;
output-low;
};
gpio169oh_pins: gpio169oh-pins {
pins = "GPIO169/nSCIPME";
bias-disable;
output-high;
};
gpio170ol_pins: gpio170ol-pins {
pins = "GPIO170/nSMI";
bias-disable;
output-low;
};
gpio218oh_pins: gpio218oh-pins {
pins = "GPIO218/nWDO1";
bias-disable;
output-high;
};
gpio37i_pins: gpio37i-pins {
pins = "GPIO37/SMB3CSDA";
bias-disable;
input-enable;
};
gpio38i_pins: gpio38i-pins {
pins = "GPIO38/SMB3CSCL";
bias-disable;
input-enable;
};
gpio39i_pins: gpio39i-pins {
pins = "GPIO39/SMB3BSDA";
bias-disable;
input-enable;
};
gpio40i_pins: gpio40i-pins {
pins = "GPIO40/SMB3BSCL";
bias-disable;
input-enable;
};
gpio121i_pins: gpio121i-pins {
pins = "GPIO121/SMB2CSCL";
bias-disable;
input-enable;
};
gpio122i_pins: gpio122i-pins {
pins = "GPIO122/SMB2BSDA";
bias-disable;
input-enable;
};
gpio123i_pins: gpio123i-pins {
pins = "GPIO123/SMB2BSCL";
bias-disable;
input-enable;
};
gpio124i_pins: gpio124i-pins {
pins = "GPIO124/SMB1CSDA";
bias-disable;
input-enable;
};
gpio125i_pins: gpio125i-pins {
pins = "GPIO125/SMB1CSCL";
bias-disable;
input-enable;
};
gpio126i_pins: gpio126i-pins {
pins = "GPIO126/SMB1BSDA";
bias-disable;
input-enable;
};
gpio127i_pins: gpio127i-pins {
pins = "GPIO127/SMB1BSCL";
bias-disable;
input-enable;
};
gpio136i_pins: gpio136i-pins {
pins = "GPIO136/SD1DT0";
bias-disable;
input-enable;
};
gpio137oh_pins: gpio137oh-pins {
pins = "GPIO137/SD1DT1";
bias-disable;
output-high;
};
gpio138i_pins: gpio138i-pins {
pins = "GPIO138/SD1DT2";
bias-disable;
input-enable;
};
gpio139i_pins: gpio139i-pins {
pins = "GPIO139/SD1DT3";
bias-disable;
input-enable;
};
gpio140i_pins: gpio140i-pins {
pins = "GPIO140/SD1CLK";
bias-disable;
input-enable;
};
gpio141i_pins: gpio141i-pins {
pins = "GPIO141/SD1WP";
bias-disable;
input-enable;
};
gpio190oh_pins: gpio190oh-pins {
pins = "GPIO190/nPRD_SMI";
bias-disable;
output-high;
};
gpio191oh_pins: gpio191oh-pins {
pins = "GPIO191";
bias-disable;
output-high;
};
gpio195ol_pins: gpio195ol-pins {
pins = "GPIO195/SMB0BSDA";
bias-disable;
output-low;
};
gpio196ol_pins: gpio196ol-pins {
pins = "GPIO196/SMB0CSCL";
bias-disable;
output-low;
};
gpio199i_pins: gpio199i-pins {
pins = "GPIO199/SMB0DSCL";
bias-disable;
input-enable;
};
gpio202ol_pins: gpio202ol-pins {
pins = "GPIO202/SMB0CSDA";
bias-disable;
output-low;
};
};
};
&gmac0 {
phy-mode = "rgmii-id";
snps,eee-force-disable;
status = "okay";
};
&ehci1 {
status = "okay";
};
&fiu0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0cs1_pins>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <5000000>;
spi-rx-bus-width = <2>;
label = "bmc";
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
u-boot@0 {
label = "u-boot";
reg = <0x0000000 0xC0000>;
read-only;
};
u-boot-env@100000 {
label = "u-boot-env";
reg = <0x00100000 0x40000>;
};
kernel@200000 {
label = "kernel";
reg = <0x0200000 0x600000>;
};
rofs@800000 {
label = "rofs";
reg = <0x800000 0x3500000>;
};
rwfs@3d00000 {
label = "rwfs";
reg = <0x3d00000 0x300000>;
};
};
};
flash@1 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
reg = <1>;
spi-max-frequency = <5000000>;
spi-rx-bus-width = <2>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
spare1@0 {
label = "spi0-cs1-spare1";
reg = <0x0 0x800000>;
};
spare2@800000 {
label = "spi0-cs1-spare2";
reg = <0x800000 0x0>;
};
};
};
};
&fiu3 {
pinctrl-0 = <&spi3_pins>;
flash@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <5000000>;
spi-rx-bus-width = <2>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
system1@0 {
label = "bios";
reg = <0x0 0x0>;
};
system2@800000 {
label = "spi3-system2";
reg = <0x800000 0x0>;
};
};
};
};
&watchdog1 {
status = "okay";
};
&rng {
status = "okay";
};
&serial0 {
status = "okay";
};
&serial1 {
status = "okay";
};
&serial2 {
status = "okay";
};
&serial3 {
status = "okay";
};
&adc {
#io-channel-cells = <1>;
status = "okay";
};
&i2c1 {
status = "okay";
i2c-mux@75 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x75>;
i2c-mux-idle-disconnect;
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
// Rear-Fan
max31790@58 {
compatible = "maxim,max31790";
reg = <0x58>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
// Mid-Fan
max31790@58 {
compatible = "maxim,max31790";
reg = <0x58>;
};
};
i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <4>;
// INLET1_T
lm75@5c {
compatible = "ti,lm75";
reg = <0x5c>;
};
};
i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
// OUTLET1_T
lm75@5c {
compatible = "ti,lm75";
reg = <0x5c>;
};
};
i2c@6 {
#address-cells = <1>;
#size-cells = <0>;
reg = <6>;
// OUTLET2_T
lm75@5c {
compatible = "ti,lm75";
reg = <0x5c>;
};
};
i2c@7 {
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
// OUTLET3_T
lm75@5c {
compatible = "ti,lm75";
reg = <0x5c>;
};
};
};
i2c-mux@77 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x77>;
i2c-mux-idle-disconnect;
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
// STB-T
pmbus@74 {
compatible = "pmbus";
reg = <0x74>;
};
};
};
};
&i2c2 {
status = "okay";
smpro@4f {
compatible = "ampere,smpro";
reg = <0x4f>;
};
smpro@4e {
compatible = "ampere,smpro";
reg = <0x4e>;
};
};
&i2c3 {
status = "okay";
};
&i2c4 {
status = "okay";
i2c-mux@77 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x77>;
i2c-mux-idle-disconnect;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
// ADC sensors
adm1266@40 {
compatible = "adi,adm1266";
reg = <0x40>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
// ADC sensors
adm1266@41 {
compatible = "adi,adm1266";
reg = <0x41>;
};
};
};
};
&i2c5 {
status = "okay";
};
&i2c6 {
status = "okay";
};
&i2c7 {
status = "okay";
};
&i2c8 {
status = "okay";
};
&i2c9 {
status = "okay";
};
&i2c10 {
status = "okay";
};
&i2c11 {
status = "okay";
};
&i2c12 {
status = "okay";
ssif-bmc@10 {
compatible = "ssif-bmc";
reg = <0x10>;
};
};
&i2c13 {
status = "okay";
i2c-mux@77 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x77>;
i2c-mux-idle-disconnect;
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
// M2_ZONE_T
lm75@28 {
compatible = "ti,lm75";
reg = <0x28>;
};
};
i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <4>;
// BATT_ZONE_T
lm75@29 {
compatible = "ti,lm75";
reg = <0x29>;
};
};
i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
// NBM1_ZONE_T
lm75@28 {
compatible = "ti,lm75";
reg = <0x28>;
};
};
i2c@6 {
#address-cells = <1>;
#size-cells = <0>;
reg = <6>;
// NBM2_ZONE_T
lm75@29 {
compatible = "ti,lm75";
reg = <0x29>;
};
};
};
};
&i2c14 {
status = "okay";
};
&i2c15 {
status = "okay";
};
&spi0 {
cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
status = "okay";
};
&pinctrl {
pinctrl-names = "default";
pinctrl-0 = <
&gpio61oh_pins
&gpio62oh_pins
&gpio161ol_pins
&gpio163i_pins
&gpio167ol_pins
&gpio95i_pins
&gpio65ol_pins
&gpio66oh_pins
&gpio67oh_pins
&gpio68ol_pins
&gpio69i_pins
&gpio70ol_pins
&gpio71i_pins
&gpio72i_pins
&gpio73i_pins
&gpio74i_pins
&gpio75i_pins
&gpio76i_pins
&gpio77i_pins
&gpio78i_pins
&gpio79ol_pins
&gpio80oh_pins
&gpio81i_pins
&gpio82i_pins
&gpio83i_pins
&gpio144i_pins
&gpio145i_pins
&gpio146i_pins
&gpio147oh_pins
&gpio168ol_pins
&gpio169oh_pins
&gpio170ol_pins
&gpio218oh_pins
&gpio37i_pins
&gpio38i_pins
&gpio39i_pins
&gpio40i_pins
&gpio121i_pins
&gpio122i_pins
&gpio123i_pins
&gpio124i_pins
&gpio125i_pins
&gpio126i_pins
&gpio127i_pins
&gpio136i_pins
&gpio137oh_pins
&gpio138i_pins
&gpio139i_pins
&gpio140i_pins
&gpio141i_pins
&gpio190oh_pins
&gpio191oh_pins
&gpio195ol_pins
&gpio196ol_pins
&gpio199i_pins
&gpio202ol_pins
>;
};
&gcr {
serial_port_mux: mux-controller {
compatible = "mmio-mux";
#mux-control-cells = <1>;
mux-reg-masks = <0x38 0x07>;
idle-states = <2>;
};
};