// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
 * Apple M1 Mac mini, MacBook Air/Pro, iMac 24" (M1, 2020/2021)
 *
 * This file contains parts common to all Apple M1 devices using the t8103.
 *
 * target-type: J274, J293, J313, J456, J457
 *
 * Copyright The Asahi Linux Contributors
 */

#include <dt-bindings/spmi/spmi.h>

/ {
	aliases {
		serial0 = &serial0;
		serial2 = &serial2;
		wifi0 = &wifi0;
	};

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		stdout-path = "serial0";

		framebuffer0: framebuffer@0 {
			compatible = "apple,simple-framebuffer", "simple-framebuffer";
			reg = <0 0 0 0>; /* To be filled by loader */
			/* Format properties will be added by loader */
			status = "disabled";
		};
	};

	memory@800000000 {
		device_type = "memory";
		reg = <0x8 0 0x2 0>; /* To be filled by loader */
	};
};

&serial0 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&i2c0 {
	hpm0: usb-pd@38 {
		compatible = "apple,cd321x";
		reg = <0x38>;
		interrupt-parent = <&pinctrl_ap>;
		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";

		typec0: connector {
			compatible = "usb-c-connector";
			power-role = "dual";
			data-role = "dual";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					typec0_con_hs: endpoint {
						remote-endpoint = <&typec0_usb_hs>;
					};
				};
			};
		};
	};

	hpm1: usb-pd@3f {
		compatible = "apple,cd321x";
		reg = <0x3f>;
		interrupt-parent = <&pinctrl_ap>;
		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";

		typec1: connector {
			compatible = "usb-c-connector";
			power-role = "dual";
			data-role = "dual";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					typec1_con_hs: endpoint {
						remote-endpoint = <&typec1_usb_hs>;
					};
				};
			};
		};
	};
};

/* USB controllers */
&dwc3_0 {
	port {
		typec0_usb_hs: endpoint {
			remote-endpoint = <&typec0_con_hs>;
		};
	};
};

&dwc3_1 {
	port {
		typec1_usb_hs: endpoint {
			remote-endpoint = <&typec1_con_hs>;
		};
	};
};

/*
 * Force the bus number assignments so that we can declare some of the
 * on-board devices and properties that are populated by the bootloader
 * (such as MAC addresses).
 */
&port00 {
	bus-range = <1 1>;
	pwren-gpios = <&smc 13 0>;
	wifi0: network@0,0 {
		compatible = "pci14e4,4425";
		reg = <0x10000 0x0 0x0 0x0 0x0>;
		/* To be filled by the loader */
		local-mac-address = [00 00 00 00 00 00];
		apple,antenna-sku = "XX";
	};
};

&spmi {
	status = "okay";

	pmu@f {
		compatible = "apple,sera-pmu";
		reg = <0xf SPMI_USID>;
	};
};
