// 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
 */

/ {
	aliases {
		bluetooth0 = &bluetooth0;
		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";
	};

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

/*
 * 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>;
	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";
	};

	bluetooth0: bluetooth@0,1 {
		compatible = "pci14e4,5f69";
		reg = <0x10100 0x0 0x0 0x0 0x0>;
		/* To be filled by the loader */
		local-bd-address = [00 00 00 00 00 00];
	};
};

&nco_clkref {
	clock-frequency = <900000000>;
};
