Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions arch/arm64/boot/dts/apple/t6030-j514s.dts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
model = "Apple MacBook Pro (14-inch, M3 Pro, Nov 2023)";
};

&panel {
compatible = "apple,panel-j514s", "apple,panel-mini-led", "apple,panel";
width-mm = <302>;
height-mm = <196>;
adj-height-mm = <189>;
};

&framebuffer0 {
power-domains = <&ps_disp_cpu>;
};
Expand Down
7 changes: 7 additions & 0 deletions arch/arm64/boot/dts/apple/t6030-j516s.dts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
model = "Apple MacBook Pro (16-inch, M3 Pro, Nov 2023)";
};

&panel {
compatible = "apple,panel-j516s", "apple,panel-mini-led", "apple,panel";
width-mm = <346>;
height-mm = <223>;
adj-height-mm = <216>;
};

&framebuffer0 {
power-domains = <&ps_disp_cpu>;
};
Expand Down
94 changes: 94 additions & 0 deletions arch/arm64/boot/dts/apple/t6030.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,94 @@
#sound-dai-cells = <1>;
};

disp_dart: iommu@28d304000 {
compatible = "apple,t6030-dart", "apple,t8110-dart";
reg = <0x2 0x8d304000 0x0 0x4000>;
#iommu-cells = <1>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 609 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
power-domains = <&ps_disp_cpu>;
apple,dma-range = <0x100 0x0 0x10 0x0>;
};

dcp_dart: iommu@28d30c000 {
compatible = "apple,t6030-dart", "apple,t8110-dart";
reg = <0x2 0x8d30c000 0x0 0x4000>;
#iommu-cells = <1>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 609 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&ps_disp_cpu>;
apple,dma-range = <0x100 0x0 0x10 0x0>;
};

dcp_mbox: mbox@28ec08000 {
compatible = "apple,t6030-asc-mailbox", "apple,asc-mailbox-v4";
reg = <0x2 0x8ec08000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 589 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 591 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 592 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "send-empty", "send-not-empty",
"recv-empty", "recv-not-empty";
#mbox-cells = <0>;
power-domains = <&ps_disp_cpu>;
};

clk_disp: clock-disp {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <257142848>;
clock-output-names = "clk_disp";
};

dcp: dcp@28ec00000 {
compatible = "apple,t6030-dcp", "apple,dcp";
mboxes = <&dcp_mbox>;
mbox-names = "mbox";
iommus = <&dcp_dart 5>;
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3", "disp-4";
reg = <0x2 0x8ec00000 0x0 0x4000>, // check?
<0x2 0xd0000000 0x0 0x690000>,
<0x2 0xd0800000 0x0 0x690000>,
<0x2 0xd1320000 0x0 0x4000>,
<0x2 0xd1344000 0x0 0x4000>,
<0x2 0xd2800000 0x0 0x800000>;
apple,bw-scratch = <&pmgr_dcp 0 5 0x988>;
apple,iomfb-surfaces = <1 1 0 1>;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have we tested various combinations of surface? I'm hoping that we have less buggy nonsense on the M3+ DCPs.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How can that be tested? I installed and tried kwin with KWIN_USE_OVERLAYS=1, but i think its only using two planes.

power-domains = <&ps_disp_cpu>;
resets = <&ps_disp_cpu>;
clocks = <&clk_disp>;
phandle = <&dcp>;
// required bus properties for 'piodma' subdevice
#address-cells = <2>;
#size-cells = <2>;

disp0_piodma: piodma {
iommus = <&disp_dart 4>;
phandle = <&disp0_piodma>;
};

ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
/* dcp_audio: endpoint { */
/* remote-endpoint = <&dpaudio0_dcp>; */
/* }; */
};
};
};

display: display-subsystem {
compatible = "apple,display-subsystem";
iommus = <&disp_dart 0>;
/* generate phandle explicitly for use in loader */
phandle = <&display>;
};

pmgr_gfx: power-management@290e80000 {
compatible = "apple,t6030-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
#address-cells = <1>;
Expand Down Expand Up @@ -783,6 +871,12 @@
};
};

pmgr_dcp: power-management@3503d0000 {
reg = <0x3 0x503d0000 0x0 0x4000>;
reg-names = "dcp-fw-pmgr";
#apple,bw-scratch-cells = <3>;
};

