asoc: abox: check abox power domain status before resuming
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / arch / arm64 / boot / dts / exynos / exynos9610.dtsi
index f1709913a9c73701d667b81e8900411a7799d87e..000a2b074f441d37d03607ed1f9907b9654a020c 100644 (file)
        };
 
        chosen {
-               bootargs = "console=ram androidboot.dtbo_idx=0 skip_initramfs rootwait ro init=/init clk_ignore_unused bcm_setup=0xffffff80f8e00000 androidboot.hardware=exynos9610 androidboot.selinux=permissive androidboot.debug_level=0x4948 firmware_class.path=/vendor/firmware ecd_setup=disable reserve-fimc=0xffffff80f9fe0000 pmic_info=0x3 ccic_info=0x1 epx_activate=true";
+               bootargs = "swiotlb=512 console=ram rootwait ro init=/init clk_ignore_unused bcm_setup=0xffffff80f8e00000 androidboot.hardware=exynos9610 androidboot.debug_level=0x4948 firmware_class.path=/vendor/firmware ecd_setup=disable reserve-fimc=0xffffff80f9fe0000 pmic_info=0x3 ccic_info=0x1 epx_activate=true";
                linux,initrd-start = <0x84000000>;
                linux,initrd-end = <0x841FFFFF>;
        };
                cp_call_psci_idx = <1024>;      /* PSCI_SYSTEM_SLEEP */
                usbl2_suspend_available = <1>;
                usbl2_suspend_mode_idx = <12>;  /* SYS_SLEEP_USB_ON */
-               extra_wakeup_stat = <0x60c>;
                conn_req_offset = <0x00c0>;     /* PMU_ALIVE__CONNECT_SLEEP_STATUS */
