diff --git a/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi b/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi index 70b75372784e6a..41300372413051 100644 --- a/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi +++ b/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi @@ -879,6 +879,7 @@ #power-domain-cells = <0>; #reset-cells = <0>; label = "pmp"; + apple,always-on; }; ps_pms_sram: power-controller@4d0 { @@ -887,6 +888,7 @@ #power-domain-cells = <0>; #reset-cells = <0>; label = "pms_sram"; + apple,always-on; }; ps_lw31: power-controller@4d8 { diff --git a/arch/arm64/boot/dts/apple/t6030.dtsi b/arch/arm64/boot/dts/apple/t6030.dtsi index 6918f022faab8a..9201c78d54e648 100644 --- a/arch/arm64/boot/dts/apple/t6030.dtsi +++ b/arch/arm64/boot/dts/apple/t6030.dtsi @@ -17,6 +17,12 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + #ifdef APPLE_USE_PMP + pmp = &pmp; + #endif + }; + cpus { #address-cells = <2>; #size-cells = <0>; @@ -727,6 +733,156 @@ #clock-cells = <1>; }; + pmp_dart: iommu@350300000 { + compatible = "apple,t6030-dart", "apple,t8110-dart"; + reg = <0x3 0x50300000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_pmp>; + }; + + pmp_report: pmp_report@3503c0000 { + compatible = "apple,t6030-pmp-v2-report"; + reg = <0x3 0x503c0000 0x0 0x20000>; + power-domains = <&ps_pms_sram>; + #address-cells = <1>; + #size-cells = <0>; + + pmp_report_ane_sys: report@5 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x5>; + label = "pmp-ane-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + pmp_report_isp_sys: report@6 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x6>; + label = "pmp-isp-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_isp_sys>; + status = "disabled"; + }; + + pmp_report_disp: report@7 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x7>; + label = "pmp-disp"; + #power-domain-cells = <0>; + power-domains = <&ps_disp_cpu>; + apple,always-on; + }; + + pmp_report_dispext0: report@8 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x8>; + label = "pmp-dispext0"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext0_cpu>; + }; + + pmp_report_dispext1: report@9 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x9>; + label = "pmp-dispext1"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext1_cpu>; + }; + + pmp_report_venc_sys: report@a { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xa>; + label = "pmp-venc-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_venc_sys>; + status = "disabled"; + }; + + pmp_report_avd_sys: report@b { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xb>; + label = "pmp-avd-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_avd_sys>; + status = "disabled"; + }; + + pmp_report_msr: report@c { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xc>; + label = "pmp-msr"; + #power-domain-cells = <0>; + power-domains = <&ps_msr>; + status = "disabled"; + }; + + pmp_report_jpg: report@d { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xd>; + label = "pmp-jpg"; + #power-domain-cells = <0>; + power-domains = <&ps_jpg>; + status = "disabled"; + }; + + pmp_report_scodec: report@e { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xe>; + label = "pmp-scodec"; + #power-domain-cells = <0>; + power-domains = <&ps_scodec>; + status = "disabled"; + }; + + pmp_report_ans: report@10 { + compatible = "apple,t6030-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x10>; + label = "pmp-ans"; + #power-domain-cells = <0>; + power-domains = <&ps_ans>; + }; + }; + + pmp: pmp@350500000 { + compatible = "apple,t6030-pmp-v2", "apple,t6000-pmp-v2"; + reg = <0x3 0x50500000 0x0 0x80000>, + <0x3 0x50c00000 0x0 0x4000>; + reg-names = "pmp", "asc"; + mboxes = <&pmp_mbox>; + mbox-names = "mbox"; + iommus = <&pmp_dart 0>; + power-domains = <&ps_pmp>; + status = "disabled"; + }; + + pmp_mbox: mbox@350c08000 { + compatible = "apple,t6030-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x3 0x50c08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_pmp>, <&ps_pms_sram>; + }; + aic: interrupt-controller@351000000 { compatible = "apple,t6030-aic3", "apple,t8122-aic3"; #interrupt-cells = <3>; @@ -1020,13 +1176,21 @@ "recv-empty", "recv-not-empty"; #mbox-cells = <0>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>; + #else power-domains = <&ps_ans>; + #endif }; sart: sart@38dc50000 { compatible = "apple,t6030-sart", "apple,t6000-sart"; reg = <0x3 0x8dc50000 0x0 0xc000>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>; + #else power-domains = <&ps_ans>; + #endif }; nvme: nvme@38dcc0000 { @@ -1041,7 +1205,11 @@ mboxes = <&ans_mbox>; apple,sart = <&sart>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>, <&ps_apcie_sys_st>; + #else power-domains = <&ps_ans>, <&ps_apcie_sys_st>; + #endif power-domain-names = "ans", "apcie0"; resets = <&ps_ans>; }; diff --git a/arch/arm64/boot/dts/apple/t6031-base.dtsi b/arch/arm64/boot/dts/apple/t6031-base.dtsi index 4bf7ce8535caa1..61d584387f46a3 100644 --- a/arch/arm64/boot/dts/apple/t6031-base.dtsi +++ b/arch/arm64/boot/dts/apple/t6031-base.dtsi @@ -11,6 +11,12 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + #ifdef APPLE_USE_PMP + pmp = &pmp; + #endif + }; + cpus { #address-cells = <2>; #size-cells = <0>; diff --git a/arch/arm64/boot/dts/apple/t6031-die0.dtsi b/arch/arm64/boot/dts/apple/t6031-die0.dtsi index e0d1c50c23d2ea..5c35e3406d7684 100644 --- a/arch/arm64/boot/dts/apple/t6031-die0.dtsi +++ b/arch/arm64/boot/dts/apple/t6031-die0.dtsi @@ -30,7 +30,209 @@ <0x00000002 0x92440000 0x00000000 0x4000>; reg-names = "core", "event"; power-domains = <&ps_aic>; - }; + }; + + pmp_dart: iommu@290300000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x90300000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_pmp>; + }; + + pmp_report: pmp_report@2903c0000 { + compatible = "apple,t6031-pmp-v2-report","apple,t6020-pmp-v2-report"; + reg = <0x2 0x903c0000 0x0 0x30000>; + power-domains = <&ps_pms_sram>; + #address-cells = <1>; + #size-cells = <0>; + + pmp_report_ane_sys: report@e { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xe>; + label = "pmp-ane-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + pmp_report_isp_sys: report@f { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xf>; + label = "pmp-isp-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_isp_sys>; + status = "disabled"; + }; + + pmp_report_disp: report@10 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x10>; + label = "pmp-disp"; + #power-domain-cells = <0>; + power-domains = <&ps_disp_fe>; + apple,always-on; + }; + + pmp_report_dispext0: report@11 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x11>; + label = "pmp-dispext0"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext0_fe>; + status = "disabled"; + }; + + pmp_report_dispext1: report@12 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x12>; + label = "pmp-dispext1"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext1_fe>; + status = "disabled"; + }; + + pmp_report_dispext2: report@13 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x13>; + label = "pmp-dispext2"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext2_fe>; + status = "disabled"; + }; + + pmp_report_dispext3: report@14 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x14>; + label = "pmp-dispext3"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext3_fe>; + status = "disabled"; + }; + + pmp_report_venc0_sys: report@15 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x15>; + label = "pmp-venc0-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_venc0_sys>; + status = "disabled"; + }; + + pmp_report_venc1_sys: report@16 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x16>; + label = "pmp-venc1-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_venc1_sys>; + status = "disabled"; + }; + + pmp_report_avd_sys: report@17 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x17>; + label = "pmp-avd-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_avd_sys>; + status = "disabled"; + }; + + pmp_report_msr0: report@18 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x18>; + label = "pmp-msr0"; + #power-domain-cells = <0>; + power-domains = <&ps_msr0>; + status = "disabled"; + }; + + pmp_report_msr1: report@19 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x19>; + label = "pmp-msr1"; + #power-domain-cells = <0>; + power-domains = <&ps_msr1>; + status = "disabled"; + }; + + pmp_report_jpg: report@1a { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x1a>; + label = "pmp-jpg"; + #power-domain-cells = <0>; + power-domains = <&ps_jpg>; + status = "disabled"; + }; + + pmp_report_scodec: report@1b { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x1b>; + label = "pmp-scodec"; + #power-domain-cells = <0>; + power-domains = <&ps_scodec>; + status = "disabled"; + }; + + pmp_report_prores: report@1c { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x1c>; + label = "pmp-prores"; + #power-domain-cells = <0>; + power-domains = <&ps_prores>; + status = "disabled"; + }; + + pmp_report_ans: report@21 { + compatible = "apple,t6031-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x21>; + label = "pmp-ans"; + #power-domain-cells = <0>; + power-domains = <&ps_ans>; + }; + }; + + pmp: pmp@290700000 { + compatible = "apple,t6031-pmp-v2", "apple,t6000-pmp-v2"; + reg = <0x2 0x90700000 0x0 0x100000>, + <0x2 0x90c00000 0x0 0x4000>; + reg-names = "pmp", "asc"; + mboxes = <&pmp_mbox>; + mbox-names = "mbox"; + iommus = <&pmp_dart 0>; + power-domains = <&ps_pmp>; + status = "disabled"; + }; + + pmp_mbox: mbox@290c08000 { + compatible = "apple,t6031-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x2 0x90c08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_pmp>, <&ps_pms_sram>; + }; nub_spmi: spmi@2a1014000 { compatible = "apple,t6031-spmi", "apple,t8103-spmi"; diff --git a/arch/arm64/boot/dts/apple/t6031-nvme.dtsi b/arch/arm64/boot/dts/apple/t6031-nvme.dtsi index e69cf0e73a2a73..09933dd954be40 100644 --- a/arch/arm64/boot/dts/apple/t6031-nvme.dtsi +++ b/arch/arm64/boot/dts/apple/t6031-nvme.dtsi @@ -15,14 +15,22 @@ ; interrupt-names = "send-empty", "send-not-empty", "recv-empty", "recv-not-empty"; + #if defined(APPLE_USE_PMP) + power-domains = <&DIE_NODE(pmp_report_ans)>; + #else power-domains = <&DIE_NODE(ps_ans)>; + #endif #mbox-cells = <0>; }; DIE_NODE(sart): sart@34dc50000 { compatible = "apple,t6031-sart", "apple,t6000-sart"; reg = <0x3 0x4dc50000 0x0 0x10000>; + #if defined(APPLE_USE_PMP) + power-domains = <&DIE_NODE(pmp_report_ans)>; + #else power-domains = <&DIE_NODE(ps_ans)>; + #endif }; DIE_NODE(nvme): nvme@34dcc0000 { @@ -35,7 +43,11 @@ interrupts = ; mboxes = <&DIE_NODE(ans_mbox)>; apple,sart = <&DIE_NODE(sart)>; + #if defined(APPLE_USE_PMP) + power-domains = <&DIE_NODE(pmp_report_ans)>, + #else power-domains = <&DIE_NODE(ps_ans)>, + #endif <&DIE_NODE(ps_apcie_sys_st)>, <&DIE_NODE(ps_apcie_sys_st1)>; power-domain-names = "ans", "apcie0", "apcie1"; diff --git a/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi b/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi index 02e62cda7852b6..f22448e2f13aeb 100644 --- a/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi +++ b/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi @@ -1900,6 +1900,7 @@ #power-domain-cells = <0>; #reset-cells = <0>; label = DIE_LABEL(pmp); + apple,always-on; }; DIE_NODE(ps_pms_sram): power-controller@560 { @@ -1908,6 +1909,7 @@ #power-domain-cells = <0>; #reset-cells = <0>; label = DIE_LABEL(pms_sram); + apple,always-on; }; DIE_NODE(ps_atc0_cio_pcie): power-controller@598 { diff --git a/arch/arm64/boot/dts/apple/t6032.dtsi b/arch/arm64/boot/dts/apple/t6032.dtsi index dbbce59da2de41..979969c233f796 100644 --- a/arch/arm64/boot/dts/apple/t6032.dtsi +++ b/arch/arm64/boot/dts/apple/t6032.dtsi @@ -366,6 +366,8 @@ /delete-node/ &ps_disp_sys; /delete-node/ &ps_disp_sys_die1; +/delete-node/ &pmp_report_disp; + /* delete non-present ISP power-states */ /delete-node/ &ps_dprx; /delete-node/ &ps_dprx_die1; @@ -382,6 +384,22 @@ /delete-node/ &ps_isp_sys; /delete-node/ &ps_isp_sys_die1; +/delete-node/ &pmp_report_isp_sys; + +/* Disable ANS PMP reporting */ +/delete-node/ &pmp_report_ans; +&ans_mbox_die1 { + power-domains = <&ps_ans_die1>; +}; +&sart_die1 { + power-domains = <&ps_ans_die1>; +}; +&nvme_die1 { + power-domains = <&ps_ans_die1>, + <&ps_apcie_sys_st_die1>, + <&ps_apcie_sys_st1_die1>; +}; + &ps_afi_d2d_0 { status = "okay"; }; diff --git a/arch/arm64/boot/dts/apple/t8122.dtsi b/arch/arm64/boot/dts/apple/t8122.dtsi index c1c109bb0a8425..68d0186f381f15 100644 --- a/arch/arm64/boot/dts/apple/t8122.dtsi +++ b/arch/arm64/boot/dts/apple/t8122.dtsi @@ -20,6 +20,12 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + #ifdef APPLE_USE_PMP + pmp = &pmp; + #endif + }; + cpus { #address-cells = <2>; #size-cells = <0>; @@ -575,6 +581,133 @@ }; }; + pmp_dart: iommu@2d0300000 { + compatible = "apple,t8122-dart", "apple,t8110-dart"; + reg = <0x2 0xd0300000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_pmp>; + }; + + pmp_report: pmp_report@2d03c0000 { + compatible = "apple,t8122-pmp-v2-report"; + reg = <0x2 0xd03c0000 0x0 0x20000>; + power-domains = <&ps_pms_sram>; + #address-cells = <1>; + #size-cells = <0>; + + pmp_report_ane_sys: report@5 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x5>; + label = "pmp-ane-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + pmp_report_isp_sys: report@6 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x6>; + label = "pmp-isp-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_isp_sys>; + status = "disabled"; + }; + + pmp_report_disp: report@7 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x7>; + label = "pmp-disp"; + #power-domain-cells = <0>; + power-domains = <&ps_disp_cpu>; + apple,always-on; + }; + + pmp_report_dispext: report@8 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x8>; + label = "pmp-dispext"; + #power-domain-cells = <0>; + power-domains = <&ps_dispext_cpu>; + }; + + pmp_report_venc_sys: report@9 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x9>; + label = "pmp-venc-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_venc_sys>; + status = "disabled"; + }; + + pmp_report_avd_sys: report@a { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xa>; + label = "pmp-avd-sys"; + #power-domain-cells = <0>; + power-domains = <&ps_avd_sys>; + status = "disabled"; + }; + + pmp_report_msr: report@b { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xb>; + label = "pmp-msr"; + #power-domain-cells = <0>; + power-domains = <&ps_msr>; + status = "disabled"; + }; + + pmp_report_jpg: report@c { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xc>; + label = "pmp-jpg"; + #power-domain-cells = <0>; + power-domains = <&ps_jpg>; + status = "disabled"; + }; + + pmp_report_scodec: report@d { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0xd>; + label = "pmp-scodec"; + #power-domain-cells = <0>; + power-domains = <&ps_scodec>; + status = "disabled"; + }; + + pmp_report_ans: report@11 { + compatible = "apple,t8122-pmp-v2-report-entry", + "apple,t6000-pmp-v2-report-entry"; + reg = <0x11>; + label = "pmp-ans"; + #power-domain-cells = <0>; + power-domains = <&ps_ans>; + }; + }; + + pmp: pmp@2d0500000 { + compatible = "apple,t8122-pmp-v2", "apple,t6000-pmp-v2"; + reg = <0x2 0xd0500000 0x0 0x80000>, + <0x2 0xd0c00000 0x0 0x4000>; + reg-names = "pmp", "asc"; + mboxes = <&pmp_mbox>; + mbox-names = "mbox"; + iommus = <&pmp_dart 0>; + power-domains = <&ps_pmp>; + status = "disabled"; + }; + pmgr: power-management@2d0700000 { compatible = "apple,t8122-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; #address-cells = <1>; @@ -583,6 +716,20 @@ /* child nodes are added in t8122-pmgr.dtsi */ }; + pmp_mbox: mbox@2d0c08000 { + compatible = "apple,t8122-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x2 0xd0c08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_pmp>, <&ps_pms_sram>; + }; + pinctrl_ap: pinctrl@2c7100000 { compatible = "apple,t8122-pinctrl", "apple,t8103-pinctrl"; reg = <0x2 0xc7100000 0x0 0x100000>; @@ -917,13 +1064,21 @@ "recv-empty", "recv-not-empty"; #mbox-cells = <0>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>; + #else power-domains = <&ps_ans>; + #endif }; sart: sart@30dc50000 { compatible = "apple,t8122-sart", "apple,t6000-sart"; reg = <0x3 0x0dc50000 0x0 0x10000>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>; + #else power-domains = <&ps_ans>; + #endif }; nvme: nvme@30dcc0000 { @@ -938,7 +1093,11 @@ mboxes = <&ans_mbox>; apple,sart = <&sart>; + #if defined(APPLE_USE_PMP) + power-domains = <&pmp_report_ans>, <&ps_apcie_st>; + #else power-domains = <&ps_ans>, <&ps_apcie_st>; + #endif power-domain-names = "ans", "apcie0"; resets = <&ps_ans>; }; diff --git a/drivers/pmdomain/apple/pmp-report.c b/drivers/pmdomain/apple/pmp-report.c index 8050ade5ef8d08..fe3992c2e1390b 100644 --- a/drivers/pmdomain/apple/pmp-report.c +++ b/drivers/pmdomain/apple/pmp-report.c @@ -67,6 +67,13 @@ static const struct apple_pmp_report_offsets apple_pmp_offsets_t602x = { .status = 0x10, }; +static const struct apple_pmp_report_offsets apple_pmp_offsets_t6030 = { + .tgt_read = 0x1180, + .tgt_write = 0x108c0, + .actual = 0x11c0, + .status = 0x10, +}; + static const struct apple_pmp_report_offsets apple_pmp_offsets_t8112 = { .tgt_read = 0xa00, .tgt_write = 0x10500, @@ -74,10 +81,19 @@ static const struct apple_pmp_report_offsets apple_pmp_offsets_t8112 = { .status = 0x10, }; +static const struct apple_pmp_report_offsets apple_pmp_offsets_t8122 = { + .tgt_read = 0x1000, + .tgt_write = 0x10800, + .actual = 0x1080, + .status = 0x10, +}; + static const struct of_device_id apple_pmp_report_of_match[] = { { .compatible = "apple,t6000-pmp-v2-report", .data = &apple_pmp_offsets_t600x }, { .compatible = "apple,t6020-pmp-v2-report", .data = &apple_pmp_offsets_t602x }, + { .compatible = "apple,t6030-pmp-v2-report", .data = &apple_pmp_offsets_t6030 }, { .compatible = "apple,t8112-pmp-v2-report", .data = &apple_pmp_offsets_t8112 }, + { .compatible = "apple,t8122-pmp-v2-report", .data = &apple_pmp_offsets_t8122 }, {} };