pmgr: power-management@350700000 {
compatible = "apple,t6030-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
#address-cells = <1>;
Expand Down
63 changes: 63 additions & 0 deletions arch/arm64/boot/dts/apple/t6031-base.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,69 @@
clock-output-names = "nco_ref";
};

clk_disp0: clock-disp {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <257142848>;
clock-output-names = "clk_disp";
};

clk_dispext0: clock-dispext0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext0";
};

clk_dispext0_die1: clock-dispext0_die1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext0_die1";
};

clk_dispext1: clock-dispext1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext1";
};

clk_dispext1_die1: clock-dispext1_die1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext1_die1";
};

clk_dispext2: clock-dispext2 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext2";
};

clk_dispext2_die1: clock-dispext2_die1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext2_die1";
};

clk_dispext3: clock-dispext3 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext3";
};

clk_dispext3_die1: clock-dispext3_die1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dispext3_die1";
};

reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
Expand Down
86 changes: 86 additions & 0 deletions arch/arm64/boot/dts/apple/t6031-die0.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@
power-domains = <&ps_aic>;
};

pmgr_dcp: power-management@2903d0000 {
reg = <0x2 0x903d0000 0x0 0x4000>;
reg-names = "dcp-fw-pmgr";
#apple,bw-scratch-cells = <3>;
};

nub_spmi: spmi@2a1014000 {
compatible = "apple,t6031-spmi", "apple,t8103-spmi";
reg = <0x2 0xa1014000 0x0 0x100>;
Expand Down Expand Up @@ -328,6 +334,86 @@
};
};

disp0_dart: iommu@385304000 {
compatible = "apple,t6031-dart", "apple,t8110-dart";
reg = <0x3 0x85304000 0x0 0x4000>;
#iommu-cells = <1>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 0 1008 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
power-domains = <&ps_disp_cpu>;
apple,dma-range = <0x100 0x0 0x10 0x0>;
};

dcp_dart: iommu@38530c000 {
compatible = "apple,t6031-dart", "apple,t8110-dart";
reg = <0x3 0x8530c000 0x0 0x4000>;
#iommu-cells = <1>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 0 1008 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&ps_disp_cpu>;
apple,dma-range = <0x100 0x0 0x10 0x0>;
};

dcp_mbox: mbox@386c08000 {
compatible = "apple,t6031-asc-mailbox", "apple,asc-mailbox-v4";
reg = <0x3 0x86c08000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 0 1029 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1030 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1031 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1032 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "send-empty", "send-not-empty",
"recv-empty", "recv-not-empty";
#mbox-cells = <0>;
power-domains = <&ps_disp_cpu>;
};

dcp: dcp@386c00000 {
compatible = "apple,t6031-dcp", "apple,dcp";
mboxes = <&dcp_mbox>;
mbox-names = "mbox";
iommus = <&dcp_dart 5>;
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";
reg = <0x3 0x86c00000 0x0 0x4000>, // check?
<0x3 0x84000000 0x0 0x4000000>,
<0x3 0x85320000 0x0 0x4000>,
<0x3 0x85344000 0x0 0x4000>,
<0x3 0x86800000 0x0 0x800000>;
apple,bw-scratch = <&pmgr_dcp 0 4 0x1208>;
apple,iomfb-surfaces = <1 1 0 1>;
power-domains = <&ps_disp_cpu>;
resets = <&ps_disp_cpu>;
clocks = <&clk_disp0>;
phandle = <&dcp>;
// required bus properties for 'piodma' subdevice
#address-cells = <2>;
#size-cells = <2>;

disp0_piodma: piodma {
iommus = <&disp0_dart 4>;
phandle = <&disp0_piodma>;
};

ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
/* dcp_audio: endpoint { */
/* remote-endpoint = <&dpaudio0_dcp>; */
/* }; */
};
};
};

display: display-subsystem {
compatible = "apple,display-subsystem";
iommus = <&disp0_dart 0>;
/* generate phandle explicitly for use in loader */
phandle = <&display>;
};

isp_dart0: iommu@38e4a8000 {
compatible = "apple,t6031-dart", "apple,t8110-dart";
reg = <0x3 0x8e4a8000 0x0 0x4000>;
Expand Down
Loading