xref: /linux/scripts/dtc/include-prefixes/riscv/starfive/jh7110-milkv-marscm.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1// SPDX-License-Identifier: GPL-2.0 OR MIT
2/*
3 * Copyright (C) 2025 E Shattow <e@freeshell.de>
4 */
5
6/dts-v1/;
7#include <dt-bindings/interrupt-controller/irq.h>
8#include "jh7110-common.dtsi"
9
10/ {
11	aliases {
12		i2c1 = &i2c1;
13		i2c3 = &i2c3;
14		i2c4 = &i2c4;
15		serial3 = &uart3;
16	};
17
18	sdio_pwrseq: sdio-pwrseq {
19		compatible = "mmc-pwrseq-simple";
20		reset-gpios = <&sysgpio 33 GPIO_ACTIVE_LOW>;
21	};
22};
23
24&gmac0 {
25	assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
26	assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
27	starfive,tx-use-rgmii-clk;
28	status = "okay";
29};
30
31&i2c0 {
32	status = "okay";
33};
34
35&i2c2 {
36	status = "disabled";
37};
38
39&i2c6 {
40	status = "disabled";
41};
42
43&mmc1 {
44	#address-cells = <1>;
45	#size-cells = <0>;
46
47	mmc-pwrseq = <&sdio_pwrseq>;
48	non-removable;
49	status = "okay";
50
51	ap6256: wifi@1 {
52		compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
53		reg = <1>;
54		interrupt-parent = <&sysgpio>;
55		interrupts = <34 IRQ_TYPE_LEVEL_HIGH>;
56		interrupt-names = "host-wake";
57		pinctrl-0 = <&wifi_host_wake_irq>;
58		pinctrl-names = "default";
59	};
60};
61
62&pcie0 {
63	status = "okay";
64};
65
66&phy0 {
67	rx-internal-delay-ps = <1500>;
68	tx-internal-delay-ps = <1500>;
69	motorcomm,rx-clk-drv-microamp = <3970>;
70	motorcomm,rx-data-drv-microamp = <2910>;
71	motorcomm,tx-clk-10-inverted;
72	motorcomm,tx-clk-100-inverted;
73	motorcomm,tx-clk-1000-inverted;
74	motorcomm,tx-clk-adj-enabled;
75};
76
77&pwm {
78	status = "okay";
79};
80
81&spi0 {
82	status = "okay";
83};
84
85&sysgpio {
86	uart1_pins: uart1-0 {
87		tx-pins {
88			pinmux = <GPIOMUX(16, GPOUT_SYS_UART1_TX,
89					      GPOEN_ENABLE,
90					      GPI_NONE)>;
91			bias-disable;
92			drive-strength = <12>;
93			input-disable;
94			input-schmitt-disable;
95		};
96
97		rx-pins {
98			pinmux = <GPIOMUX(17, GPOUT_LOW,
99					      GPOEN_DISABLE,
100					      GPI_SYS_UART1_RX)>;
101			bias-pull-up;
102			input-enable;
103			input-schmitt-enable;
104		};
105
106		cts-pins {
107			pinmux = <GPIOMUX(3, GPOUT_LOW,
108					     GPOEN_DISABLE,
109					     GPI_SYS_UART1_CTS)>;
110			bias-disable;
111			input-enable;
112			input-schmitt-enable;
113		};
114
115		rts-pins {
116			pinmux = <GPIOMUX(2, GPOUT_SYS_UART1_RTS,
117					     GPOEN_ENABLE,
118					     GPI_NONE)>;
119			bias-disable;
120			input-disable;
121			input-schmitt-disable;
122		};
123	};
124
125	usb0_pins: usb0-0 {
126		vbus-pins {
127			pinmux = <GPIOMUX(25, GPOUT_SYS_USB_DRIVE_VBUS,
128					      GPOEN_ENABLE,
129					      GPI_NONE)>;
130			bias-disable;
131			input-disable;
132			input-schmitt-disable;
133			slew-rate = <0>;
134		};
135	};
136
137	wifi_host_wake_irq: wifi-host-wake-irq-0 {
138		wake-pins {
139			pinmux = <GPIOMUX(34, GPOUT_LOW,
140					      GPOEN_DISABLE,
141					      GPI_NONE)>;
142			input-enable;
143		};
144	};
145};
146
147&uart1 {
148	uart-has-rtscts;
149	pinctrl-0 = <&uart1_pins>;
150	pinctrl-names = "default";
151	status = "okay";
152};
153
154&usb0 {
155	dr_mode = "host";
156	pinctrl-names = "default";
157	pinctrl-0 = <&usb0_pins>;
158	status = "okay";
159};
160