+               pmu_cp_stat_offset = <0x38>;    /* PMU_ALIVE__CP_STAT */
+               pmu_gnss_stat_offset = <0x48>;  /* PMU_ALIVE__GNSS_STAT */
+               pmu_wlbt_stat_offset = <0x58>;  /* PMU_ALIVE__WLBT_STAT */
+               stat_access_mif_offset = <4>;   /* PMU_ALIVE__*_STAT__ACCESS_MIF */
+                          /* WAKEUP_STAT       WAKEUP_STAT4 */
+               wakeup_stat = <0x600>,          <0x60c>;
+
+               wakeup_stats {
+                       wakeup_stat {
+                               ws-name =
+                                       "EINT",                 /* [ 0] */
+                                       "RTC_ALARM",            /* [ 1] */
+                                       "RTC_TICK",             /* [ 2] */
+                                       "TRTC_ALARM",           /* [ 3] */
+                                       "TRTC_TICK",            /* [ 4] */
+                                       "WLBT_RESET_REQ",       /* [ 5] */
+                                       "WLBT_ACTIVE",          /* [ 6] */
+                                       "RESERVED",             /* [ 7] */
+                                       "RESERVED",             /* [ 8] */
+                                       "MMC0",                 /* [ 9] */
+                                       "RESERVED",             /* [10] */
+                                       "MMC2",                 /* [11] */
+                                       "CMGP_EINT",            /* [12] */
+                                       "USB_REWA",             /* [13] */
+                                       "TIMER",                /* [14] */
+                                       "CP_SCAN_DUMP_REQ",     /* [15] */
+                                       "USBDRD20",             /* [16] */
+                                       "INT_MBOX_WLBT2AP",     /* [17] */
+                                       "INT_MBOX_SHUB2AP",     /* [18] */
+                                       "INT_MBOX_APM2AP",      /* [19] */
+                                       "CP_RESET_REQ",         /* [20] */
+                                       "GNSS_WAKEUP_REQ",      /* [21] */
+                                       "GNSS_RESET_REQ",       /* [22] */
+                                       "GNSS_ACTIVE",          /* [23] */
+                                       "INT_MBOX_CP2AP",       /* [24] */
+                                       "CP_ACTIVE",            /* [25] */
+                                       "INT_MBOX_GNSS2AP",     /* [26] */
+                                       "APM_CPU",              /* [27] */
+                                       "RESERVED",             /* [28] */
+                                       "INT_MBOX_CP2AP_S",     /* [29] */
+                                       "RESERVED",             /* [30] */
+                                       "RESERVED";             /* [31] */
+                       };
+                       wakeup_stat4 {
+                               ws-name =
+                                       "RESERVED",             /* [ 0] */
+                                       "INT_SHUB_WDT",         /* [ 1] */
+                                       "SPEEDY2_DDI",          /* [ 2] */
+                                       "UART_BT_CTS",          /* [ 3] */
+                                       "UART_BT_RXD";          /* [ 4] */
+                       };
+               };
        };
 
        exynos-powermode {
                        wakeup-mask {
                                mask = <0x40000000>, <0x0>,        <0x0>,        <0x0>,
                                       <0x0>,        <0x0>,        <0x0>,        <0x0>,
-                                      <0xD00D7E7E>, <0x500D7E7E>, <0x500D7E7E>, <0x0>,
-                                      <0xD00D7E7E>;
+                                      <0xD0097E7E>, <0x50097E7E>, <0x50097E7E>, <0x0>,
+                                      <0xD0097E7E>;
                                mask-offset = <0x610>;
                                stat-offset = <0x600>;
                        };
                                <0 170 0>, <0 171 0>, <0 172 0>,
                                <0 173 0>, <0 174 0>, <0 185 0>, <0 196 0>,
                                <0 197 0>, <0 226 0>, <0 227 0>, <0 228 0>,
-                               <0 269 0>, <0 270 0>, <0 272 0>, <0 278 0>,
+                               <0 270 0>, <0 272 0>, <0 278 0>,
                                <0 318 0>, <0 319 0>;
 
+               WB2AP_FEMCTRL_WLBT_00: WB2AP_FEMCTRL_WLBT_00 {
+                              samsung,pins = "gpm16-0";
+                              samsung,pin-function = <0x6>;
+                              samsung,pin-pud = <1>;
+                              samsung,pin-drv = <3>;
+                      };
+               WB2AP_FEMCTRL_WLBT_01: WB2AP_FEMCTRL_WLBT_01 {
+                                      samsung,pins = "gpm17-0";
+                                      samsung,pin-function = <0x6>;
+                                      samsung,pin-pud = <1>;
+                                      samsung,pin-drv = <3>;
+                      };
+
                wakeup-interrupt-controller {
                        compatible = "samsung,exynos7-wakeup-eint";
                };
                pinctrl-names = "default";
                pinctrl-0 = <&uart0_bus>; /* or _bus_dual */
                samsung,usi-serial-v2;
+               samsung,dbg-uart-ch;
+               samsung,dbg-uart-baud = <115200>;
+               samsung,dbg-word-len = <8>;
                clocks = <&clock GATE_UART_QCH>, <&clock UART>;
                clock-names = "gate_uart_clk0", "ipclk_uart0";
                status = "disabled";
                        /* Delay time */
                        use_delay_time = "false";
 
-                       freq_info = <667000 100000 667000 100000 667000 100000>;
+                       freq_info = <667000 100000 100000 100000 667000 100000>;
                        /* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
 
                        /* Booting value */
                        /* Delay time */
                        use_delay_time = "false";
 
-                       freq_info = <690000 650000 690000 650000 690000 650000>;
+                       freq_info = <690000 650000 650000 650000 690000 650000>;
                        /* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
 
                        /* Booting value */
-                       boot_info = <40 640000>;
+                       boot_info = <40 650000>;
                        /* boot_qos_timeout, boot_freq */
 
                        /* governor data */
                        /* Delay time */
                        use_delay_time = "false";
 
-                       freq_info = <533000 167000 533000 167000 533000 533000>;
+                       freq_info = <533000 167000 167000 167000 533000 533000>;
                        /* <initial_freq, default_qos, suspend_freq, min, max, reboot_freq> */
 
                        /* Booting value */
                        /* Delay time */
                        use_delay_time = "false";
 
-                       freq_info = <690000 640000 690000 640000 700000 640000>;
+                       freq_info = <690000 640000 640000 640000 700000 640000>;
                        /* <initial, default_qos, suspend_freq, min, max, reboot_freq> */
 
                        /* Booting value */
                        "UFS_EMBD";
 
                /* PM QoS for INT power domain */
-/*             ufs-pm-qos-int = <400000>;*/
+               ufs-pm-qos-int = <533000>;
 
                /* DMA coherent callback, should be coupled with 'ufs-sys' */
                dma-coherent;
 
                vcc-supply = <&ufs_fixed_vcc>;
                vcc-fixed-regulator;
-
+               ufs-power-gpio = <&gpg4 0 0>;
+               ufs-reset-n-gpio = <&gpf0 1 0>;
 
                /* ----------------------- */
                /* 3. UFS EXYNOS           */
                };
        };
 
