1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2/*
3 * Apple MacBook Pro (13-inch, M1, 2022)
4 *
5 * target-type: J493
6 *
7 * Copyright The Asahi Linux Contributors
8 */
9
10/dts-v1/;
11
12#include "t8112.dtsi"
13#include "t8112-jxxx.dtsi"
14#include <dt-bindings/leds/common.h>
15
16/ {
17	compatible = "apple,j493", "apple,t8112", "apple,arm-platform";
18	model = "Apple MacBook Pro (13-inch, M2, 2022)";
19
20	/*
21	 * All of those are used by the bootloader to pass calibration
22	 * blobs and other device-specific properties
23	 */
24	aliases {
25		bluetooth0 = &bluetooth0;
26		touchbar0 = &touchbar0;
27		wifi0 = &wifi0;
28	};
29
30	led-controller {
31		compatible = "pwm-leds";
32		led-0 {
33			pwms = <&fpwm1 0 40000>;
34			label = "kbd_backlight";
35			function = LED_FUNCTION_KBD_BACKLIGHT;
36			color = <LED_COLOR_ID_WHITE>;
37			max-brightness = <255>;
38			default-state = "keep";
39		};
40	};
41};
42
43/*
44 * The driver depends on boot loader initialized state which resets when this
45 * power-domain is powered off. This happens on suspend or when the driver is
46 * missing during boot. Mark the domain as always on until the driver can
47 * handle this.
48 */
49&ps_dispdfr_be {
50	apple,always-on;
51};
52
53&display_dfr {
54	status = "okay";
55};
56
57&dfr_mipi_out {
58	dfr_mipi_out_panel: endpoint@0 {
59		reg = <0>;
60		remote-endpoint = <&dfr_panel_in>;
61	};
62};
63
64&displaydfr_mipi {
65	status = "okay";
66
67	dfr_panel: panel@0 {
68		compatible = "apple,j493-summit", "apple,summit";
69		reg = <0>;
70		max-brightness = <255>;
71
72		port {
73			dfr_panel_in: endpoint {
74				remote-endpoint = <&dfr_mipi_out_panel>;
75			};
76		};
77	};
78};
79
80&displaydfr_dart {
81	status = "okay";
82};
83
84/*
85 * Force the bus number assignments so that we can declare some of the
86 * on-board devices and properties that are populated by the bootloader
87 * (such as MAC addresses).
88 */
89&port00 {
90	bus-range = <1 1>;
91	wifi0: wifi@0,0 {
92		compatible = "pci14e4,4425";
93		reg = <0x10000 0x0 0x0 0x0 0x0>;
94		/* To be filled by the loader */
95		local-mac-address = [00 00 00 00 00 00];
96		apple,antenna-sku = "XX";
97		brcm,board-type = "apple,kyushu";
98	};
99
100	bluetooth0: bluetooth@0,1 {
101		compatible = "pci14e4,5f69";
102		reg = <0x10100 0x0 0x0 0x0 0x0>;
103		/* To be filled by the loader */
104		local-bd-address = [00 00 00 00 00 00];
105		brcm,board-type = "apple,kyushu";
106	};
107};
108
109&i2c4 {
110	status = "okay";
111};
112
113&fpwm1 {
114	status = "okay";
115};
116
117&spi3 {
118	status = "okay";
119
120	touchbar0: touchbar@0 {
121		compatible = "apple,j493-touchbar";
122		reg = <0>;
123		spi-max-frequency = <8000000>;
124		spi-cs-setup-delay-ns = <2000>;
125		spi-cs-hold-delay-ns = <2000>;
126		reset-gpios = <&pinctrl_ap 170 GPIO_ACTIVE_LOW>;
127		interrupts-extended = <&pinctrl_ap 174 IRQ_TYPE_EDGE_FALLING>;
128		firmware-name = "apple/dfrmtfw-j493.bin";
129		touchscreen-size-x = <23045>;
130		touchscreen-size-y = <640>;
131		touchscreen-inverted-y;
132	};
133};
134