Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Copyright (c) 2020 MediaTek Inc.
0004  * Copyright (c) 2020 BayLibre, SAS.
0005  * Author: Fabien Parent <fparent@baylibre.com>
0006  */
0007 
0008 #include <dt-bindings/clock/mt8167-clk.h>
0009 #include <dt-bindings/memory/mt8167-larb-port.h>
0010 #include <dt-bindings/power/mt8167-power.h>
0011 
0012 #include "mt8167-pinfunc.h"
0013 
0014 #include "mt8516.dtsi"
0015 
0016 / {
0017         compatible = "mediatek,mt8167";
0018 
0019         soc {
0020                 topckgen: topckgen@10000000 {
0021                         compatible = "mediatek,mt8167-topckgen", "syscon";
0022                         reg = <0 0x10000000 0 0x1000>;
0023                         #clock-cells = <1>;
0024                 };
0025 
0026                 infracfg: infracfg@10001000 {
0027                         compatible = "mediatek,mt8167-infracfg", "syscon";
0028                         reg = <0 0x10001000 0 0x1000>;
0029                         #clock-cells = <1>;
0030                 };
0031 
0032                 apmixedsys: apmixedsys@10018000 {
0033                         compatible = "mediatek,mt8167-apmixedsys", "syscon";
0034                         reg = <0 0x10018000 0 0x710>;
0035                         #clock-cells = <1>;
0036                 };
0037 
0038                 scpsys: syscon@10006000 {
0039                         compatible = "syscon", "simple-mfd";
0040                         reg = <0 0x10006000 0 0x1000>;
0041                         #power-domain-cells = <1>;
0042 
0043                         spm: power-controller {
0044                                 compatible = "mediatek,mt8167-power-controller";
0045                                 #address-cells = <1>;
0046                                 #size-cells = <0>;
0047                                 #power-domain-cells = <1>;
0048 
0049                                 /* power domains of the SoC */
0050                                 power-domain@MT8167_POWER_DOMAIN_MM {
0051                                         reg = <MT8167_POWER_DOMAIN_MM>;
0052                                         clocks = <&topckgen CLK_TOP_SMI_MM>;
0053                                         clock-names = "mm";
0054                                         #power-domain-cells = <0>;
0055                                         mediatek,infracfg = <&infracfg>;
0056                                 };
0057 
0058                                 power-domain@MT8167_POWER_DOMAIN_VDEC {
0059                                         reg = <MT8167_POWER_DOMAIN_VDEC>;
0060                                         clocks = <&topckgen CLK_TOP_SMI_MM>,
0061                                                  <&topckgen CLK_TOP_RG_VDEC>;
0062                                         clock-names = "mm", "vdec";
0063                                         #power-domain-cells = <0>;
0064                                 };
0065 
0066                                 power-domain@MT8167_POWER_DOMAIN_ISP {
0067                                         reg = <MT8167_POWER_DOMAIN_ISP>;
0068                                         clocks = <&topckgen CLK_TOP_SMI_MM>;
0069                                         clock-names = "mm";
0070                                         #power-domain-cells = <0>;
0071                                 };
0072 
0073                                 power-domain@MT8167_POWER_DOMAIN_MFG_ASYNC {
0074                                         reg = <MT8167_POWER_DOMAIN_MFG_ASYNC>;
0075                                         clocks = <&topckgen CLK_TOP_RG_AXI_MFG>,
0076                                                  <&topckgen CLK_TOP_RG_SLOW_MFG>;
0077                                         clock-names = "axi_mfg", "mfg";
0078                                         #address-cells = <1>;
0079                                         #size-cells = <0>;
0080                                         #power-domain-cells = <1>;
0081                                         mediatek,infracfg = <&infracfg>;
0082 
0083                                         power-domain@MT8167_POWER_DOMAIN_MFG_2D {
0084                                                 reg = <MT8167_POWER_DOMAIN_MFG_2D>;
0085                                                 #address-cells = <1>;
0086                                                 #size-cells = <0>;
0087                                                 #power-domain-cells = <1>;
0088 
0089                                                 power-domain@MT8167_POWER_DOMAIN_MFG {
0090                                                         reg = <MT8167_POWER_DOMAIN_MFG>;
0091                                                         #power-domain-cells = <0>;
0092                                                         mediatek,infracfg = <&infracfg>;
0093                                                 };
0094                                         };
0095                                 };
0096 
0097                                 power-domain@MT8167_POWER_DOMAIN_CONN {
0098                                         reg = <MT8167_POWER_DOMAIN_CONN>;
0099                                         #power-domain-cells = <0>;
0100                                         mediatek,infracfg = <&infracfg>;
0101                                 };
0102                         };
0103                 };
0104 
0105                 imgsys: syscon@15000000 {
0106                         compatible = "mediatek,mt8167-imgsys", "syscon";
0107                         reg = <0 0x15000000 0 0x1000>;
0108                         #clock-cells = <1>;
0109                 };
0110 
0111                 vdecsys: syscon@16000000 {
0112                         compatible = "mediatek,mt8167-vdecsys", "syscon";
0113                         reg = <0 0x16000000 0 0x1000>;
0114                         #clock-cells = <1>;
0115                 };
0116 
0117                 pio: pinctrl@1000b000 {
0118                         compatible = "mediatek,mt8167-pinctrl";
0119                         reg = <0 0x1000b000 0 0x1000>;
0120                         mediatek,pctl-regmap = <&syscfg_pctl>;
0121                         pins-are-numbered;
0122                         gpio-controller;
0123                         #gpio-cells = <2>;
0124                         interrupt-controller;
0125                         #interrupt-cells = <2>;
0126                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
0127                 };
0128 
0129                 mmsys: mmsys@14000000 {
0130                         compatible = "mediatek,mt8167-mmsys", "syscon";
0131                         reg = <0 0x14000000 0 0x1000>;
0132                         #clock-cells = <1>;
0133                 };
0134 
0135                 smi_common: smi@14017000 {
0136                         compatible = "mediatek,mt8167-smi-common";
0137                         reg = <0 0x14017000 0 0x1000>;
0138                         clocks = <&mmsys CLK_MM_SMI_COMMON>,
0139                                  <&mmsys CLK_MM_SMI_COMMON>;
0140                         clock-names = "apb", "smi";
0141                         power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
0142                 };
0143 
0144                 larb0: larb@14016000 {
0145                         compatible = "mediatek,mt8167-smi-larb";
0146                         reg = <0 0x14016000 0 0x1000>;
0147                         mediatek,smi = <&smi_common>;
0148                         clocks = <&mmsys CLK_MM_SMI_LARB0>,
0149                                  <&mmsys CLK_MM_SMI_LARB0>;
0150                         clock-names = "apb", "smi";
0151                         power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
0152                 };
0153 
0154                 larb1: larb@15001000 {
0155                         compatible = "mediatek,mt8167-smi-larb";
0156                         reg = <0 0x15001000 0 0x1000>;
0157                         mediatek,smi = <&smi_common>;
0158                         clocks = <&imgsys CLK_IMG_LARB1_SMI>,
0159                                  <&imgsys CLK_IMG_LARB1_SMI>;
0160                         clock-names = "apb", "smi";
0161                         power-domains = <&spm MT8167_POWER_DOMAIN_ISP>;
0162                 };
0163 
0164                 larb2: larb@16010000 {
0165                         compatible = "mediatek,mt8167-smi-larb";
0166                         reg = <0 0x16010000 0 0x1000>;
0167                         mediatek,smi = <&smi_common>;
0168                         clocks = <&vdecsys CLK_VDEC_CKEN>,
0169                                  <&vdecsys CLK_VDEC_LARB1_CKEN>;
0170                         clock-names = "apb", "smi";
0171                         power-domains = <&spm MT8167_POWER_DOMAIN_VDEC>;
0172                 };
0173 
0174                 iommu: m4u@10203000 {
0175                         compatible = "mediatek,mt8167-m4u";
0176                         reg = <0 0x10203000 0 0x1000>;
0177                         mediatek,larbs = <&larb0>, <&larb1>, <&larb2>;
0178                         interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>;
0179                         #iommu-cells = <1>;
0180                 };
0181         };
0182 };