198 lines
3.9 KiB
Plaintext
198 lines
3.9 KiB
Plaintext
|
// SPDX-License-Identifier: GPL-2.0+
|
||
|
/*
|
||
|
* Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
|
||
|
*
|
||
|
* DTS for common base of SolidRun CN9130 Clearfog Base and Pro.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/ {
|
||
|
aliases {
|
||
|
/* label nics same order as armada 388 clearfog */
|
||
|
ethernet0 = &cp0_eth2;
|
||
|
ethernet1 = &cp0_eth1;
|
||
|
ethernet2 = &cp0_eth0;
|
||
|
i2c1 = &cp0_i2c1;
|
||
|
mmc1 = &cp0_sdhci0;
|
||
|
};
|
||
|
|
||
|
reg_usb3_vbus0: regulator-usb3-vbus0 {
|
||
|
compatible = "regulator-fixed";
|
||
|
regulator-name = "vbus0";
|
||
|
regulator-min-microvolt = <5000000>;
|
||
|
regulator-max-microvolt = <5000000>;
|
||
|
gpios = <&expander0 6 GPIO_ACTIVE_LOW>;
|
||
|
};
|
||
|
|
||
|
sfp: sfp {
|
||
|
compatible = "sff,sfp";
|
||
|
i2c-bus = <&cp0_i2c1>;
|
||
|
los-gpios = <&expander0 12 GPIO_ACTIVE_HIGH>;
|
||
|
mod-def0-gpios = <&expander0 15 GPIO_ACTIVE_LOW>;
|
||
|
tx-disable-gpios = <&expander0 14 GPIO_ACTIVE_HIGH>;
|
||
|
tx-fault-gpios = <&expander0 13 GPIO_ACTIVE_HIGH>;
|
||
|
maximum-power-milliwatt = <2000>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* SRDS #2 - SFP+ 10GE */
|
||
|
&cp0_eth0 {
|
||
|
managed = "in-band-status";
|
||
|
phys = <&cp0_comphy2 0>;
|
||
|
phy-mode = "10gbase-r";
|
||
|
sfp = <&sfp>;
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
&cp0_i2c0 {
|
||
|
expander0: gpio-expander@20 {
|
||
|
compatible = "nxp,pca9555";
|
||
|
reg = <0x20>;
|
||
|
gpio-controller;
|
||
|
#gpio-cells = <2>;
|
||
|
pinctrl-0 = <&expander0_pins>;
|
||
|
pinctrl-names = "default";
|
||
|
interrupt-parent = <&cp0_gpio1>;
|
||
|
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||
|
|
||
|
/* CON3 */
|
||
|
pcie2-0-clkreq-hog {
|
||
|
gpio-hog;
|
||
|
gpios = <0 GPIO_ACTIVE_LOW>;
|
||
|
input;
|
||
|
line-name = "pcie2.0-clkreq";
|
||
|
};
|
||
|
|
||
|
/* CON3 */
|
||
|
pcie2-0-w-disable-hog {
|
||
|
gpio-hog;
|
||
|
gpios = <3 GPIO_ACTIVE_LOW>;
|
||
|
output-low;
|
||
|
line-name = "pcie2.0-w-disable";
|
||
|
};
|
||
|
|
||
|
usb3-ilimit-hog {
|
||
|
gpio-hog;
|
||
|
gpios = <5 GPIO_ACTIVE_LOW>;
|
||
|
input;
|
||
|
line-name = "usb3-current-limit";
|
||
|
};
|
||
|
|
||
|
m2-devslp-hog {
|
||
|
gpio-hog;
|
||
|
gpios = <11 GPIO_ACTIVE_HIGH>;
|
||
|
output-low;
|
||
|
line-name = "m.2 devslp";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* The MCP3021 supports standard and fast modes */
|
||
|
adc@4c {
|
||
|
compatible = "microchip,mcp3021";
|
||
|
reg = <0x4c>;
|
||
|
};
|
||
|
|
||
|
carrier_eeprom: eeprom@52 {
|
||
|
compatible = "atmel,24c02";
|
||
|
reg = <0x52>;
|
||
|
pagesize = <8>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
&cp0_i2c1 {
|
||
|
/*
|
||
|
* Routed to SFP, M.2, mikrobus, and miniPCIe
|
||
|
* SFP limits this to 100kHz, and requires an AT24C01A/02/04 with
|
||
|
* address pins tied low, which takes addresses 0x50 and 0x51.
|
||
|
* Mikrobus doesn't specify beyond an I2C bus being present.
|
||
|
* PCIe uses ARP to assign addresses, or 0x63-0x64.
|
||
|
*/
|
||
|
clock-frequency = <100000>;
|
||
|
pinctrl-0 = <&cp0_i2c1_pins>;
|
||
|
pinctrl-names = "default";
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
/* SRDS #5 - miniPCIe (CON3) */
|
||
|
&cp0_pcie2 {
|
||
|
num-lanes = <1>;
|
||
|
phys = <&cp0_comphy5 2>;
|
||
|
/* dw-pcie inverts internally */
|
||
|
reset-gpios = <&expander0 1 GPIO_ACTIVE_HIGH>;
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
&cp0_pinctrl {
|
||
|
cp0_i2c1_pins: cp0-i2c1-pins {
|
||
|
marvell,pins = "mpp35", "mpp36";
|
||
|
marvell,function = "i2c1";
|
||
|
};
|
||
|
|
||
|
cp0_mmc0_pins: cp0-mmc0-pins {
|
||
|
marvell,pins = "mpp43", "mpp56", "mpp57", "mpp58",
|
||
|
"mpp59", "mpp60", "mpp61";
|
||
|
marvell,function = "sdio";
|
||
|
};
|
||
|
|
||
|
mikro_spi_pins: cp0-spi1-cs1-pins {
|
||
|
marvell,pins = "mpp12";
|
||
|
marvell,function = "spi1";
|
||
|
};
|
||
|
|
||
|
mikro_uart_pins: cp0-uart-pins {
|
||
|
marvell,pins = "mpp2", "mpp3";
|
||
|
marvell,function = "uart1";
|
||
|
};
|
||
|
|
||
|
expander0_pins: cp0-expander0-pins {
|
||
|
marvell,pins = "mpp4";
|
||
|
marvell,function = "gpio";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* SRDS #0 - SATA on M.2 connector */
|
||
|
&cp0_sata0 {
|
||
|
phys = <&cp0_comphy0 1>;
|
||
|
status = "okay";
|
||
|
|
||
|
/* only port 1 is available */
|
||
|
/delete-node/ sata-port@0;
|
||
|
};
|
||
|
|
||
|
/* microSD */
|
||
|
&cp0_sdhci0 {
|
||
|
pinctrl-0 = <&cp0_mmc0_pins>;
|
||
|
pinctrl-names = "default";
|
||
|
bus-width = <4>;
|
||
|
no-1-8-v;
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
&cp0_spi1 {
|
||
|
/* CS1 for mikrobus */
|
||
|
pinctrl-0 = <&cp0_spi1_pins &mikro_spi_pins>;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* SRDS #1 - USB-3.0 Host on Type-A connector
|
||
|
* USB-2.0 Host on mPCI-e connector (CON3)
|
||
|
*/
|
||
|
&cp0_usb3_0 {
|
||
|
phys = <&cp0_comphy1 0>, <&cp0_utmi0>;
|
||
|
phy-names = "comphy", "utmi";
|
||
|
vbus-supply = <®_usb3_vbus0>;
|
||
|
dr_mode = "host";
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
&cp0_utmi {
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
/* mikrobus uart */
|
||
|
&cp0_uart0 {
|
||
|
pinctrl-0 = <&mikro_uart_pins>;
|
||
|
pinctrl-names = "default";
|
||
|
status = "okay";
|
||
|
};
|