// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
 * MacBook Pro (14/16-inch, 2021)
 *
 * This file contains the parts common to J314 and J316 devices with both t6000 and t6001.
 *
 * target-type: J314s / J314c / J316s / J316c
 *
 * Copyright The Asahi Linux Contributors
 */

#include <dt-bindings/leds/common.h>

/ {
	aliases {
		serial0 = &serial0;
		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@10000000000 {
		device_type = "memory";
		reg = <0x100 0 0x2 0>; /* To be filled by loader */
	};

	led-controller {
		compatible = "pwm-leds";
		led-0 {
			pwms = <&fpwm0 0 40000>;
			label = "kbd_backlight";
			function = LED_FUNCTION_KBD_BACKLIGHT;
			color = <LED_COLOR_ID_WHITE>;
			max-brightness = <255>;
			default-state = "keep";
		};
	};
};

&serial0 {
	status = "okay";
};

/* USB Type C */
&i2c0 {
	hpm0: usb-pd@38 {
		compatible = "apple,cd321x";
		reg = <0x38>;
		interrupt-parent = <&pinctrl_ap>;
		interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";
	};

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

	hpm2: usb-pd@3b {
		compatible = "apple,cd321x";
		reg = <0x3b>;
		interrupt-parent = <&pinctrl_ap>;
		interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";
	};

	/* MagSafe port */
	hpm5: usb-pd@3a {
		compatible = "apple,cd321x";
		reg = <0x3a>;
		interrupt-parent = <&pinctrl_ap>;
		interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";
	};
};

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

/* PCIe devices */
&port00 {
	/* WLAN */
	bus-range = <1 1>;
	wifi0: wifi@0,0 {
		reg = <0x10000 0x0 0x0 0x0 0x0>;
		/* To be filled by the loader */
		local-mac-address = [00 10 18 00 00 10];
	};
};

&port01 {
	/* SD card reader */
	bus-range = <2 2>;
	sdhci0: mmc@0,0 {
		compatible = "pci17a0,9755";
		reg = <0x20000 0x0 0x0 0x0 0x0>;
		cd-inverted;
		wp-inverted;
	};
};

&fpwm0 {
	status = "okay";
};
