Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/device-tree/src/arm64/apple/t8103-j293.dts
109189 views
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
 * Apple MacBook Pro (13-inch, M1, 2020)
 *
 * target-type: J293
 *
 * Copyright The Asahi Linux Contributors
 */

/dts-v1/;

#include "t8103.dtsi"
#include "t8103-jxxx.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
	model = "Apple MacBook Pro (13-inch, M1, 2020)";

	/*
	 * All of those are used by the bootloader to pass calibration
	 * blobs and other device-specific properties
	 */
	aliases {
		touchbar0 = &touchbar0;
	};

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

&bluetooth0 {
	brcm,board-type = "apple,honshu";
};

&wifi0 {
	brcm,board-type = "apple,honshu";
};

&i2c2 {
	status = "okay";
};

&i2c4 {
	status = "okay";
};

&fpwm1 {
	status = "okay";
};

&spi0 {
	cs-gpios = <&pinctrl_ap 109 GPIO_ACTIVE_LOW>;
	status = "okay";

	touchbar0: touchbar@0 {
		compatible = "apple,j293-touchbar";
		reg = <0>;
		spi-max-frequency = <11500000>;
		spi-cs-setup-delay-ns = <2000>;
		spi-cs-hold-delay-ns = <2000>;
		reset-gpios = <&pinctrl_ap 139 GPIO_ACTIVE_LOW>;
		interrupts-extended = <&pinctrl_ap 194 IRQ_TYPE_EDGE_FALLING>;
		firmware-name = "apple/dfrmtfw-j293.bin";
		touchscreen-size-x = <23045>;
		touchscreen-size-y = <640>;
		touchscreen-inverted-y;
	};
};

/*
 * The driver depends on boot loader initialized state which resets when this
 * power-domain is powered off. This happens on suspend or when the driver is
 * missing during boot. Mark the domain as always on until the driver can
 * handle this.
 */
&ps_dispdfr_be {
	apple,always-on;
};

&display_dfr {
	status = "okay";
};

&dfr_mipi_out {
	dfr_mipi_out_panel: endpoint@0 {
		reg = <0>;
		remote-endpoint = <&dfr_panel_in>;
	};
};

&displaydfr_mipi {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

	dfr_panel: panel@0 {
		compatible = "apple,j293-summit", "apple,summit";
		reg = <0>;
		max-brightness = <255>;

		port {
			dfr_panel_in: endpoint {
				remote-endpoint = <&dfr_mipi_out_panel>;
			};
		};
	};
};

&displaydfr_dart {
	status = "okay";
};