Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/riscv/boot/dts/starfive/jh7110-milkv-marscm.dtsi
29274 views
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Copyright (C) 2025 E Shattow <[email protected]>
 */

/dts-v1/;
#include <dt-bindings/interrupt-controller/irq.h>
#include "jh7110-common.dtsi"

/ {
	aliases {
		i2c1 = &i2c1;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		serial3 = &uart3;
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&sysgpio 33 GPIO_ACTIVE_LOW>;
	};
};

&gmac0 {
	assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
	assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
	starfive,tx-use-rgmii-clk;
	status = "okay";
};

&i2c0 {
	status = "okay";
};

&i2c2 {
	status = "disabled";
};

&i2c6 {
	status = "disabled";
};

&mmc1 {
	#address-cells = <1>;
	#size-cells = <0>;

	mmc-pwrseq = <&sdio_pwrseq>;
	non-removable;
	status = "okay";

	ap6256: wifi@1 {
		compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
		reg = <1>;
		interrupt-parent = <&sysgpio>;
		interrupts = <34 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "host-wake";
		pinctrl-0 = <&wifi_host_wake_irq>;
		pinctrl-names = "default";
	};
};

&pcie0 {
	status = "okay";
};

&phy0 {
	rx-internal-delay-ps = <1500>;
	tx-internal-delay-ps = <1500>;
	motorcomm,rx-clk-drv-microamp = <3970>;
	motorcomm,rx-data-drv-microamp = <2910>;
	motorcomm,tx-clk-10-inverted;
	motorcomm,tx-clk-100-inverted;
	motorcomm,tx-clk-1000-inverted;
	motorcomm,tx-clk-adj-enabled;
};

&pwm {
	status = "okay";
};

&spi0 {
	status = "okay";
};

&sysgpio {
	uart1_pins: uart1-0 {
		tx-pins {
			pinmux = <GPIOMUX(16, GPOUT_SYS_UART1_TX,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-disable;
			drive-strength = <12>;
			input-disable;
			input-schmitt-disable;
		};

		rx-pins {
			pinmux = <GPIOMUX(17, GPOUT_LOW,
					      GPOEN_DISABLE,
					      GPI_SYS_UART1_RX)>;
			bias-pull-up;
			input-enable;
			input-schmitt-enable;
		};

		cts-pins {
			pinmux = <GPIOMUX(3, GPOUT_LOW,
					     GPOEN_DISABLE,
					     GPI_SYS_UART1_CTS)>;
			bias-disable;
			input-enable;
			input-schmitt-enable;
		};

		rts-pins {
			pinmux = <GPIOMUX(2, GPOUT_SYS_UART1_RTS,
					     GPOEN_ENABLE,
					     GPI_NONE)>;
			bias-disable;
			input-disable;
			input-schmitt-disable;
		};
	};

	usb0_pins: usb0-0 {
		vbus-pins {
			pinmux = <GPIOMUX(25, GPOUT_SYS_USB_DRIVE_VBUS,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-disable;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};
	};

	wifi_host_wake_irq: wifi-host-wake-irq-0 {
		wake-pins {
			pinmux = <GPIOMUX(34, GPOUT_LOW,
					      GPOEN_DISABLE,
					      GPI_NONE)>;
			input-enable;
		};
	};
};

&uart1 {
	uart-has-rtscts;
	pinctrl-0 = <&uart1_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&usb0 {
	dr_mode = "host";
	pinctrl-names = "default";
	pinctrl-0 = <&usb0_pins>;
	status = "okay";
};