xref: /freebsd/sys/contrib/device-tree/src/arm64/marvell/cn9130-sr-som.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
10e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
20e8011faSEmmanuel Vadot/*
30e8011faSEmmanuel Vadot * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
40e8011faSEmmanuel Vadot *
50e8011faSEmmanuel Vadot */
60e8011faSEmmanuel Vadot
70e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
80e8011faSEmmanuel Vadot
90e8011faSEmmanuel Vadot/ {
100e8011faSEmmanuel Vadot	model = "SolidRun CN9130 SoM";
110e8011faSEmmanuel Vadot	compatible = "solidrun,cn9130-sr-som", "marvell,cn9130";
120e8011faSEmmanuel Vadot
130e8011faSEmmanuel Vadot	aliases {
140e8011faSEmmanuel Vadot		ethernet0 = &cp0_eth0;
150e8011faSEmmanuel Vadot		ethernet1 = &cp0_eth1;
160e8011faSEmmanuel Vadot		ethernet2 = &cp0_eth2;
170e8011faSEmmanuel Vadot		i2c0 = &cp0_i2c0;
180e8011faSEmmanuel Vadot		mmc0 = &ap_sdhci0;
190e8011faSEmmanuel Vadot		rtc0 = &cp0_rtc;
200e8011faSEmmanuel Vadot	};
210e8011faSEmmanuel Vadot
220e8011faSEmmanuel Vadot	chosen {
230e8011faSEmmanuel Vadot		stdout-path = "serial0:115200n8";
240e8011faSEmmanuel Vadot	};
250e8011faSEmmanuel Vadot
260e8011faSEmmanuel Vadot	v_1_8: regulator-1-8 {
270e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
280e8011faSEmmanuel Vadot		regulator-name = "1v8";
290e8011faSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
300e8011faSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
310e8011faSEmmanuel Vadot	};
320e8011faSEmmanuel Vadot
330e8011faSEmmanuel Vadot	/* requires assembly of R9307 */
340e8011faSEmmanuel Vadot	vhv: regulator-vhv-1-8 {
350e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
360e8011faSEmmanuel Vadot		regulator-name = "vhv-1v8";
370e8011faSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
380e8011faSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
390e8011faSEmmanuel Vadot		pinctrl-0 = <&cp0_reg_vhv_pins>;
400e8011faSEmmanuel Vadot		pinctrl-names = "default";
410e8011faSEmmanuel Vadot		gpios = <&cp0_gpio2 9 GPIO_ACTIVE_HIGH>;
420e8011faSEmmanuel Vadot		enable-active-high;
430e8011faSEmmanuel Vadot	};
440e8011faSEmmanuel Vadot};
450e8011faSEmmanuel Vadot
460e8011faSEmmanuel Vadot&ap_pinctrl {
470e8011faSEmmanuel Vadot	ap_mmc0_pins: ap-mmc0-pins {
480e8011faSEmmanuel Vadot		marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3", "mpp4", "mpp5",
490e8011faSEmmanuel Vadot					   "mpp6", "mpp7", "mpp8", "mpp9", "mpp10", "mpp12";
500e8011faSEmmanuel Vadot		marvell,function = "sdio";
510e8011faSEmmanuel Vadot		/*
520e8011faSEmmanuel Vadot		 * mpp12 is emmc reset, function should be sdio (hw_rst),
530e8011faSEmmanuel Vadot		 * but pinctrl-mvebu does not support this.
540e8011faSEmmanuel Vadot		 *
550e8011faSEmmanuel Vadot		 * From pinctrl-mvebu.h:
560e8011faSEmmanuel Vadot		 * "The name will be used to switch to this setting in DT description, e.g.
570e8011faSEmmanuel Vadot		 * marvell,function = "uart2". subname is only for debugging purposes."
580e8011faSEmmanuel Vadot		 */
590e8011faSEmmanuel Vadot	};
600e8011faSEmmanuel Vadot};
610e8011faSEmmanuel Vadot
620e8011faSEmmanuel Vadot&ap_sdhci0 {
630e8011faSEmmanuel Vadot	bus-width = <8>;
640e8011faSEmmanuel Vadot	pinctrl-0 = <&ap_mmc0_pins>;
650e8011faSEmmanuel Vadot	pinctrl-names = "default";
660e8011faSEmmanuel Vadot	vqmmc-supply = <&v_1_8>;
670e8011faSEmmanuel Vadot	status = "okay";
680e8011faSEmmanuel Vadot};
690e8011faSEmmanuel Vadot
700e8011faSEmmanuel Vadot&cp0_ethernet {
710e8011faSEmmanuel Vadot	status = "okay";
720e8011faSEmmanuel Vadot};
730e8011faSEmmanuel Vadot
740e8011faSEmmanuel Vadot/* for assembly with phy */
750e8011faSEmmanuel Vadot&cp0_eth2 {
760e8011faSEmmanuel Vadot	pinctrl-names = "default";
770e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_eth2_pins>;
780e8011faSEmmanuel Vadot	phy-mode = "rgmii-id";
790e8011faSEmmanuel Vadot	phy = <&cp0_eth2_phy>;
800e8011faSEmmanuel Vadot	status = "okay";
810e8011faSEmmanuel Vadot};
820e8011faSEmmanuel Vadot
830e8011faSEmmanuel Vadot&cp0_i2c0 {
840e8011faSEmmanuel Vadot	pinctrl-names = "default";
850e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_i2c0_pins>;
860e8011faSEmmanuel Vadot	clock-frequency = <100000>;
870e8011faSEmmanuel Vadot	status = "okay";
880e8011faSEmmanuel Vadot
890e8011faSEmmanuel Vadot	som_eeprom: eeprom@53 {
900e8011faSEmmanuel Vadot		compatible = "atmel,24c02";
910e8011faSEmmanuel Vadot		reg = <0x53>;
920e8011faSEmmanuel Vadot		pagesize = <8>;
930e8011faSEmmanuel Vadot	};
940e8011faSEmmanuel Vadot};
950e8011faSEmmanuel Vadot
960e8011faSEmmanuel Vadot&cp0_mdio {
970e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_mdio_pins>;
980e8011faSEmmanuel Vadot	status = "okay";
990e8011faSEmmanuel Vadot
1000e8011faSEmmanuel Vadot	/* assembly option */
1010e8011faSEmmanuel Vadot	cp0_eth2_phy: ethernet-phy@0 {
1020e8011faSEmmanuel Vadot		reg = <0>;
1030e8011faSEmmanuel Vadot	};
1040e8011faSEmmanuel Vadot};
1050e8011faSEmmanuel Vadot
1060e8011faSEmmanuel Vadot&cp0_spi1 {
1070e8011faSEmmanuel Vadot	status = "okay";
1080e8011faSEmmanuel Vadot	pinctrl-names = "default";
1090e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_spi1_pins>;
1100e8011faSEmmanuel Vadot	/* max speed limited by a mux */
1110e8011faSEmmanuel Vadot	spi-max-frequency = <1800000000>;
1120e8011faSEmmanuel Vadot
1130e8011faSEmmanuel Vadot	flash@0 {
1140e8011faSEmmanuel Vadot		compatible = "jedec,spi-nor";
1150e8011faSEmmanuel Vadot		reg = <0>;
1160e8011faSEmmanuel Vadot		/* read command supports max. 50MHz */
1170e8011faSEmmanuel Vadot		spi-max-frequency = <50000000>;
1180e8011faSEmmanuel Vadot	};
1190e8011faSEmmanuel Vadot};
1200e8011faSEmmanuel Vadot
1210e8011faSEmmanuel Vadot&cp0_syscon0 {
1220e8011faSEmmanuel Vadot	cp0_pinctrl: pinctrl {
1230e8011faSEmmanuel Vadot		compatible = "marvell,cp115-standalone-pinctrl";
1240e8011faSEmmanuel Vadot
1250e8011faSEmmanuel Vadot		cp0_eth2_pins: cp0-ge2-rgmii-pins {
1260e8011faSEmmanuel Vadot			marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47",
1270e8011faSEmmanuel Vadot				       "mpp48", "mpp49", "mpp50", "mpp51",
1280e8011faSEmmanuel Vadot				       "mpp52", "mpp53", "mpp54", "mpp55";
1290e8011faSEmmanuel Vadot			/* docs call it "ge2", but cp110-pinctrl "ge1" */
1300e8011faSEmmanuel Vadot			marvell,function = "ge1";
1310e8011faSEmmanuel Vadot		};
1320e8011faSEmmanuel Vadot
1330e8011faSEmmanuel Vadot		cp0_i2c0_pins: cp0-i2c0-pins {
1340e8011faSEmmanuel Vadot			marvell,pins = "mpp37", "mpp38";
1350e8011faSEmmanuel Vadot			marvell,function = "i2c0";
1360e8011faSEmmanuel Vadot		};
1370e8011faSEmmanuel Vadot
1380e8011faSEmmanuel Vadot		cp0_mdio_pins: cp0-mdio-pins {
139*b2d2a78aSEmmanuel Vadot			marvell,pins = "mpp0", "mpp1";
1400e8011faSEmmanuel Vadot			marvell,function = "ge";
1410e8011faSEmmanuel Vadot		};
1420e8011faSEmmanuel Vadot
1430e8011faSEmmanuel Vadot		cp0_spi1_pins: cp0-spi1-pins {
1440e8011faSEmmanuel Vadot			marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
1450e8011faSEmmanuel Vadot			marvell,function = "spi1";
1460e8011faSEmmanuel Vadot		};
1470e8011faSEmmanuel Vadot
1480e8011faSEmmanuel Vadot		cp0_reg_vhv_pins: cp0-reg-vhv-pins {
1490e8011faSEmmanuel Vadot			marvell,pins = "mpp41";
1500e8011faSEmmanuel Vadot			marvell,function = "gpio";
1510e8011faSEmmanuel Vadot		};
1520e8011faSEmmanuel Vadot	};
1530e8011faSEmmanuel Vadot};
1540e8011faSEmmanuel Vadot
1550e8011faSEmmanuel Vadot/* AP default console */
1560e8011faSEmmanuel Vadot&uart0 {
1570e8011faSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
1580e8011faSEmmanuel Vadot	pinctrl-names = "default";
1590e8011faSEmmanuel Vadot	status = "okay";
1600e8011faSEmmanuel Vadot};
161