-       watchdog_cl0@10050000 {
+       watchdog_cl0@10050000 { //WDT_CPUCL0
                compatible = "samsung,exynos7-wdt";
                reg = <0x0 0x10050000 0x100>;
                interrupts = <0 232 0>;
                index = <0>; /* if little cluster then index is 0*/
        };
 
+       watchdog_cl1@10060000 { //WDT_CPUCL1
+               compatible = "samsung,exynos8-wdt";
+               reg = <0x0 0x10060000 0x100>;
+               interrupts = <0 233 0>;
+               clocks = <&clock OSCCLK>, <&clock GATE_WDT_CLUSTER1_QCH>;
+               clock-names = "rate_watchdog", "gate_watchdog";
+               timeout-sec = <30>;
+               samsung,syscon-phandle = <&pmu_system_controller>;
+               index = <1>; /* if little cluster then index is 0*/
+               use_multistage_wdt;
+       };
+
        exynos_adc: adc@11C30000 {
                compatible = "samsung,exynos-adc-v3";
                reg = <0x0 0x11C30000 0x100>;
                iommus = <&sysmmu_abox>;
                pm_qos_int = <0 0 0 0 0>;
                pm_qos_aud = <1180000 800000 590000 394000 0>;
+               pd_name = "pd-dispaud";
 
                abox_rdma_0: abox_rdma@0x14A51000 {
                        compatible = "samsung,abox-rdma";
                        compatible = "samsung,abox-rdma";
                        reg = <0x0 0x14A51700 0x100>;
                        id = <7>;
-                       type = "realtime";
+                       type = "normal";
                };
 
                abox_wdma_0: abox_wdma@0x14A52000 {
                        samsung,offset = <0x7F0000>;
                };
                ext_bin_2: ext_bin@2 {
-                       status = "disabled";
-                       samsung,name = "APBargeIn_AUDIO_SLSI.bin";
+                       status = "okay";
+                       samsung,name = "audio_se.bin";
                        samsung,area = <1>;
-                       samsung,offset = <0x7EC000>;
+                       samsung,offset = <0x602000>;
                };
                ext_bin_3: ext_bin@3 {
                        status = "disabled";
                /* ranges; */
                #dma-address-cells = <1>;
                #dma-size-cells = <1>;
-               dma-window = <0x30000000 0xB0000000>;
+               dma-window = <0x40000000 0xA0000000>;
 
                domain-clients = <&vipx>, <&vipx_vertex>;
        };
                smfc,int_qos_minlock = <534000>;
        };
 
-       /* G3D */
-       mali: mali@11500000 {
-               compatible = "arm,mali";
-               reg = <0x0 0x11500000 0x5000>;
-               interrupts = <0 66 0>, <0 67 0>, <0 65 0>;
-               interrupt-names = "JOB", "MMU", "GPU";
-               g3d_cmu_cal_id = <ACPM_DVFS_G3D>;
-               samsung,power-domain = <&pd_g3d>;
-               #cooling-cells = <2>; /* min followed by max */
-       };
+       /* mali */
+    mali: mali@11500000 {
+        compatible = "arm,mali";
+        reg = <0x0 0x11500000 0x5000>;
+        interrupts = <0 66 0>,
+                     <0 67 0>,
+                     <0 65 0>;
+        interrupt-names = "JOB", "MMU", "GPU";
+        g3d_cmu_cal_id = <ACPM_DVFS_G3D>;
+        samsung,power-domain = <&pd_g3d>;
+               g3d_genpd_name = "pd-g3d"; /*KC, RM: pd-g3d, LT,MK: pd-embedded_g3d*/
+        #cooling-cells = <2>; /* min followed by max */
+               governor = "interactive";
+               interactive_info = <764000 75 0>;
+               gpu_dvfs_table_size = <10 7>; /*<row col>*/
+               /*  8 columns      freq  down   up  stay  mif    little  middle   big  */
+               gpu_dvfs_table = <  1053000    95  100   1  2093000 1638000       0
+                                    949000    56   90   1  2093000 1638000       0
+                                    839000    58   90   1  2093000 1638000       0
+                                    764000    58   90   5  1794000 1534000       0
+                                    683000    53   70   4  1539000 1456000       0
+                                    572000    50   70   1  1539000 1456000       0
+                                    455000    54   70   1   676000  702000       0
+                                    385000    56   70   1   546000  598000       0
+                                    338000    48   70   1   419000  403000       0
+                                    260000    48   70   1   419000  403000       0 >;
+               gpu_sustainable_info = <0 0 0 0 0>;
+               gpu_pmqos_cpu_cluster_num = <2>;
+               gpu_pmu_status_reg_offset = <0x4064>;
+               gpu_pmu_status_local_pwr_mask = <0xF>; /*0x1 << 0*/
+               gpu_max_clock = <1053000>;
+               gpu_max_clock_limit = <1053000>;
+               gpu_min_clock = <260000>;
+               gpu_dvfs_start_clock = <260000>;
+               gpu_dvfs_bl_config_clock = <260000>;
+               gpu_default_voltage = <800000>;
+               gpu_cold_minimum_vol = <0>;
+               gpu_voltage_offset_margin = <37500>;
+               gpu_tmu_control = <1>;
+               gpu_temp_throttling_level_num = <6>;
+               gpu_temp_throttling = <764000 572000 455000 338000 260000 260000>;
+               gpu_power_coeff = <625>;
+               gpu_dvfs_time_interval = <5>; /*1 tick : 10ms*/
+               gpu_default_wakeup_lock = <1>;
+               gpu_bus_devfreq = <0>;
+               gpu_dynamic_abb = <0>;
+               gpu_early_clk_gating = <0>;
+               gpu_dvs = <0>;
+               gpu_inter_frame_pm = <0>;
+               gpu_perf_gathering = <0>;
+               gpu_runtime_pm_delay_time = <50>;
+               gpu_dvfs_polling_time = <10>;
+               gpu_pmqos_int_disable = <1>;
+               gpu_pmqos_mif_max_clock = <2093000>;
+               gpu_pmqos_mif_max_clock_base = <572000>;
+               gpu_cl_dvfs_start_base = <572000>;
+               gpu_debug_level = <3>; /*DEBUG(1) INFO(2) WARNING(3) ERROR(4)*/
+               gpu_trace_level = <8>; /*TRACE_ALL*/
+               gpu_bts_support = <1>;
+               gpu_mo_min_clock = <764000>;
+               gpu_boost_gpu_min_lock = <0>;
+               gpu_boost_egl_min_lock = <1248000>;
+               gpu_vk_boost_max_lock = <2000>; /* to activate vk boost, should set proper clock*/
+               gpu_vk_boost_mif_min_lock = <0>;
+               gpu_asv_cali_lock_val = <0>; /*Should check this value when MALI_ASV_CALIBRATION_SUPPORT is enabled*/
+               gpu_set_pmu_duration_reg = <0>; /* only for KC for now*/
+               gpu_set_pmu_duration_val = <0>; /* only for KC for now*/
+        };
 
        reboot {
                compatible = "exynos,reboot";
                /* BAAW-P-APM-SHUB */
                baaw,baaw-p-apm-chub = <0x40300 0x40800 0x11900>;
                /* none, pass, os.checked.bin, Exynos9610.bin */
-               os-type = "os.checked.bin";
                reset-mode = "block";
        };
 
 
        boot_cfg: syscon@14C60000 {
                compatible = "boot_cfg", "syscon";
-               reg = <0x0 0x14C60000 0x1100>;
+               reg = <0x0 0x14C60000 0x1200>;
        };
 
        /* MAILBOX_AP2WLBT */
        scsc_wifibt: scsc_wifibt@119c0000 {
                compatible = "samsung,scsc_wifibt";
+               
+               pinctrl-names = "default";
+               pinctrl-0=<&WB2AP_FEMCTRL_WLBT_00 &WB2AP_FEMCTRL_WLBT_01>;
+
                /* Mailbox Registers */
                reg = <0x0 0x119c0000 0x180>;
                /* 10.3.2 External GIC IRQ table */
                /* MIF / INT / CL0 / CL1 */
                /* this qos_table should be per-platform. Leave it here until we have multiple platfrom support */
                qos_table = <
-                        419000 100000 403000  728000  /* SCSC_QOS_MIN */
+                        419000 100000 403000  936000  /* SCSC_QOS_MIN */
                        1014000 533000 910000  1664000 /* SCSC_QOS_MED */
-                       2093000 667000 1534000 2392000 /* SCSC_QOS_MAX */
+                       2093000 667000 1742000 2314000 /* SCSC_QOS_MAX */
                            >;
                /* SMAPPER */
                smapper_num_banks = <11>;
                compatible = "samsung,exynos9610-fm";
                reg = <0x0 0x14AC0000 0x2000>,
                        <0x0 0x14800800 0x10>;
-               elna_gpio = <&gpg1 0 0x1>; /* FM_LNA_EN */
-               pinctrl-names = "default";
-               pinctrl-0 = <&fm_lna_en>;
                clocks = <&clock MUX_AUD_FM>,
                        <&clock GATE_ABOX_QCH_FM>,
                        <&clock DOUT_CLK_AUD_FM>;  /* mux_aud_fm, qch_fm, clk_aud_fm */
                clock-names = "mux_aud_fm", "qch_fm", "clk_aud_fm";
                samsung,syscon-phandle = <&pmu_system_controller>;
                samsung,power-domain = <&pd_dispaud>;
+               without_elna = <1>;
                status = "ok";
        };