diff options
author | Georgi Djakov <georgi.djakov@linaro.org> | 2015-02-06 12:55:47 +0200 |
---|---|---|
committer | Georgi Djakov <georgi.djakov@linaro.org> | 2015-02-19 10:50:54 +0200 |
commit | 4d298831abf3c8264458dcae89296c25a7aaa820 (patch) | |
tree | bd7aab032e08d620cffb8bd79e9a1366708ae9bd | |
parent | 1f9fc0ead9fef663407dfaf71318c9bdadcd4796 (diff) |
ARM: dts: Add snapshot of MSM DT files
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
100 files changed, 29204 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index e0350caf049..8517f15870b 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -5,5 +5,6 @@ dts-dirs += cavium dts-dirs += exynos dts-dirs += freescale dts-dirs += mediatek +dts-dirs += qcom subdir-y := $(dts-dirs) diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile new file mode 100644 index 00000000000..fdc676339d3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -0,0 +1,20 @@ +dtb-$(CONFIG_ARCH_MSM8916) += msm8916-cdp.dtb \ + msm8916-cdp-smb1360.dtb \ + msm8916-mtp.dtb \ + msm8916-512mb-mtp.dtb \ + msm8916-mtp-smb1360.dtb \ + msm8916-512mb-mtp-smb1360.dtb \ + msm8916-512mb-qrd-skui.dtb \ + msm8916-qrd-skuh.dtb \ + msm8916-qrd-skuhf.dtb \ + msm8916-qrd-skui.dtb \ + msm8916-512mb-qrd-skuh.dtb \ + +dtb-$(CONFIG_ARCH_MSM8994) += msm8994-cdp.dtb \ + msm8994-mtp.dtb \ + msm8994-liquid.dtb \ + apq8094-mtp.dtb + +always := $(dtb-y) +subdir-y := $(dts-dirs) +clean-files := *.dtb diff --git a/arch/arm64/boot/dts/qcom/apq8094-mtp.dts b/arch/arm64/boot/dts/qcom/apq8094-mtp.dts new file mode 100644 index 00000000000..95120da7ee3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8094-mtp.dts @@ -0,0 +1,20 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "apq8094.dtsi" +#include "msm8994-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8094 MTP"; + compatible = "qcom,apq8094-mtp", "qcom,apq8094", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8094.dtsi b/arch/arm64/boot/dts/qcom/apq8094.dtsi new file mode 100644 index 00000000000..d228814d8f5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8094.dtsi @@ -0,0 +1,23 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8994.dtsi" +#include "msm8994-pinctrl.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8094"; + compatible = "qcom,apq8094"; + qcom,msm-id = <253 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi new file mode 100644 index 00000000000..a01a2f0dd91 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi @@ -0,0 +1,142 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,mtp-3000mah { + qcom,fcc-mah = <3000>; + qcom,default-rbatt-mohm = <113>; + qcom,max-voltage-uv = <4200000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <200000>; + qcom,batt-id-kohm = <300>; + qcom,battery-type = "mtp_3000mah"; + qcom,fg-profile-data = [ + 07 88 73 7E + 31 82 CB 7C + 6D 83 E6 76 + 74 89 E1 8E + F3 81 7A 93 + 72 AE 1A B3 + 67 1B 07 88 + 03 7E DB 81 + 7B 7C 6F 83 + D7 75 DE 89 + 4C 94 34 82 + 0F 99 41 B7 + F7 C2 60 14 + 07 0B 2C 5B + 28 6E 5C FF + 9A 3E 49 4E + 78 49 18 28 + 82 46 19 34 + C5 4F 18 28 + 66 72 66 62 + 66 72 66 62 + 2D 6B 8F 69 + 2F 88 65 91 + F5 6E 0C 48 + 51 75 67 83 + DF 6D 01 3E + 66 4E 00 82 + 0A 32 58 8A + 5C A0 71 0C + 28 00 FF 37 + F0 51 30 03 + 01 00 00 00]; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <3030 3033 3037 3035 3031>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4191 4188 4183 4179 4174>, + <4106 4125 4127 4125 4121>, + <4046 4082 4082 4080 4077>, + <3966 4038 4044 4040 4035>, + <3922 3983 3994 3998 3997>, + <3886 3949 3966 3966 3962>, + <3856 3908 3937 3935 3931>, + <3832 3875 3908 3907 3903>, + <3814 3847 3874 3878 3875>, + <3799 3826 3831 3832 3830>, + <3787 3807 3811 3811 3809>, + <3775 3793 3795 3795 3793>, + <3764 3782 3783 3783 3781>, + <3752 3775 3773 3772 3769>, + <3739 3768 3766 3762 3755>, + <3725 3756 3756 3747 3733>, + <3710 3732 3734 3725 3711>, + <3696 3707 3705 3697 3684>, + <3681 3695 3686 3678 3667>, + <3667 3690 3684 3676 3665>, + <3658 3688 3683 3675 3664>, + <3646 3685 3681 3674 3663>, + <3631 3682 3679 3673 3660>, + <3612 3677 3676 3669 3655>, + <3589 3667 3666 3660 3639>, + <3560 3643 3636 3630 3599>, + <3523 3600 3586 3581 3546>, + <3474 3537 3518 3516 3477>, + <3394 3446 3425 3427 3379>, + <3257 3306 3273 3283 3213>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>; + qcom,lut-data = <1025 208 100 85 80>, + <1025 208 100 85 80>, + <1032 225 103 87 81>, + <959 249 107 91 82>, + <954 249 109 92 84>, + <953 255 117 94 84>, + <957 230 123 98 87>, + <968 216 134 102 91>, + <983 212 138 112 95>, + <1002 213 103 89 82>, + <1030 215 100 86 81>, + <1066 219 101 89 83>, + <1115 224 104 92 85>, + <1182 234 106 94 86>, + <1263 246 108 92 84>, + <1357 257 107 87 81>, + <1464 261 102 85 80>, + <1564 256 101 84 80>, + <1637 268 100 84 80>, + <1580 276 102 87 81>, + <1617 285 104 87 82>, + <1670 298 107 91 82>, + <1725 315 108 92 83>, + <1785 338 112 92 83>, + <1850 361 111 91 82>, + <1921 378 108 89 84>, + <2000 394 112 92 87>, + <2119 430 121 99 94>, + <2795 497 144 114 104>, + <8769 1035 672 322 234>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi b/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi new file mode 100644 index 00000000000..4730fc83b01 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi @@ -0,0 +1,121 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,palladium-batterydata { + qcom,fcc-mah = <1500>; + qcom,default-rbatt-mohm = <210>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <75>; + qcom,battery-type = "palladium_1500mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1467 1470 1473 1473 1470>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4175 4173 4167 4162 4157>, + <4097 4111 4112 4110 4107>, + <4039 4075 4072 4068 4064>, + <3963 4017 4025 4026 4025>, + <3920 3969 3984 3989 3988>, + <3887 3932 3957 3958 3955>, + <3856 3898 3929 3928 3925>, + <3830 3868 3900 3901 3898>, + <3808 3843 3858 3863 3862>, + <3793 3821 3827 3827 3827>, + <3779 3803 3807 3808 3807>, + <3768 3788 3792 3793 3792>, + <3757 3779 3780 3780 3779>, + <3746 3771 3772 3768 3768>, + <3734 3762 3765 3759 3749>, + <3722 3747 3753 3744 3730>, + <3707 3721 3731 3722 3709>, + <3693 3705 3704 3696 3683>, + <3678 3698 3687 3678 3667>, + <3664 3693 3683 3676 3665>, + <3656 3690 3682 3675 3664>, + <3646 3687 3681 3674 3662>, + <3634 3683 3680 3672 3661>, + <3618 3677 3676 3668 3656>, + <3599 3667 3667 3655 3639>, + <3573 3645 3638 3623 3603>, + <3541 3607 3591 3575 3554>, + <3496 3550 3528 3511 3490>, + <3428 3469 3445 3423 3400>, + <3312 3342 3308 3280 3250>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <909 216 100 85 84>, + <859 238 106 88 86>, + <860 237 105 88 86>, + <808 239 107 90 88>, + <801 234 111 94 90>, + <801 230 118 97 92>, + <801 224 123 100 95>, + <807 221 128 106 99>, + <818 221 111 101 97>, + <841 225 101 88 87>, + <870 229 101 88 87>, + <906 235 103 91 90>, + <950 243 106 93 93>, + <998 253 110 93 96>, + <1051 263 113 94 90>, + <1116 272 113 91 88>, + <1200 275 111 91 88>, + <1312 298 108 90 87>, + <1430 329 104 88 87>, + <1484 351 107 91 89>, + <1446 345 110 93 90>, + <1398 344 112 94 90>, + <1466 358 115 96 91>, + <1490 357 117 96 90>, + <1589 365 117 94 89>, + <1828 379 111 91 88>, + <2151 399 111 93 91>, + <2621 436 117 98 95>, + <3404 496 130 106 100>, + <8212 616 150 1906 134>, + <135251 124940 59087 49820 29672>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <1470 1470 1473>, + <1406 1406 1430>, + <1247 1247 1414>, + <764 764 1338>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi new file mode 100644 index 00000000000..9be634b713b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi @@ -0,0 +1,115 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,qrd-skuh-4v35-2000mah-data { + qcom,default-rbatt-mohm = <188>; + qcom,max-voltage-uv = <4350000>; + qcom,fcc-mah = <2000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <110>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "qrd_skuh_4v35_2000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1985 2000 2008 1983 1968>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4328 4324 4319 4314 4307>, + <4226 4246 4249 4249 4245>, + <4156 4187 4193 4194 4191>, + <4095 4133 4140 4143 4140>, + <4037 4080 4089 4093 4091>, + <3985 4028 4041 4046 4044>, + <3936 3976 3997 4002 4002>, + <3895 3932 3952 3960 3960>, + <3856 3893 3906 3913 3914>, + <3822 3861 3869 3875 3876>, + <3793 3831 3841 3847 3848>, + <3768 3808 3819 3824 3824>, + <3747 3787 3799 3805 3805>, + <3727 3772 3783 3788 3787>, + <3709 3759 3766 3765 3757>, + <3693 3744 3746 3740 3730>, + <3674 3724 3727 3720 3708>, + <3651 3691 3700 3692 3680>, + <3610 3659 3673 3672 3660>, + <3601 3654 3670 3668 3657>, + <3589 3648 3664 3663 3651>, + <3572 3638 3654 3650 3635>, + <3549 3619 3631 3623 3605>, + <3520 3585 3592 3582 3564>, + <3482 3537 3540 3531 3512>, + <3429 3473 3473 3464 3445>, + <3355 3388 3381 3373 3353>, + <3239 3259 3231 3235 3216>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <1002 268 100 87 81>, + <999 271 100 88 82>, + <999 271 102 88 82>, + <988 274 106 91 84>, + <975 275 110 94 85>, + <967 271 115 97 86>, + <969 261 121 101 89>, + <974 256 120 105 91>, + <978 254 107 96 86>, + <988 257 101 89 83>, + <1017 260 102 89 82>, + <1046 267 105 92 83>, + <1085 275 108 94 85>, + <1128 286 112 97 87>, + <1187 298 112 94 84>, + <1268 310 108 90 83>, + <1359 322 109 92 83>, + <1505 328 110 91 82>, + <1785 371 111 94 84>, + <1651 331 112 94 84>, + <1305 342 113 93 84>, + <1366 351 114 93 83>, + <1450 364 113 92 82>, + <1582 373 112 92 84>, + <1900 398 113 94 85>, + <2611 443 117 95 86>, + <4080 519 123 102 93>, + <8074 696 153 171 149>, + <30656 4547 9542 7331 6138>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <1937 1937 1933>, + <600 1866 1920>, + <107 1602 1898>, + <11 878 1841>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-hx8394d-720p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-hx8394d-720p-video.dtsi new file mode 100644 index 00000000000..cdc81cd452a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-hx8394d-720p-video.dtsi @@ -0,0 +1,84 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_hx8394d_720_vid: qcom,mdss_dsi_hx8394d_720p_video { + qcom,mdss-dsi-panel-name = "hx8394d 720p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <52>; + qcom,mdss-dsi-h-back-porch = <100>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <20>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 b9 ff 83 94 + 39 01 00 00 00 00 03 ba 33 83 + 39 01 00 00 00 00 10 b1 6c 12 12 37 04 11 f1 80 ec 94 23 80 c0 d2 18 + 39 01 00 00 00 00 0c b2 00 64 0e 0d 32 23 08 08 1c 4d 00 + 39 01 00 00 00 00 0d b4 00 ff 03 50 03 50 03 50 01 6a 01 6a + 39 01 00 00 00 00 02 bc 07 + 39 01 00 00 00 00 04 bf 41 0e 01 + 39 01 00 00 00 00 1f d3 00 07 00 00 00 10 00 32 10 05 00 00 32 10 00 00 00 32 10 00 00 00 36 03 09 09 37 00 00 37 + 39 01 00 00 00 00 2d d5 02 03 00 01 06 07 04 05 20 21 22 23 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 24 25 18 18 19 19 + 39 01 00 00 00 00 2d d6 05 04 07 06 01 00 03 02 23 22 21 20 18 18 18 18 18 18 58 58 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 25 24 19 19 18 18 + 39 01 00 00 00 00 02 cc 09 + 39 01 00 00 00 00 03 c0 30 14 + 39 01 00 00 00 00 05 c7 00 c0 40 c0 + 39 01 00 00 00 00 03 b6 43 43 + 05 01 00 00 c8 00 02 11 00 + 05 01 00 00 0a 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 00 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [79 1a 12 00 3e 42 16 1e 15 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1b>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <59>; + qcom,mdss-pan-physical-height-dimension = <104>; + + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-innolux-720p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-innolux-720p-video.dtsi new file mode 100644 index 00000000000..581a701ce7b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-innolux-720p-video.dtsi @@ -0,0 +1,196 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_innolux_720p_video: qcom,mdss_dsi_innolux_720p_video { + qcom,mdss-dsi-panel-name = "innolux(otm1283a) 720p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <52>; + qcom,mdss-dsi-h-back-porch = <100>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <20>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 ff 12 83 01 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 ff 12 83 + 29 01 00 00 00 00 02 00 92 + 29 01 00 00 00 00 02 ff 30 + 29 01 00 00 00 00 02 00 93 + 29 01 00 00 00 00 02 ff 02 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0a c0 00 64 00 10 10 00 64 10 10 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 07 c0 00 5c 00 01 00 04 + 29 01 00 00 00 00 02 00 b3 + 29 01 00 00 00 00 03 c0 00 50 + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 c1 55 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 c4 49 + 29 01 00 00 00 00 02 00 e0 + 29 01 00 00 00 00 02 c0 c8 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0f c4 05 10 04 02 05 15 11 05 10 07 02 05 15 11 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 03 c4 00 00 + 29 01 00 00 00 00 02 00 91 + 29 01 00 00 00 00 03 c5 a6 d0 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 d8 c7 c7 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 d9 87 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 03 c5 04 38 + 29 01 00 00 00 00 02 00 bb + 29 01 00 00 00 00 02 c5 80 + 29 01 00 00 00 00 02 00 82 + 29 01 00 00 00 00 02 c4 02 + 29 01 00 00 00 00 02 00 c6 + 29 01 00 00 00 00 02 b0 03 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 d0 40 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 d1 00 00 + 29 01 00 00 00 00 02 00 b2 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b4 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b6 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b8 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 94 + 29 01 00 00 00 00 02 f5 02 + 29 01 00 00 00 00 02 00 ba + 29 01 00 00 00 00 02 f5 03 + 29 01 00 00 00 00 02 00 b4 + 29 01 00 00 00 00 02 c5 c0 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 05 f5 02 11 02 11 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 c5 50 + 29 01 00 00 00 00 02 00 94 + 29 01 00 00 00 00 02 c5 66 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0c cb 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 10 cb 05 05 05 05 05 05 05 05 05 00 05 00 00 00 00 + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 10 cb 00 00 00 00 05 00 00 05 05 05 05 05 05 05 05 + 29 01 00 00 00 00 02 00 e0 + 29 01 00 00 00 00 0f cb 05 00 05 00 00 00 00 00 00 00 00 05 00 00 + 29 01 00 00 00 00 02 00 f0 + 29 01 00 00 00 00 0c cb ff ff ff ff ff ff ff ff ff ff ff + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 10 cc 29 2a 0a 0c 0e 10 12 14 06 00 08 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 cc 00 00 00 00 02 00 00 29 2a 09 0b 0d 0f 11 13 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0f cc 05 00 07 00 00 00 00 00 00 00 00 01 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 10 cc 29 2a 13 11 0f 0d 0b 09 01 00 07 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 10 cc 00 00 00 00 05 00 00 29 2a 14 12 10 0e 0c 0a + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 0f cc 02 00 08 00 00 00 00 00 00 00 00 06 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0d ce 89 05 10 88 05 10 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0f ce 54 fc 10 54 fd 10 55 00 10 55 01 10 00 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0f ce 58 07 04 fc 00 10 00 58 06 04 fd 00 10 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 0f ce 58 05 04 fe 00 10 00 58 04 04 ff 00 10 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 0f ce 58 03 05 00 00 10 00 58 02 05 01 00 10 00 + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 0f ce 58 01 05 02 00 10 00 58 00 05 03 00 10 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0f cf 50 00 05 04 00 10 00 50 01 05 05 00 10 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0f cf 50 02 05 06 00 10 00 50 03 05 07 00 10 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0f cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 0f cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 0c cf 39 39 20 20 00 00 01 01 20 00 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 11 e1 02 12 18 0e 07 0f 0b 09 04 07 0e 08 0f 12 0c 08 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 11 e2 02 12 18 0e 07 10 0b 0a 04 08 0e 08 0f 12 0c 08 + 29 01 00 00 00 00 02 00 b5 + 29 01 00 00 00 00 07 c5 0b 95 ff 0b 95 ff + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 ff ff ff ff + 29 01 00 00 78 00 02 11 00 + 29 01 00 00 00 00 02 29 00 + 29 01 00 00 00 00 02 35 00 + 29 01 00 00 00 00 02 51 7f + 29 01 00 00 00 00 02 53 2c]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [92 1A 12 00 3E 42 16 1E 14 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-reset-sequence = <1 1>, <0 50>, <1 50>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-1080p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-1080p-video.dtsi new file mode 100644 index 00000000000..d4edb95bdcd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-1080p-video.dtsi @@ -0,0 +1,72 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_jdi_1080_vid: qcom,mdss_dsi_jdi_1080p_video { + qcom,mdss-dsi-panel-name = "jdi 1080p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 55 00 + 15 01 00 00 00 00 02 53 2C + 15 01 00 00 00 00 02 35 00 + 05 01 00 00 78 00 02 29 00 + 05 01 00 00 78 00 02 11 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 02 00 02 28 00 + 05 01 00 00 79 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [e7 36 24 00 66 6a 2a 3a 2d 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1b>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-pan-physical-width-dimension = <61>; + qcom,mdss-pan-physical-height-dimension = <110>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi0-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi0-video.dtsi new file mode 100644 index 00000000000..753dcfa7f70 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi0-video.dtsi @@ -0,0 +1,82 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_4k_video_0: qcom,dsi_jdi_4k_video_0 { + qcom,mdss-dsi-panel-name = "JDI 4K Dual 0 video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1920>; + qcom,mdss-dsi-panel-height = <2160>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <80>; + qcom,mdss-dsi-h-pulse-width = <12>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x1eaaaa>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [3e 38 26 00 68 6e 2a 3c 2c 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 51 FF + 15 01 00 00 0a 00 02 53 24 + 05 01 00 00 78 00 01 11 + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + + qcom,mdss-dsi-fbc-enable; + qcom,mdss-dsi-fbc-bpp = <12>; + qcom,mdss-dsi-fbc-packing = <1>; + qcom,mdss-dsi-fbc-quant-error; + qcom,mdss-dsi-fbc-bias = <2>; + qcom,mdss-dsi-fbc-vlc-mode; + qcom,mdss-dsi-fbc-bflc-mode; + qcom,mdss-dsi-fbc-lossy-mode-idx = <3>; + qcom,mdss-dsi-fbc-pat-mode; + qcom,mdss-dsi-fbc-budget-ctrl = <5>; + qcom,mdss-dsi-fbc-block-budget = <91>; + qcom,mdss-dsi-fbc-h-line-budget = <1200>; + qcom,mdss-dsi-fbc-lossless-threshold = <0x200>; + qcom,mdss-dsi-fbc-lossy-threshold = <192>; + qcom,mdss-dsi-fbc-rgb-threshold = <4>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi1-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi1-video.dtsi new file mode 100644 index 00000000000..b6f534c4608 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi1-video.dtsi @@ -0,0 +1,83 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_4k_video_1: qcom,dsi_jdi_4k_video_1 { + qcom,mdss-dsi-panel-name = "JDI 4K Dual 1 video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi1>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_2"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1920>; + qcom,mdss-dsi-panel-height = <2160>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <80>; + qcom,mdss-dsi-h-pulse-width = <12>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x1eaaaa>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,cmd-sync-wait-broadcast; + qcom,cmd-sync-wait-trigger; + qcom,mdss-dsi-panel-timings = [3e 38 26 00 68 6e 2a 3c 2c 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 51 FF + 15 01 00 00 0a 00 02 53 24 + 05 01 00 00 78 00 01 11 + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + + qcom,mdss-dsi-fbc-enable; + qcom,mdss-dsi-fbc-bpp = <12>; + qcom,mdss-dsi-fbc-packing = <1>; + qcom,mdss-dsi-fbc-quant-error; + qcom,mdss-dsi-fbc-bias = <2>; + qcom,mdss-dsi-fbc-vlc-mode; + qcom,mdss-dsi-fbc-bflc-mode; + qcom,mdss-dsi-fbc-lossy-mode-idx = <3>; + qcom,mdss-dsi-fbc-pat-mode; + qcom,mdss-dsi-fbc-budget-ctrl = <5>; + qcom,mdss-dsi-fbc-block-budget = <91>; + qcom,mdss-dsi-fbc-h-line-budget = <1200>; + qcom,mdss-dsi-fbc-lossless-threshold = <0x200>; + qcom,mdss-dsi-fbc-lossy-threshold = <192>; + qcom,mdss-dsi-fbc-rgb-threshold = <4>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-cmd.dtsi new file mode 100644 index 00000000000..fc9e2fa72c7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-cmd.dtsi @@ -0,0 +1,93 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_cmd_0: qcom,mdss_dsi_jdi_qhd_dualmipi0_cmd{ + qcom,mdss-dsi-panel-name = "Dual 0 cmd mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-video.dtsi new file mode 100644 index 00000000000..5aba3e52115 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi0-video.dtsi @@ -0,0 +1,92 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_video_0: qcom,dsi_jdi_qhd_video_0 { + qcom,mdss-dsi-panel-name = "Dual 0 video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 23 01 00 00 0a 00 02 b0 00 + /* MCAP */ + 29 01 00 00 0a 00 02 b3 14 + /* Interface setting */ + 29 01 00 00 0a 00 14 ce 7d 40 48 56 67 + 78 88 98 a7 b5 c3 d1 de e9 f2 fa ff 04 + 00 /* Backlight control 4 */ + 23 01 00 00 0a 00 02 b0 03 + /* MCAP */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-cmd.dtsi new file mode 100644 index 00000000000..46b46c2608a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-cmd.dtsi @@ -0,0 +1,93 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_cmd_1: qcom,mdss_dsi_jdi_qhd_dualmipi1_cmd{ + qcom,mdss-dsi-panel-name = "Dual 1 cmd mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi1>; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-destination = "display_2"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-video.dtsi new file mode 100644 index 00000000000..11e5f05809a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi1-video.dtsi @@ -0,0 +1,93 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_video_1: qcom,dsi_jdi_qhd_video_1 { + qcom,mdss-dsi-panel-name = "Dual 1 video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi1>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_2"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,cmd-sync-wait-broadcast; + qcom,cmd-sync-wait-trigger; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 23 01 00 00 0a 00 02 b0 00 + /* MCAP */ + 29 01 00 00 0a 00 02 b3 14 + /* Interface setting */ + 29 01 00 00 0a 00 14 ce 7d 40 48 56 67 + 78 88 98 a7 b5 c3 d1 de e9 f2 fa ff 04 + 00 /* Backlight control 4 */ + 23 01 00 00 0a 00 02 b0 03 + /* MCAP */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-cmd.dtsi new file mode 100644 index 00000000000..271d0c9349c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-cmd.dtsi @@ -0,0 +1,539 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_nt35590_720_cmd: qcom,mdss_dsi_nt35590_720p_cmd { + qcom,mdss-dsi-panel-name = "nt35590 720p command mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <140>; + qcom,mdss-dsi-h-back-porch = <164>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <1>; + qcom,mdss-dsi-v-front-porch = <6>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 FF EE + 29 01 00 00 00 00 02 26 08 + 29 01 00 00 00 00 02 26 00 + 29 01 00 00 10 00 02 FF 00 + 29 01 00 00 00 00 02 BA 03 + 29 01 00 00 00 00 02 C2 08 + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 00 4A + 29 01 00 00 00 00 02 01 33 + 29 01 00 00 00 00 02 02 53 + 29 01 00 00 00 00 02 03 55 + 29 01 00 00 00 00 02 04 55 + 29 01 00 00 00 00 02 05 33 + 29 01 00 00 00 00 02 06 22 + 29 01 00 00 00 00 02 08 56 + 29 01 00 00 00 00 02 09 8F + 29 01 00 00 00 00 02 36 73 + 29 01 00 00 00 00 02 0B 9F + 29 01 00 00 00 00 02 0C 9F + 29 01 00 00 00 00 02 0D 2F + 29 01 00 00 00 00 02 0E 24 + 29 01 00 00 00 00 02 11 83 + 29 01 00 00 00 00 02 12 03 + 29 01 00 00 00 00 02 71 2C + 29 01 00 00 00 00 02 6F 03 + 29 01 00 00 00 00 02 0F 0A + 29 01 00 00 00 00 02 FF 05 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 01 00 + 29 01 00 00 00 00 02 02 8B + 29 01 00 00 00 00 02 03 82 + 29 01 00 00 00 00 02 04 82 + 29 01 00 00 00 00 02 05 30 + 29 01 00 00 00 00 02 06 33 + 29 01 00 00 00 00 02 07 01 + 29 01 00 00 00 00 02 08 00 + 29 01 00 00 00 00 02 09 46 + 29 01 00 00 00 00 02 0A 46 + 29 01 00 00 00 00 02 0D 0B + 29 01 00 00 00 00 02 0E 1D + 29 01 00 00 00 00 02 0F 08 + 29 01 00 00 00 00 02 10 53 + 29 01 00 00 00 00 02 11 00 + 29 01 00 00 00 00 02 12 00 + 29 01 00 00 00 00 02 14 01 + 29 01 00 00 00 00 02 15 00 + 29 01 00 00 00 00 02 16 05 + 29 01 00 00 00 00 02 17 00 + 29 01 00 00 00 00 02 19 7F + 29 01 00 00 00 00 02 1A FF + 29 01 00 00 00 00 02 1B 0F + 29 01 00 00 00 00 02 1C 00 + 29 01 00 00 00 00 02 1D 00 + 29 01 00 00 00 00 02 1E 00 + 29 01 00 00 00 00 02 1F 07 + 29 01 00 00 00 00 02 20 00 + 29 01 00 00 00 00 02 21 06 + 29 01 00 00 00 00 02 22 55 + 29 01 00 00 00 00 02 23 4D + 29 01 00 00 00 00 02 2D 02 + 29 01 00 00 00 00 02 28 01 + 29 01 00 00 00 00 02 2F 02 + 29 01 00 00 00 00 02 83 01 + 29 01 00 00 00 00 02 9E 58 + 29 01 00 00 00 00 02 9F 6A + 29 01 00 00 00 00 02 A0 01 + 29 01 00 00 00 00 02 A2 10 + 29 01 00 00 00 00 02 BB 0A + 29 01 00 00 00 00 02 BC 0A + 29 01 00 00 00 00 02 32 08 + 29 01 00 00 00 00 02 33 B8 + 29 01 00 00 00 00 02 36 01 + 29 01 00 00 00 00 02 37 00 + 29 01 00 00 00 00 02 43 00 + 29 01 00 00 00 00 02 4B 21 + 29 01 00 00 00 00 02 4C 03 + 29 01 00 00 00 00 02 50 21 + 29 01 00 00 00 00 02 51 03 + 29 01 00 00 00 00 02 58 21 + 29 01 00 00 00 00 02 59 03 + 29 01 00 00 00 00 02 5D 21 + 29 01 00 00 00 00 02 5E 03 + 29 01 00 00 00 00 02 6C 00 + 29 01 00 00 00 00 02 6D 00 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 7D + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 8A + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 9C + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C B1 + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E BF + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 CF + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 DD + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 E8 + 29 01 00 00 00 00 02 85 00 + 29 01 00 00 00 00 02 86 F2 + 29 01 00 00 00 00 02 87 01 + 29 01 00 00 00 00 02 88 1F + 29 01 00 00 00 00 02 89 01 + 29 01 00 00 00 00 02 8A 41 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C 78 + 29 01 00 00 00 00 02 8D 01 + 29 01 00 00 00 00 02 8E A5 + 29 01 00 00 00 00 02 8F 01 + 29 01 00 00 00 00 02 90 EE + 29 01 00 00 00 00 02 91 02 + 29 01 00 00 00 00 02 92 29 + 29 01 00 00 00 00 02 93 02 + 29 01 00 00 00 00 02 94 2A + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 5D + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 93 + 29 01 00 00 00 00 02 99 02 + 29 01 00 00 00 00 02 9A B8 + 29 01 00 00 00 00 02 9B 02 + 29 01 00 00 00 00 02 9C E7 + 29 01 00 00 00 00 02 9D 03 + 29 01 00 00 00 00 02 9E 07 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 37 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 46 + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 56 + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 66 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 7A + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC 93 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE A3 + 29 01 00 00 00 00 02 AF 03 + 29 01 00 00 00 00 02 B0 B4 + 29 01 00 00 00 00 02 B1 03 + 29 01 00 00 00 00 02 B2 CB + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 7D + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 8A + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 9C + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA B1 + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC BF + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE CF + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 DD + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 E8 + 29 01 00 00 00 00 02 C3 00 + 29 01 00 00 00 00 02 C4 F2 + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 C6 1F + 29 01 00 00 00 00 02 C7 01 + 29 01 00 00 00 00 02 C8 41 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA 78 + 29 01 00 00 00 00 02 CB 01 + 29 01 00 00 00 00 02 CC A5 + 29 01 00 00 00 00 02 CD 01 + 29 01 00 00 00 00 02 CE EE + 29 01 00 00 00 00 02 CF 02 + 29 01 00 00 00 00 02 D0 29 + 29 01 00 00 00 00 02 D1 02 + 29 01 00 00 00 00 02 D2 2A + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 5D + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 93 + 29 01 00 00 00 00 02 D7 02 + 29 01 00 00 00 00 02 D8 B8 + 29 01 00 00 00 00 02 D9 02 + 29 01 00 00 00 00 02 DA E7 + 29 01 00 00 00 00 02 DB 03 + 29 01 00 00 00 00 02 DC 07 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 37 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 46 + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 56 + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 66 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 7A + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 93 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA A3 + 29 01 00 00 00 00 02 EB 03 + 29 01 00 00 00 00 02 EC B4 + 29 01 00 00 00 00 02 ED 03 + 29 01 00 00 00 00 02 EE CB + 29 01 00 00 00 00 02 EF 00 + 29 01 00 00 00 00 02 F0 ED + 29 01 00 00 00 00 02 F1 00 + 29 01 00 00 00 00 02 F2 F3 + 29 01 00 00 00 00 02 F3 00 + 29 01 00 00 00 00 02 F4 FE + 29 01 00 00 00 00 02 F5 01 + 29 01 00 00 00 00 02 F6 09 + 29 01 00 00 00 00 02 F7 01 + 29 01 00 00 00 00 02 F8 13 + 29 01 00 00 00 00 02 F9 01 + 29 01 00 00 00 00 02 FA 1D + 29 01 00 00 00 00 02 FF 02 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 00 01 + 29 01 00 00 00 00 02 01 26 + 29 01 00 00 00 00 02 02 01 + 29 01 00 00 00 00 02 03 2F + 29 01 00 00 00 00 02 04 01 + 29 01 00 00 00 00 02 05 37 + 29 01 00 00 00 00 02 06 01 + 29 01 00 00 00 00 02 07 56 + 29 01 00 00 00 00 02 08 01 + 29 01 00 00 00 00 02 09 70 + 29 01 00 00 00 00 02 0A 01 + 29 01 00 00 00 00 02 0B 9D + 29 01 00 00 00 00 02 0C 01 + 29 01 00 00 00 00 02 0D C2 + 29 01 00 00 00 00 02 0E 01 + 29 01 00 00 00 00 02 0F FF + 29 01 00 00 00 00 02 10 02 + 29 01 00 00 00 00 02 11 31 + 29 01 00 00 00 00 02 12 02 + 29 01 00 00 00 00 02 13 32 + 29 01 00 00 00 00 02 14 02 + 29 01 00 00 00 00 02 15 60 + 29 01 00 00 00 00 02 16 02 + 29 01 00 00 00 00 02 17 94 + 29 01 00 00 00 00 02 18 02 + 29 01 00 00 00 00 02 19 B5 + 29 01 00 00 00 00 02 1A 02 + 29 01 00 00 00 00 02 1B E3 + 29 01 00 00 00 00 02 1C 03 + 29 01 00 00 00 00 02 1D 03 + 29 01 00 00 00 00 02 1E 03 + 29 01 00 00 00 00 02 1F 2D + 29 01 00 00 00 00 02 20 03 + 29 01 00 00 00 00 02 21 3A + 29 01 00 00 00 00 02 22 03 + 29 01 00 00 00 00 02 23 48 + 29 01 00 00 00 00 02 24 03 + 29 01 00 00 00 00 02 25 57 + 29 01 00 00 00 00 02 26 03 + 29 01 00 00 00 00 02 27 68 + 29 01 00 00 00 00 02 28 03 + 29 01 00 00 00 00 02 29 7B + 29 01 00 00 00 00 02 2A 03 + 29 01 00 00 00 00 02 2B 90 + 29 01 00 00 00 00 02 2D 03 + 29 01 00 00 00 00 02 2F A0 + 29 01 00 00 00 00 02 30 03 + 29 01 00 00 00 00 02 31 CB + 29 01 00 00 00 00 02 32 00 + 29 01 00 00 00 00 02 33 ED + 29 01 00 00 00 00 02 34 00 + 29 01 00 00 00 00 02 35 F3 + 29 01 00 00 00 00 02 36 00 + 29 01 00 00 00 00 02 37 FE + 29 01 00 00 00 00 02 38 01 + 29 01 00 00 00 00 02 39 09 + 29 01 00 00 00 00 02 3A 01 + 29 01 00 00 00 00 02 3B 13 + 29 01 00 00 00 00 02 3D 01 + 29 01 00 00 00 00 02 3F 1D + 29 01 00 00 00 00 02 40 01 + 29 01 00 00 00 00 02 41 26 + 29 01 00 00 00 00 02 42 01 + 29 01 00 00 00 00 02 43 2F + 29 01 00 00 00 00 02 44 01 + 29 01 00 00 00 00 02 45 37 + 29 01 00 00 00 00 02 46 01 + 29 01 00 00 00 00 02 47 56 + 29 01 00 00 00 00 02 48 01 + 29 01 00 00 00 00 02 49 70 + 29 01 00 00 00 00 02 4A 01 + 29 01 00 00 00 00 02 4B 9D + 29 01 00 00 00 00 02 4C 01 + 29 01 00 00 00 00 02 4D C2 + 29 01 00 00 00 00 02 4E 01 + 29 01 00 00 00 00 02 4F FF + 29 01 00 00 00 00 02 50 02 + 29 01 00 00 00 00 02 51 31 + 29 01 00 00 00 00 02 52 02 + 29 01 00 00 00 00 02 53 32 + 29 01 00 00 00 00 02 54 02 + 29 01 00 00 00 00 02 55 60 + 29 01 00 00 00 00 02 56 02 + 29 01 00 00 00 00 02 58 94 + 29 01 00 00 00 00 02 59 02 + 29 01 00 00 00 00 02 5A B5 + 29 01 00 00 00 00 02 5B 02 + 29 01 00 00 00 00 02 5C E3 + 29 01 00 00 00 00 02 5D 03 + 29 01 00 00 00 00 02 5E 03 + 29 01 00 00 00 00 02 5F 03 + 29 01 00 00 00 00 02 60 2D + 29 01 00 00 00 00 02 61 03 + 29 01 00 00 00 00 02 62 3A + 29 01 00 00 00 00 02 63 03 + 29 01 00 00 00 00 02 64 48 + 29 01 00 00 00 00 02 65 03 + 29 01 00 00 00 00 02 66 57 + 29 01 00 00 00 00 02 67 03 + 29 01 00 00 00 00 02 68 68 + 29 01 00 00 00 00 02 69 03 + 29 01 00 00 00 00 02 6A 7B + 29 01 00 00 00 00 02 6B 03 + 29 01 00 00 00 00 02 6C 90 + 29 01 00 00 00 00 02 6D 03 + 29 01 00 00 00 00 02 6E A0 + 29 01 00 00 00 00 02 6F 03 + 29 01 00 00 00 00 02 70 CB + 29 01 00 00 00 00 02 71 00 + 29 01 00 00 00 00 02 72 19 + 29 01 00 00 00 00 02 73 00 + 29 01 00 00 00 00 02 74 36 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 55 + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 70 + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 83 + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C 99 + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E A8 + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 B7 + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 C5 + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 F7 + 29 01 00 00 00 00 02 85 01 + 29 01 00 00 00 00 02 86 1E + 29 01 00 00 00 00 02 87 01 + 29 01 00 00 00 00 02 88 60 + 29 01 00 00 00 00 02 89 01 + 29 01 00 00 00 00 02 8A 95 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C E1 + 29 01 00 00 00 00 02 8D 02 + 29 01 00 00 00 00 02 8E 20 + 29 01 00 00 00 00 02 8F 02 + 29 01 00 00 00 00 02 90 23 + 29 01 00 00 00 00 02 91 02 + 29 01 00 00 00 00 02 92 59 + 29 01 00 00 00 00 02 93 02 + 29 01 00 00 00 00 02 94 94 + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 B4 + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 E1 + 29 01 00 00 00 00 02 99 03 + 29 01 00 00 00 00 02 9A 01 + 29 01 00 00 00 00 02 9B 03 + 29 01 00 00 00 00 02 9C 28 + 29 01 00 00 00 00 02 9D 03 + 29 01 00 00 00 00 02 9E 30 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 37 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 3B + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 40 + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 50 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 6D + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC 80 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE CB + 29 01 00 00 00 00 02 AF 00 + 29 01 00 00 00 00 02 B0 19 + 29 01 00 00 00 00 02 B1 00 + 29 01 00 00 00 00 02 B2 36 + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 55 + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 70 + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 83 + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA 99 + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC A8 + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE B7 + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 C5 + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 F7 + 29 01 00 00 00 00 02 C3 01 + 29 01 00 00 00 00 02 C4 1E + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 C6 60 + 29 01 00 00 00 00 02 C7 01 + 29 01 00 00 00 00 02 C8 95 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA E1 + 29 01 00 00 00 00 02 CB 02 + 29 01 00 00 00 00 02 CC 20 + 29 01 00 00 00 00 02 CD 02 + 29 01 00 00 00 00 02 CE 23 + 29 01 00 00 00 00 02 CF 02 + 29 01 00 00 00 00 02 D0 59 + 29 01 00 00 00 00 02 D1 02 + 29 01 00 00 00 00 02 D2 94 + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 B4 + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 E1 + 29 01 00 00 00 00 02 D7 03 + 29 01 00 00 00 00 02 D8 01 + 29 01 00 00 00 00 02 D9 03 + 29 01 00 00 00 00 02 DA 28 + 29 01 00 00 00 00 02 DB 03 + 29 01 00 00 00 00 02 DC 30 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 37 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 3B + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 40 + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 50 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 6D + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 80 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA CB + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 02 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 04 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 64 00 02 11 00 + 29 01 00 00 00 00 02 FF EE + 29 01 00 00 00 00 02 12 50 + 29 01 00 00 00 00 02 13 02 + 29 01 00 00 00 00 02 6A 60 + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 78 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "bta_check"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-panel-timings = [7d 25 1d 00 37 33 22 27 1e 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x20>; + qcom,mdss-dsi-t-clk-pre = <0x2c>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <59>; + qcom,mdss-pan-physical-height-dimension = <104>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <2 2 2 2 0 0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-video.dtsi new file mode 100644 index 00000000000..59065db95f6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35590-720p-video.dtsi @@ -0,0 +1,540 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_nt35590_720_vid: qcom,mdss_dsi_nt35590_720p_video { + qcom,mdss-dsi-panel-name = "nt35590 720p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <140>; + qcom,mdss-dsi-h-back-porch = <164>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <11>; + qcom,mdss-dsi-v-front-porch = <6>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 FF EE + 29 01 00 00 00 00 02 26 08 + 29 01 00 00 00 00 02 26 00 + 29 01 00 00 10 00 02 FF 00 + 29 01 00 00 00 00 02 BA 03 + 29 01 00 00 00 00 02 C2 03 + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 00 4A + 29 01 00 00 00 00 02 01 33 + 29 01 00 00 00 00 02 02 53 + 29 01 00 00 00 00 02 03 55 + 29 01 00 00 00 00 02 04 55 + 29 01 00 00 00 00 02 05 33 + 29 01 00 00 00 00 02 06 22 + 29 01 00 00 00 00 02 08 56 + 29 01 00 00 00 00 02 09 8F + 29 01 00 00 00 00 02 36 73 + 29 01 00 00 00 00 02 0B 9F + 29 01 00 00 00 00 02 0C 9F + 29 01 00 00 00 00 02 0D 2F + 29 01 00 00 00 00 02 0E 24 + 29 01 00 00 00 00 02 11 83 + 29 01 00 00 00 00 02 12 03 + 29 01 00 00 00 00 02 71 2C + 29 01 00 00 00 00 02 6F 03 + 29 01 00 00 00 00 02 0F 0A + 29 01 00 00 00 00 02 FF 05 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 01 00 + 29 01 00 00 00 00 02 02 8B + 29 01 00 00 00 00 02 03 82 + 29 01 00 00 00 00 02 04 82 + 29 01 00 00 00 00 02 05 30 + 29 01 00 00 00 00 02 06 33 + 29 01 00 00 00 00 02 07 01 + 29 01 00 00 00 00 02 08 00 + 29 01 00 00 00 00 02 09 46 + 29 01 00 00 00 00 02 0A 46 + 29 01 00 00 00 00 02 0D 0B + 29 01 00 00 00 00 02 0E 1D + 29 01 00 00 00 00 02 0F 08 + 29 01 00 00 00 00 02 10 53 + 29 01 00 00 00 00 02 11 00 + 29 01 00 00 00 00 02 12 00 + 29 01 00 00 00 00 02 14 01 + 29 01 00 00 00 00 02 15 00 + 29 01 00 00 00 00 02 16 05 + 29 01 00 00 00 00 02 17 00 + 29 01 00 00 00 00 02 19 7F + 29 01 00 00 00 00 02 1A FF + 29 01 00 00 00 00 02 1B 0F + 29 01 00 00 00 00 02 1C 00 + 29 01 00 00 00 00 02 1D 00 + 29 01 00 00 00 00 02 1E 00 + 29 01 00 00 00 00 02 1F 07 + 29 01 00 00 00 00 02 20 00 + 29 01 00 00 00 00 02 21 06 + 29 01 00 00 00 00 02 22 55 + 29 01 00 00 00 00 02 23 4D + 29 01 00 00 00 00 02 2D 02 + 29 01 00 00 00 00 02 28 01 + 29 01 00 00 00 00 02 2F 02 + 29 01 00 00 00 00 02 83 01 + 29 01 00 00 00 00 02 9E 58 + 29 01 00 00 00 00 02 9F 6A + 29 01 00 00 00 00 02 A0 01 + 29 01 00 00 00 00 02 A2 10 + 29 01 00 00 00 00 02 BB 0A + 29 01 00 00 00 00 02 BC 0A + 29 01 00 00 00 00 02 32 08 + 29 01 00 00 00 00 02 33 B8 + 29 01 00 00 00 00 02 36 01 + 29 01 00 00 00 00 02 37 00 + 29 01 00 00 00 00 02 43 00 + 29 01 00 00 00 00 02 4B 21 + 29 01 00 00 00 00 02 4C 03 + 29 01 00 00 00 00 02 50 21 + 29 01 00 00 00 00 02 51 03 + 29 01 00 00 00 00 02 58 21 + 29 01 00 00 00 00 02 59 03 + 29 01 00 00 00 00 02 5D 21 + 29 01 00 00 00 00 02 5E 03 + 29 01 00 00 00 00 02 6C 00 + 29 01 00 00 00 00 02 6D 00 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 7D + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 8A + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 9C + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C B1 + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E BF + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 CF + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 DD + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 E8 + 29 01 00 00 00 00 02 85 00 + 29 01 00 00 00 00 02 86 F2 + 29 01 00 00 00 00 02 87 01 + 29 01 00 00 00 00 02 88 1F + 29 01 00 00 00 00 02 89 01 + 29 01 00 00 00 00 02 8A 41 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C 78 + 29 01 00 00 00 00 02 8D 01 + 29 01 00 00 00 00 02 8E A5 + 29 01 00 00 00 00 02 8F 01 + 29 01 00 00 00 00 02 90 EE + 29 01 00 00 00 00 02 91 02 + 29 01 00 00 00 00 02 92 29 + 29 01 00 00 00 00 02 93 02 + 29 01 00 00 00 00 02 94 2A + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 5D + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 93 + 29 01 00 00 00 00 02 99 02 + 29 01 00 00 00 00 02 9A B8 + 29 01 00 00 00 00 02 9B 02 + 29 01 00 00 00 00 02 9C E7 + 29 01 00 00 00 00 02 9D 03 + 29 01 00 00 00 00 02 9E 07 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 37 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 46 + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 56 + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 66 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 7A + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC 93 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE A3 + 29 01 00 00 00 00 02 AF 03 + 29 01 00 00 00 00 02 B0 B4 + 29 01 00 00 00 00 02 B1 03 + 29 01 00 00 00 00 02 B2 CB + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 7D + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 8A + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 9C + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA B1 + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC BF + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE CF + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 DD + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 E8 + 29 01 00 00 00 00 02 C3 00 + 29 01 00 00 00 00 02 C4 F2 + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 C6 1F + 29 01 00 00 00 00 02 C7 01 + 29 01 00 00 00 00 02 C8 41 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA 78 + 29 01 00 00 00 00 02 CB 01 + 29 01 00 00 00 00 02 CC A5 + 29 01 00 00 00 00 02 CD 01 + 29 01 00 00 00 00 02 CE EE + 29 01 00 00 00 00 02 CF 02 + 29 01 00 00 00 00 02 D0 29 + 29 01 00 00 00 00 02 D1 02 + 29 01 00 00 00 00 02 D2 2A + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 5D + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 93 + 29 01 00 00 00 00 02 D7 02 + 29 01 00 00 00 00 02 D8 B8 + 29 01 00 00 00 00 02 D9 02 + 29 01 00 00 00 00 02 DA E7 + 29 01 00 00 00 00 02 DB 03 + 29 01 00 00 00 00 02 DC 07 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 37 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 46 + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 56 + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 66 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 7A + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 93 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA A3 + 29 01 00 00 00 00 02 EB 03 + 29 01 00 00 00 00 02 EC B4 + 29 01 00 00 00 00 02 ED 03 + 29 01 00 00 00 00 02 EE CB + 29 01 00 00 00 00 02 EF 00 + 29 01 00 00 00 00 02 F0 ED + 29 01 00 00 00 00 02 F1 00 + 29 01 00 00 00 00 02 F2 F3 + 29 01 00 00 00 00 02 F3 00 + 29 01 00 00 00 00 02 F4 FE + 29 01 00 00 00 00 02 F5 01 + 29 01 00 00 00 00 02 F6 09 + 29 01 00 00 00 00 02 F7 01 + 29 01 00 00 00 00 02 F8 13 + 29 01 00 00 00 00 02 F9 01 + 29 01 00 00 00 00 02 FA 1D + 29 01 00 00 00 00 02 FF 02 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 00 01 + 29 01 00 00 00 00 02 01 26 + 29 01 00 00 00 00 02 02 01 + 29 01 00 00 00 00 02 03 2F + 29 01 00 00 00 00 02 04 01 + 29 01 00 00 00 00 02 05 37 + 29 01 00 00 00 00 02 06 01 + 29 01 00 00 00 00 02 07 56 + 29 01 00 00 00 00 02 08 01 + 29 01 00 00 00 00 02 09 70 + 29 01 00 00 00 00 02 0A 01 + 29 01 00 00 00 00 02 0B 9D + 29 01 00 00 00 00 02 0C 01 + 29 01 00 00 00 00 02 0D C2 + 29 01 00 00 00 00 02 0E 01 + 29 01 00 00 00 00 02 0F FF + 29 01 00 00 00 00 02 10 02 + 29 01 00 00 00 00 02 11 31 + 29 01 00 00 00 00 02 12 02 + 29 01 00 00 00 00 02 13 32 + 29 01 00 00 00 00 02 14 02 + 29 01 00 00 00 00 02 15 60 + 29 01 00 00 00 00 02 16 02 + 29 01 00 00 00 00 02 17 94 + 29 01 00 00 00 00 02 18 02 + 29 01 00 00 00 00 02 19 B5 + 29 01 00 00 00 00 02 1A 02 + 29 01 00 00 00 00 02 1B E3 + 29 01 00 00 00 00 02 1C 03 + 29 01 00 00 00 00 02 1D 03 + 29 01 00 00 00 00 02 1E 03 + 29 01 00 00 00 00 02 1F 2D + 29 01 00 00 00 00 02 20 03 + 29 01 00 00 00 00 02 21 3A + 29 01 00 00 00 00 02 22 03 + 29 01 00 00 00 00 02 23 48 + 29 01 00 00 00 00 02 24 03 + 29 01 00 00 00 00 02 25 57 + 29 01 00 00 00 00 02 26 03 + 29 01 00 00 00 00 02 27 68 + 29 01 00 00 00 00 02 28 03 + 29 01 00 00 00 00 02 29 7B + 29 01 00 00 00 00 02 2A 03 + 29 01 00 00 00 00 02 2B 90 + 29 01 00 00 00 00 02 2D 03 + 29 01 00 00 00 00 02 2F A0 + 29 01 00 00 00 00 02 30 03 + 29 01 00 00 00 00 02 31 CB + 29 01 00 00 00 00 02 32 00 + 29 01 00 00 00 00 02 33 ED + 29 01 00 00 00 00 02 34 00 + 29 01 00 00 00 00 02 35 F3 + 29 01 00 00 00 00 02 36 00 + 29 01 00 00 00 00 02 37 FE + 29 01 00 00 00 00 02 38 01 + 29 01 00 00 00 00 02 39 09 + 29 01 00 00 00 00 02 3A 01 + 29 01 00 00 00 00 02 3B 13 + 29 01 00 00 00 00 02 3D 01 + 29 01 00 00 00 00 02 3F 1D + 29 01 00 00 00 00 02 40 01 + 29 01 00 00 00 00 02 41 26 + 29 01 00 00 00 00 02 42 01 + 29 01 00 00 00 00 02 43 2F + 29 01 00 00 00 00 02 44 01 + 29 01 00 00 00 00 02 45 37 + 29 01 00 00 00 00 02 46 01 + 29 01 00 00 00 00 02 47 56 + 29 01 00 00 00 00 02 48 01 + 29 01 00 00 00 00 02 49 70 + 29 01 00 00 00 00 02 4A 01 + 29 01 00 00 00 00 02 4B 9D + 29 01 00 00 00 00 02 4C 01 + 29 01 00 00 00 00 02 4D C2 + 29 01 00 00 00 00 02 4E 01 + 29 01 00 00 00 00 02 4F FF + 29 01 00 00 00 00 02 50 02 + 29 01 00 00 00 00 02 51 31 + 29 01 00 00 00 00 02 52 02 + 29 01 00 00 00 00 02 53 32 + 29 01 00 00 00 00 02 54 02 + 29 01 00 00 00 00 02 55 60 + 29 01 00 00 00 00 02 56 02 + 29 01 00 00 00 00 02 58 94 + 29 01 00 00 00 00 02 59 02 + 29 01 00 00 00 00 02 5A B5 + 29 01 00 00 00 00 02 5B 02 + 29 01 00 00 00 00 02 5C E3 + 29 01 00 00 00 00 02 5D 03 + 29 01 00 00 00 00 02 5E 03 + 29 01 00 00 00 00 02 5F 03 + 29 01 00 00 00 00 02 60 2D + 29 01 00 00 00 00 02 61 03 + 29 01 00 00 00 00 02 62 3A + 29 01 00 00 00 00 02 63 03 + 29 01 00 00 00 00 02 64 48 + 29 01 00 00 00 00 02 65 03 + 29 01 00 00 00 00 02 66 57 + 29 01 00 00 00 00 02 67 03 + 29 01 00 00 00 00 02 68 68 + 29 01 00 00 00 00 02 69 03 + 29 01 00 00 00 00 02 6A 7B + 29 01 00 00 00 00 02 6B 03 + 29 01 00 00 00 00 02 6C 90 + 29 01 00 00 00 00 02 6D 03 + 29 01 00 00 00 00 02 6E A0 + 29 01 00 00 00 00 02 6F 03 + 29 01 00 00 00 00 02 70 CB + 29 01 00 00 00 00 02 71 00 + 29 01 00 00 00 00 02 72 19 + 29 01 00 00 00 00 02 73 00 + 29 01 00 00 00 00 02 74 36 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 55 + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 70 + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 83 + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C 99 + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E A8 + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 B7 + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 C5 + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 F7 + 29 01 00 00 00 00 02 85 01 + 29 01 00 00 00 00 02 86 1E + 29 01 00 00 00 00 02 87 01 + 29 01 00 00 00 00 02 88 60 + 29 01 00 00 00 00 02 89 01 + 29 01 00 00 00 00 02 8A 95 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C E1 + 29 01 00 00 00 00 02 8D 02 + 29 01 00 00 00 00 02 8E 20 + 29 01 00 00 00 00 02 8F 02 + 29 01 00 00 00 00 02 90 23 + 29 01 00 00 00 00 02 91 02 + 29 01 00 00 00 00 02 92 59 + 29 01 00 00 00 00 02 93 02 + 29 01 00 00 00 00 02 94 94 + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 B4 + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 E1 + 29 01 00 00 00 00 02 99 03 + 29 01 00 00 00 00 02 9A 01 + 29 01 00 00 00 00 02 9B 03 + 29 01 00 00 00 00 02 9C 28 + 29 01 00 00 00 00 02 9D 03 + 29 01 00 00 00 00 02 9E 30 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 37 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 3B + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 40 + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 50 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 6D + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC 80 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE CB + 29 01 00 00 00 00 02 AF 00 + 29 01 00 00 00 00 02 B0 19 + 29 01 00 00 00 00 02 B1 00 + 29 01 00 00 00 00 02 B2 36 + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 55 + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 70 + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 83 + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA 99 + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC A8 + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE B7 + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 C5 + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 F7 + 29 01 00 00 00 00 02 C3 01 + 29 01 00 00 00 00 02 C4 1E + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 C6 60 + 29 01 00 00 00 00 02 C7 01 + 29 01 00 00 00 00 02 C8 95 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA E1 + 29 01 00 00 00 00 02 CB 02 + 29 01 00 00 00 00 02 CC 20 + 29 01 00 00 00 00 02 CD 02 + 29 01 00 00 00 00 02 CE 23 + 29 01 00 00 00 00 02 CF 02 + 29 01 00 00 00 00 02 D0 59 + 29 01 00 00 00 00 02 D1 02 + 29 01 00 00 00 00 02 D2 94 + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 B4 + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 E1 + 29 01 00 00 00 00 02 D7 03 + 29 01 00 00 00 00 02 D8 01 + 29 01 00 00 00 00 02 D9 03 + 29 01 00 00 00 00 02 DA 28 + 29 01 00 00 00 00 02 DB 03 + 29 01 00 00 00 00 02 DC 30 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 37 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 3B + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 40 + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 50 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 6D + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 80 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA CB + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 02 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 04 + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 64 00 02 11 00 + 29 01 00 00 00 00 02 FF EE + 29 01 00 00 00 00 02 12 50 + 29 01 00 00 00 00 02 13 02 + 29 01 00 00 00 00 02 6A 60 + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 78 00 02 29 00 + 29 01 00 00 78 00 02 53 2C + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 00 00 06 3B 03 06 03 02 02]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "bta_check"; + qcom,dynamic-mode-switch-enabled; + qcom,video-to-cmd-mode-switch-commands = [15 01 00 00 14 00 02 C2 0B + 15 01 00 00 00 00 02 C2 08]; + qcom,cmd-to-video-mode-switch-commands = [15 01 00 00 00 00 02 C2 03]; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [7d 25 1d 00 37 33 22 27 1e 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x20>; + qcom,mdss-dsi-t-clk-pre = <0x2c>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <59>; + qcom,mdss-pan-physical-height-dimension = <104>; + + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35596-1080p-skuk-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35596-1080p-skuk-video.dtsi new file mode 100644 index 00000000000..01c57c47220 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35596-1080p-skuk-video.dtsi @@ -0,0 +1,541 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_nt35596_1080p_skuk_video: qcom,mdss_dsi_nt35596_1080p_skuk_video { + qcom,mdss-dsi-panel-name = "nt35596 1080p video mode dsi panel skuk"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <82>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <7>; + qcom,mdss-dsi-v-front-porch = <3>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 FF EE + 29 01 00 00 00 00 02 FB 01 + 29 01 00 00 0A 00 02 18 40 + 29 01 00 00 14 00 02 18 00 + 29 01 00 00 00 00 02 FF 05 + 29 01 00 00 05 00 02 FB 01 + 29 01 00 00 00 00 02 90 00 + 29 01 00 00 00 00 02 93 04 + 29 01 00 00 00 00 02 94 04 + 29 01 00 00 00 00 02 9B 0F + 29 01 00 00 00 00 02 91 44 + 29 01 00 00 00 00 02 92 79 + 29 01 00 00 00 00 02 00 0F + 29 01 00 00 00 00 02 01 00 + 29 01 00 00 00 00 02 02 00 + 29 01 00 00 00 00 02 03 00 + 29 01 00 00 00 00 02 04 0B + 29 01 00 00 00 00 02 05 0C + 29 01 00 00 00 00 02 06 00 + 29 01 00 00 00 00 02 07 00 + 29 01 00 00 00 00 02 08 00 + 29 01 00 00 00 00 02 09 00 + 29 01 00 00 00 00 02 0A 03 + 29 01 00 00 00 00 02 0B 04 + 29 01 00 00 00 00 02 0C 01 + 29 01 00 00 00 00 02 0D 13 + 29 01 00 00 00 00 02 0E 15 + 29 01 00 00 00 00 02 0F 17 + 29 01 00 00 00 00 02 10 0F + 29 01 00 00 00 00 02 11 00 + 29 01 00 00 00 00 02 12 00 + 29 01 00 00 00 00 02 13 00 + 29 01 00 00 00 00 02 14 0B + 29 01 00 00 00 00 02 15 0C + 29 01 00 00 00 00 02 16 00 + 29 01 00 00 00 00 02 17 00 + 29 01 00 00 00 00 02 18 00 + 29 01 00 00 00 00 02 19 00 + 29 01 00 00 00 00 02 1A 03 + 29 01 00 00 00 00 02 1B 04 + 29 01 00 00 00 00 02 1C 01 + 29 01 00 00 00 00 02 1D 13 + 29 01 00 00 00 00 02 1E 15 + 29 01 00 00 00 00 02 1F 17 + 29 01 00 00 00 00 02 20 09 + 29 01 00 00 00 00 02 21 01 + 29 01 00 00 00 00 02 22 00 + 29 01 00 00 00 00 02 23 00 + 29 01 00 00 00 00 02 24 00 + 29 01 00 00 00 00 02 25 ED + 29 01 00 00 00 00 02 2F 02 + 29 01 00 00 00 00 02 30 04 + 29 01 00 00 00 00 02 31 49 + 29 01 00 00 00 00 02 32 23 + 29 01 00 00 00 00 02 33 01 + 29 01 00 00 00 00 02 34 00 + 29 01 00 00 00 00 02 35 69 + 29 01 00 00 00 00 02 36 00 + 29 01 00 00 00 00 02 37 2D + 29 01 00 00 00 00 02 38 18 + 29 01 00 00 00 00 02 29 58 + 29 01 00 00 00 00 02 2A 16 + 29 01 00 00 00 00 02 2B 05 + 29 01 00 00 00 00 02 5B 00 + 29 01 00 00 00 00 02 5F 75 + 29 01 00 00 00 00 02 63 00 + 29 01 00 00 00 00 02 67 04 + 29 01 00 00 00 00 02 6C 00 + 29 01 00 00 00 00 02 7B 80 + 29 01 00 00 00 00 02 7C D8 + 29 01 00 00 00 00 02 7D 60 + 29 01 00 00 00 00 02 7E 0B + 29 01 00 00 00 00 02 7F 17 + 29 01 00 00 00 00 02 80 00 + 29 01 00 00 00 00 02 81 06 + 29 01 00 00 00 00 02 82 03 + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 03 + 29 01 00 00 00 00 02 85 07 + 29 01 00 00 00 00 02 86 1B + 29 01 00 00 00 00 02 87 39 + 29 01 00 00 00 00 02 88 1B + 29 01 00 00 00 00 02 89 39 + 29 01 00 00 00 00 02 8A 33 + 29 01 00 00 00 00 02 A4 0F + 29 01 00 00 00 00 02 8C 01 + 29 01 00 00 00 00 02 99 33 + 29 01 00 00 00 00 02 B5 20 + 29 01 00 00 00 00 02 FF 01 + 29 01 00 00 05 00 02 FB 01 + 29 01 00 00 00 00 02 00 01 + 29 01 00 00 00 00 02 05 50 + 29 01 00 00 00 00 02 06 A0 + 29 01 00 00 00 00 02 14 A8 + 29 01 00 00 00 00 02 07 B2 + 29 01 00 00 00 00 02 0E BF + 29 01 00 00 00 00 02 0F C2 + 29 01 00 00 00 00 02 0B B3 + 29 01 00 00 00 00 02 0C B3 + 29 01 00 00 00 00 02 11 28 + 29 01 00 00 00 00 02 12 1F + 29 01 00 00 00 00 02 08 0C + 29 01 00 00 00 00 02 15 15 + 29 01 00 00 00 00 02 16 15 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 00 + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 09 + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 1D + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C 2E + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E 3D + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 4C + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 59 + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 66 + 29 01 00 00 00 00 02 85 00 + 29 01 00 00 00 00 02 86 73 + 29 01 00 00 00 00 02 87 00 + 29 01 00 00 00 00 02 88 A0 + 29 01 00 00 00 00 02 89 00 + 29 01 00 00 00 00 02 8A C7 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C 0C + 29 01 00 00 00 00 02 8D 01 + 29 01 00 00 00 00 02 8E 46 + 29 01 00 00 00 00 02 8F 01 + 29 01 00 00 00 00 02 90 A4 + 29 01 00 00 00 00 02 91 01 + 29 01 00 00 00 00 02 92 F1 + 29 01 00 00 00 00 02 93 01 + 29 01 00 00 00 00 02 94 F3 + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 36 + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 7B + 29 01 00 00 00 00 02 99 02 + 29 01 00 00 00 00 02 9A A3 + 29 01 00 00 00 00 02 9B 02 + 29 01 00 00 00 00 02 9C D6 + 29 01 00 00 00 00 02 9D 02 + 29 01 00 00 00 00 02 9E F9 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 26 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 34 + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 43 + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 55 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 6A + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC 81 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE 9F + 29 01 00 00 00 00 02 AF 03 + 29 01 00 00 00 00 02 B0 D1 + 29 01 00 00 00 00 02 B1 03 + 29 01 00 00 00 00 02 B2 FF + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 00 + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 09 + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 1D + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA 2E + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC 3D + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE 4C + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 59 + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 66 + 29 01 00 00 00 00 02 C3 00 + 29 01 00 00 00 00 02 C4 73 + 29 01 00 00 00 00 02 C5 00 + 29 01 00 00 00 00 02 C6 A0 + 29 01 00 00 00 00 02 C7 00 + 29 01 00 00 00 00 02 C8 C7 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA 0C + 29 01 00 00 00 00 02 CB 01 + 29 01 00 00 00 00 02 CC 46 + 29 01 00 00 00 00 02 CD 01 + 29 01 00 00 00 00 02 CE A4 + 29 01 00 00 00 00 02 CF 01 + 29 01 00 00 00 00 02 D0 F1 + 29 01 00 00 00 00 02 D1 01 + 29 01 00 00 00 00 02 D2 F3 + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 36 + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 7B + 29 01 00 00 00 00 02 D7 02 + 29 01 00 00 00 00 02 D8 A3 + 29 01 00 00 00 00 02 D9 02 + 29 01 00 00 00 00 02 DA D6 + 29 01 00 00 00 00 02 DB 02 + 29 01 00 00 00 00 02 DC F9 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 26 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 34 + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 43 + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 55 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 6A + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 81 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA 9F + 29 01 00 00 00 00 02 EB 03 + 29 01 00 00 00 00 02 EC D1 + 29 01 00 00 00 00 02 ED 03 + 29 01 00 00 00 00 02 EE FF + 29 01 00 00 00 00 02 EF 00 + 29 01 00 00 00 00 02 F0 00 + 29 01 00 00 00 00 02 F1 00 + 29 01 00 00 00 00 02 F2 09 + 29 01 00 00 00 00 02 F3 00 + 29 01 00 00 00 00 02 F4 1D + 29 01 00 00 00 00 02 F5 00 + 29 01 00 00 00 00 02 F6 2E + 29 01 00 00 00 00 02 F7 00 + 29 01 00 00 00 00 02 F8 3D + 29 01 00 00 00 00 02 F9 00 + 29 01 00 00 00 00 02 FA 4C + 29 01 00 00 00 00 02 FF 02 + 29 01 00 00 05 00 02 FB 01 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 01 59 + 29 01 00 00 00 00 02 02 00 + 29 01 00 00 00 00 02 03 66 + 29 01 00 00 00 00 02 04 00 + 29 01 00 00 00 00 02 05 73 + 29 01 00 00 00 00 02 06 00 + 29 01 00 00 00 00 02 07 A0 + 29 01 00 00 00 00 02 08 00 + 29 01 00 00 00 00 02 09 C7 + 29 01 00 00 00 00 02 0A 01 + 29 01 00 00 00 00 02 0B 0C + 29 01 00 00 00 00 02 0C 01 + 29 01 00 00 00 00 02 0D 46 + 29 01 00 00 00 00 02 0E 01 + 29 01 00 00 00 00 02 0F A4 + 29 01 00 00 00 00 02 10 01 + 29 01 00 00 00 00 02 11 F1 + 29 01 00 00 00 00 02 12 01 + 29 01 00 00 00 00 02 13 F3 + 29 01 00 00 00 00 02 14 02 + 29 01 00 00 00 00 02 15 36 + 29 01 00 00 00 00 02 16 02 + 29 01 00 00 00 00 02 17 7B + 29 01 00 00 00 00 02 18 02 + 29 01 00 00 00 00 02 19 A3 + 29 01 00 00 00 00 02 1A 02 + 29 01 00 00 00 00 02 1B D6 + 29 01 00 00 00 00 02 1C 02 + 29 01 00 00 00 00 02 1D F9 + 29 01 00 00 00 00 02 1E 03 + 29 01 00 00 00 00 02 1F 26 + 29 01 00 00 00 00 02 20 03 + 29 01 00 00 00 00 02 21 34 + 29 01 00 00 00 00 02 22 03 + 29 01 00 00 00 00 02 23 43 + 29 01 00 00 00 00 02 24 03 + 29 01 00 00 00 00 02 25 55 + 29 01 00 00 00 00 02 26 03 + 29 01 00 00 00 00 02 27 6A + 29 01 00 00 00 00 02 28 03 + 29 01 00 00 00 00 02 29 81 + 29 01 00 00 00 00 02 2A 03 + 29 01 00 00 00 00 02 2B 9F + 29 01 00 00 00 00 02 2D 03 + 29 01 00 00 00 00 02 2F D1 + 29 01 00 00 00 00 02 30 03 + 29 01 00 00 00 00 02 31 FF + 29 01 00 00 00 00 02 32 00 + 29 01 00 00 00 00 02 33 00 + 29 01 00 00 00 00 02 34 00 + 29 01 00 00 00 00 02 35 09 + 29 01 00 00 00 00 02 36 00 + 29 01 00 00 00 00 02 37 1D + 29 01 00 00 00 00 02 38 00 + 29 01 00 00 00 00 02 39 2E + 29 01 00 00 00 00 02 3A 00 + 29 01 00 00 00 00 02 3B 3D + 29 01 00 00 00 00 02 3D 00 + 29 01 00 00 00 00 02 3F 4C + 29 01 00 00 00 00 02 40 00 + 29 01 00 00 00 00 02 41 59 + 29 01 00 00 00 00 02 42 00 + 29 01 00 00 00 00 02 43 66 + 29 01 00 00 00 00 02 44 00 + 29 01 00 00 00 00 02 45 73 + 29 01 00 00 00 00 02 46 00 + 29 01 00 00 00 00 02 47 A0 + 29 01 00 00 00 00 02 48 00 + 29 01 00 00 00 00 02 49 C7 + 29 01 00 00 00 00 02 4A 01 + 29 01 00 00 00 00 02 4B 0C + 29 01 00 00 00 00 02 4C 01 + 29 01 00 00 00 00 02 4D 46 + 29 01 00 00 00 00 02 4E 01 + 29 01 00 00 00 00 02 4F A4 + 29 01 00 00 00 00 02 50 01 + 29 01 00 00 00 00 02 51 F1 + 29 01 00 00 00 00 02 52 01 + 29 01 00 00 00 00 02 53 F3 + 29 01 00 00 00 00 02 54 02 + 29 01 00 00 00 00 02 55 36 + 29 01 00 00 00 00 02 56 02 + 29 01 00 00 00 00 02 58 7B + 29 01 00 00 00 00 02 59 02 + 29 01 00 00 00 00 02 5A A3 + 29 01 00 00 00 00 02 5B 02 + 29 01 00 00 00 00 02 5C D6 + 29 01 00 00 00 00 02 5D 02 + 29 01 00 00 00 00 02 5E F9 + 29 01 00 00 00 00 02 5F 03 + 29 01 00 00 00 00 02 60 26 + 29 01 00 00 00 00 02 61 03 + 29 01 00 00 00 00 02 62 34 + 29 01 00 00 00 00 02 63 03 + 29 01 00 00 00 00 02 64 43 + 29 01 00 00 00 00 02 65 03 + 29 01 00 00 00 00 02 66 55 + 29 01 00 00 00 00 02 67 03 + 29 01 00 00 00 00 02 68 6A + 29 01 00 00 00 00 02 69 03 + 29 01 00 00 00 00 02 6A 81 + 29 01 00 00 00 00 02 6B 03 + 29 01 00 00 00 00 02 6C 9F + 29 01 00 00 00 00 02 6D 03 + 29 01 00 00 00 00 02 6E D1 + 29 01 00 00 00 00 02 6F 03 + 29 01 00 00 00 00 02 70 FF + 29 01 00 00 00 00 02 71 00 + 29 01 00 00 00 00 02 72 00 + 29 01 00 00 00 00 02 73 00 + 29 01 00 00 00 00 02 74 09 + 29 01 00 00 00 00 02 75 00 + 29 01 00 00 00 00 02 76 1D + 29 01 00 00 00 00 02 77 00 + 29 01 00 00 00 00 02 78 2E + 29 01 00 00 00 00 02 79 00 + 29 01 00 00 00 00 02 7A 3D + 29 01 00 00 00 00 02 7B 00 + 29 01 00 00 00 00 02 7C 4C + 29 01 00 00 00 00 02 7D 00 + 29 01 00 00 00 00 02 7E 59 + 29 01 00 00 00 00 02 7F 00 + 29 01 00 00 00 00 02 80 66 + 29 01 00 00 00 00 02 81 00 + 29 01 00 00 00 00 02 82 73 + 29 01 00 00 00 00 02 83 00 + 29 01 00 00 00 00 02 84 A0 + 29 01 00 00 00 00 02 85 00 + 29 01 00 00 00 00 02 86 C7 + 29 01 00 00 00 00 02 87 01 + 29 01 00 00 00 00 02 88 0C + 29 01 00 00 00 00 02 89 01 + 29 01 00 00 00 00 02 8A 46 + 29 01 00 00 00 00 02 8B 01 + 29 01 00 00 00 00 02 8C A4 + 29 01 00 00 00 00 02 8D 01 + 29 01 00 00 00 00 02 8E F1 + 29 01 00 00 00 00 02 8F 01 + 29 01 00 00 00 00 02 90 F3 + 29 01 00 00 00 00 02 91 02 + 29 01 00 00 00 00 02 92 36 + 29 01 00 00 00 00 02 93 02 + 29 01 00 00 00 00 02 94 7B + 29 01 00 00 00 00 02 95 02 + 29 01 00 00 00 00 02 96 A3 + 29 01 00 00 00 00 02 97 02 + 29 01 00 00 00 00 02 98 D6 + 29 01 00 00 00 00 02 99 02 + 29 01 00 00 00 00 02 9A F9 + 29 01 00 00 00 00 02 9B 03 + 29 01 00 00 00 00 02 9C 26 + 29 01 00 00 00 00 02 9D 03 + 29 01 00 00 00 00 02 9E 34 + 29 01 00 00 00 00 02 9F 03 + 29 01 00 00 00 00 02 A0 43 + 29 01 00 00 00 00 02 A2 03 + 29 01 00 00 00 00 02 A3 55 + 29 01 00 00 00 00 02 A4 03 + 29 01 00 00 00 00 02 A5 6A + 29 01 00 00 00 00 02 A6 03 + 29 01 00 00 00 00 02 A7 81 + 29 01 00 00 00 00 02 A9 03 + 29 01 00 00 00 00 02 AA 9F + 29 01 00 00 00 00 02 AB 03 + 29 01 00 00 00 00 02 AC D1 + 29 01 00 00 00 00 02 AD 03 + 29 01 00 00 00 00 02 AE FF + 29 01 00 00 00 00 02 AF 00 + 29 01 00 00 00 00 02 B0 00 + 29 01 00 00 00 00 02 B1 00 + 29 01 00 00 00 00 02 B2 09 + 29 01 00 00 00 00 02 B3 00 + 29 01 00 00 00 00 02 B4 1D + 29 01 00 00 00 00 02 B5 00 + 29 01 00 00 00 00 02 B6 2E + 29 01 00 00 00 00 02 B7 00 + 29 01 00 00 00 00 02 B8 3D + 29 01 00 00 00 00 02 B9 00 + 29 01 00 00 00 00 02 BA 4C + 29 01 00 00 00 00 02 BB 00 + 29 01 00 00 00 00 02 BC 59 + 29 01 00 00 00 00 02 BD 00 + 29 01 00 00 00 00 02 BE 66 + 29 01 00 00 00 00 02 BF 00 + 29 01 00 00 00 00 02 C0 73 + 29 01 00 00 00 00 02 C1 00 + 29 01 00 00 00 00 02 C2 A0 + 29 01 00 00 00 00 02 C3 00 + 29 01 00 00 00 00 02 C4 C7 + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 C6 0C + 29 01 00 00 00 00 02 C7 01 + 29 01 00 00 00 00 02 C8 46 + 29 01 00 00 00 00 02 C9 01 + 29 01 00 00 00 00 02 CA A4 + 29 01 00 00 00 00 02 CB 01 + 29 01 00 00 00 00 02 CC F1 + 29 01 00 00 00 00 02 CD 01 + 29 01 00 00 00 00 02 CE F3 + 29 01 00 00 00 00 02 CF 02 + 29 01 00 00 00 00 02 D0 36 + 29 01 00 00 00 00 02 D1 02 + 29 01 00 00 00 00 02 D2 7B + 29 01 00 00 00 00 02 D3 02 + 29 01 00 00 00 00 02 D4 A3 + 29 01 00 00 00 00 02 D5 02 + 29 01 00 00 00 00 02 D6 D6 + 29 01 00 00 00 00 02 D7 02 + 29 01 00 00 00 00 02 D8 F9 + 29 01 00 00 00 00 02 D9 03 + 29 01 00 00 00 00 02 DA 26 + 29 01 00 00 00 00 02 DB 03 + 29 01 00 00 00 00 02 DC 34 + 29 01 00 00 00 00 02 DD 03 + 29 01 00 00 00 00 02 DE 43 + 29 01 00 00 00 00 02 DF 03 + 29 01 00 00 00 00 02 E0 55 + 29 01 00 00 00 00 02 E1 03 + 29 01 00 00 00 00 02 E2 6A + 29 01 00 00 00 00 02 E3 03 + 29 01 00 00 00 00 02 E4 81 + 29 01 00 00 00 00 02 E5 03 + 29 01 00 00 00 00 02 E6 9F + 29 01 00 00 00 00 02 E7 03 + 29 01 00 00 00 00 02 E8 D1 + 29 01 00 00 00 00 02 E9 03 + 29 01 00 00 00 00 02 EA FF + 29 01 00 00 00 00 02 FF 04 + 29 01 00 00 00 00 02 07 00 + 29 01 00 00 00 00 02 08 92 + 29 01 00 00 00 00 02 FF 00 + 29 01 00 00 05 00 02 FB 01 + 29 01 00 00 00 00 02 D3 09 + 29 01 00 00 00 00 02 D4 04 + 29 01 00 00 00 00 02 51 00 + 29 01 00 00 00 00 02 53 2c + 29 01 00 00 00 00 02 55 00 + 29 01 00 00 78 00 02 11 00 + 29 01 00 00 00 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [9e 43 37 00 60 58 39 45 5b 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x1e>; + qcom,mdss-dsi-t-clk-pre = <0x38>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-otm1283a-720p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-otm1283a-720p-video.dtsi new file mode 100644 index 00000000000..d241a1c2a00 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-otm1283a-720p-video.dtsi @@ -0,0 +1,191 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_otm1283a_720p_video: qcom,mdss_dsi_otm1283a_720p_video { + qcom,mdss-dsi-panel-name = "otm1283a 720p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <52>; + qcom,mdss-dsi-h-back-porch = <100>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <20>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 ff 12 83 01 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 ff 12 83 + 29 01 00 00 00 00 02 00 92 + 29 01 00 00 00 00 02 ff 30 + 29 01 00 00 00 00 02 00 93 + 29 01 00 00 00 00 02 ff 02 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0A c0 00 64 00 10 10 00 64 10 10 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 07 c0 00 5c 00 01 00 04 + 29 01 00 00 00 00 02 00 b3 + 29 01 00 00 00 00 03 c0 00 50 + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 c1 55 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 c4 49 + 29 01 00 00 00 00 02 00 e0 + 29 01 00 00 00 00 02 c0 c8 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0F c4 05 10 04 02 05 15 11 05 10 07 02 05 15 11 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 03 c4 00 00 + 29 01 00 00 00 00 02 00 91 + 29 01 00 00 00 00 03 c5 a6 d0 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 d8 c7 c7 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 d9 87 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 03 c5 04 38 + 29 01 00 00 00 00 02 00 bb + 29 01 00 00 00 00 02 c5 80 + 29 01 00 00 00 00 02 00 82 + 29 01 00 00 00 00 02 C4 02 + 29 01 00 00 00 00 02 00 c6 + 29 01 00 00 00 00 02 b0 03 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 d0 40 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 d1 00 00 + 29 01 00 00 00 00 02 00 b2 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b4 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b6 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 b8 + 29 01 00 00 00 00 03 f5 00 00 + 29 01 00 00 00 00 02 00 94 + 29 01 00 00 00 00 02 F5 02 + 29 01 00 00 00 00 02 00 BA + 29 01 00 00 00 00 02 F5 03 + 29 01 00 00 00 00 02 00 b4 + 29 01 00 00 00 00 02 c5 c0 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 05 f5 02 11 02 11 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 c5 50 + 29 01 00 00 00 00 02 00 94 + 29 01 00 00 00 00 02 c5 66 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0C cb 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 10 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 10 cb 05 05 05 05 05 05 05 05 05 00 05 00 00 00 00 + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 10 cb 00 00 00 00 05 00 00 05 05 05 05 05 05 05 05 + 29 01 00 00 00 00 02 00 e0 + 29 01 00 00 00 00 0F cb 05 00 05 00 00 00 00 00 00 00 00 05 00 00 + 29 01 00 00 00 00 02 00 f0 + 29 01 00 00 00 00 0C cb ff ff ff ff ff ff ff ff ff ff ff + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 10 cc 29 2a 0a 0c 0e 10 12 14 06 00 08 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 cc 00 00 00 00 02 00 00 29 2a 09 0b 0d 0f 11 13 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0F cc 05 00 07 00 00 00 00 00 00 00 00 01 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 10 cc 29 2a 13 11 0f 0d 0b 09 01 00 07 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 10 cc 00 00 00 00 05 00 00 29 2a 14 12 10 0e 0c 0a + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 0F cc 02 00 08 00 00 00 00 00 00 00 00 06 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0D ce 89 05 10 88 05 10 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0F ce 54 fc 10 54 fd 10 55 00 10 55 01 10 00 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0F ce 58 07 04 fc 00 10 00 58 06 04 fd 00 10 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 0F ce 58 05 04 fe 00 10 00 58 04 04 ff 00 10 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 0F ce 58 03 05 00 00 10 00 58 02 05 01 00 10 00 + 29 01 00 00 00 00 02 00 d0 + 29 01 00 00 00 00 0F ce 58 01 05 02 00 10 00 58 00 05 03 00 10 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0F cf 50 00 05 04 00 10 00 50 01 05 05 00 10 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0F cf 50 02 05 06 00 10 00 50 03 05 07 00 10 00 + 29 01 00 00 00 00 02 00 a0 + 29 01 00 00 00 00 0F cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 0F cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 c0 + 29 01 00 00 00 00 0C cf 39 39 20 20 00 00 01 01 20 00 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 11 e1 02 12 18 0E 07 0F 0B 09 04 07 0E 08 0F 12 0C 08 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 11 e2 02 12 18 0E 07 10 0B 0A 04 08 0E 08 0F 12 0C 08 + 29 01 00 00 00 00 02 00 b5 + 29 01 00 00 00 00 07 c5 0b 95 ff 0b 95 ff + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 ff ff ff ff + 29 01 00 00 78 00 02 11 00 + 29 01 00 00 00 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [92 1A 12 00 3E 42 16 1E 14 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-reset-sequence = <1 1>, <0 50>, <1 50>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-otm8019a-fwvga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-otm8019a-fwvga-video.dtsi new file mode 100644 index 00000000000..183bbe92adc --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-otm8019a-fwvga-video.dtsi @@ -0,0 +1,170 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_otm8019a_fwvga_video: qcom,mdss_dsi_otm8019a_fwvga_video { + qcom,mdss-dsi-panel-name = "otm8019a fwvga video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <480>; + qcom,mdss-dsi-panel-height = <854>; + qcom,mdss-dsi-h-front-porch = <46>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <4>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <15>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 FF 80 19 01 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 FF 80 19 + 29 01 00 00 00 00 02 00 B4 + 29 01 00 00 00 00 02 C0 70 + 29 01 00 00 00 00 02 00 88 + 29 01 00 00 00 00 02 C4 80 + 29 01 00 00 00 00 02 00 B6 + 29 01 00 00 00 00 02 C0 03 + 29 01 00 00 00 00 02 00 82 + 29 01 00 00 00 00 02 C5 B0 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 03 C5 6e 76 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 D8 6F 6F + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 D9 33 + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 C1 33 + 29 01 00 00 00 00 02 00 A3 + 29 01 00 00 00 00 02 C0 1B + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 C4 83 + 29 01 00 00 00 00 02 00 92 + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 00 B1 + 29 01 00 00 00 00 02 C5 A9 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 02 C4 30 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 02 C1 E8 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 02 c1 03 + 29 01 00 00 00 00 02 00 98 + 29 01 00 00 00 00 02 c0 00 + 29 01 00 00 00 00 02 00 a9 + 29 01 00 00 00 00 02 c0 06 + 29 01 00 00 00 00 02 00 b0 + 29 01 00 00 00 00 04 c1 20 00 00 + 29 01 00 00 00 00 02 00 e1 + 29 01 00 00 00 00 03 c0 40 18 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 b6 B4 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 02 B3 02 + 29 01 00 00 00 00 02 00 92 + 29 01 00 00 00 00 02 B3 45 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0a C0 00 58 00 15 15 00 58 15 15 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 07 C0 00 15 00 00 00 03 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 07 CE 8B 03 03 8A 03 03 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0F CE 23 58 01 23 59 01 33 5B 00 33 5C 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 0F CE 38 09 03 5A 00 03 00 38 08 03 5B 00 03 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0F CE 38 07 03 54 00 03 00 38 06 03 55 00 03 00 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 0F CE 38 05 03 56 00 03 00 38 04 03 57 00 03 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 0F CE 38 03 03 58 00 03 00 38 02 03 59 00 03 00 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 0B CF 3D 00 00 00 00 00 01 00 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0B CB 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 CB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 CB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0B CB 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 CB 00 00 15 15 15 15 15 00 15 15 00 15 15 15 15 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 CB 00 00 00 00 00 00 15 15 15 15 00 15 15 00 15 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 0B CB 15 15 15 15 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 0B CB FF FF FF FF FF FF FF FF FF FF + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0B CC 00 00 02 0A 0C 0E 10 00 21 22 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 CC 00 06 25 25 08 00 00 00 00 00 00 07 25 25 05 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 CC 00 22 21 00 0f 0d 0b 09 01 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0B CC 00 00 05 09 0F 0D 0B 00 21 22 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 CC 00 01 25 25 07 00 00 00 00 00 00 08 25 25 02 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 CC 00 22 21 00 0c 0e 10 0a 06 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 15 E1 00 07 14 29 3f 52 59 85 72 87 81 70 88 74 79 72 6a 61 55 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 15 E2 00 07 14 29 3f 52 59 85 72 87 81 70 88 74 79 72 6a 61 55 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 ff ff ff ff + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 28 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 0A 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_3012"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-panel-timings = [9E 1D 15 00 2E 2B 1A 1F 25 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x20>; + qcom,mdss-dsi-t-clk-pre = <0x2E>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi0-wqxga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi0-wqxga-video.dtsi new file mode 100644 index 00000000000..d9b0fddcbaf --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi0-wqxga-video.dtsi @@ -0,0 +1,63 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_sharp_video_0: qcom,mdss_dsi_sharp_wqxga_video_0 { + qcom,mdss-dsi-panel-name = "Dual 0 SHARP video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <800>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <76>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <2>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00 + 05 01 00 00 02 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 02 00 02 28 00 + 05 01 00 00 a0 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-broadcast-mode; + qcom,mdss-dsi-panel-timings = [32 36 24 00 66 68 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x07>; + qcom,mdss-dsi-t-clk-pre = <0x0d>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>; + qcom,mdss-dsi-bl-pmic-bank-select = <2>; + qcom,mdss-dsi-reset-sequence = <1 2>, <0 5>, <1 120>; + qcom,mdss-pan-physical-width-dimension = <83>; + qcom,mdss-pan-physical-height-dimension = <133>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi1-wqxga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi1-wqxga-video.dtsi new file mode 100644 index 00000000000..155afd9f374 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi1-wqxga-video.dtsi @@ -0,0 +1,60 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_sharp_video_1: qcom,mdss_dsi_sharp_wqxga_video_1 { + qcom,mdss-dsi-panel-name = "Dual 1 SHARP video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi1>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_2"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <800>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <76>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <2>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00 + 05 01 00 00 02 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 02 00 02 28 00 + 05 01 00 00 a0 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-broadcast-mode; + qcom,mdss-dsi-panel-timings = [32 36 24 00 66 68 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x07>; + qcom,mdss-dsi-t-clk-pre = <0x0d>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 2>, <0 5>, <1 120>; + qcom,mdss-pan-physical-width-dimension = <83>; + qcom,mdss-pan-physical-height-dimension = <133>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi new file mode 100644 index 00000000000..694973e4ff4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi @@ -0,0 +1,94 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_sim_cmd: qcom,mdss_dsi_sim_cmd{ + qcom,mdss-dsi-panel-name = "Simulator cmd mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,panel-ack-disabled; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi new file mode 100644 index 00000000000..a356dac1462 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi @@ -0,0 +1,62 @@ +/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_sim_vid: qcom,mdss_dsi_sim_video { + qcom,mdss-dsi-panel-name = "Simulator video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <640>; + qcom,mdss-dsi-panel-height = <480>; + qcom,mdss-dsi-h-front-porch = <6>; + qcom,mdss-dsi-h-back-porch = <6>; + qcom,mdss-dsi-h-pulse-width = <2>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <6>; + qcom,mdss-dsi-v-front-porch = <6>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-off-command = [22 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [00 00 00 00 00 00 00 00 00 00 00 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1b>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-gdsc-8916.dtsi b/arch/arm64/boot/dts/qcom/msm-gdsc-8916.dtsi new file mode 100644 index 00000000000..891e59867d8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-gdsc-8916.dtsi @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + gdsc_venus: qcom,gdsc@184c018 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus"; + reg = <0x184c018 0x4>; + status = "disabled"; + }; + + gdsc_mdss: qcom,gdsc@184d078 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mdss"; + reg = <0x184d078 0x4>; + status = "disabled"; + }; + + gdsc_jpeg: qcom,gdsc@185701c { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_jpeg"; + reg = <0x185701c 0x4>; + status = "disabled"; + }; + + gdsc_vfe: qcom,gdsc@1858034 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vfe"; + reg = <0x1858034 0x4>; + status = "disabled"; + }; + + gdsc_oxili_gx: qcom,gdsc@185901c { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_oxili_gx"; + reg = <0x185901c 0x4>; + status = "disabled"; + }; + + gdsc_venus_core0: qcom,gdsc@184c028 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core0"; + reg = <0x184c028 0x4>; + status = "disabled"; + }; + + gdsc_venus_core1: qcom,gdsc@184c030 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core1"; + reg = <0x184c030 0x4>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-gdsc.dtsi b/arch/arm64/boot/dts/qcom/msm-gdsc.dtsi new file mode 100644 index 00000000000..9a1f32eb0c7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-gdsc.dtsi @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + gdsc_venus: qcom,gdsc@fd8c1024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus"; + reg = <0xfd8c1024 0x4>; + status = "disabled"; + }; + + gdsc_venus_core0: qcom,gdsc@fd8c1040 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core0"; + reg = <0xfd8c1040 0x4>; + status = "disabled"; + }; + + gdsc_venus_core1: qcom,gdsc@fd8c1044 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core1"; + reg = <0xfd8c1044 0x4>; + status = "disabled"; + }; + + gdsc_venus_core2: qcom,gdsc@fd8c1050 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core2"; + reg = <0xfd8c1050 0x4>; + status = "disabled"; + }; + + gdsc_vpu: qcom,gdsc@fd8c1404 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vpu"; + reg = <0xfd8c1404 0x4>; + status = "disabled"; + }; + + gdsc_camss_top: qcom,gdsc@fd8c34a0 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_camss_top"; + reg = <0xfd8c34a0 0x4>; + status = "disabled"; + }; + + gdsc_mdss: qcom,gdsc@fd8c2304 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mdss"; + reg = <0xfd8c2304 0x4>; + status = "disabled"; + }; + + gdsc_jpeg: qcom,gdsc@fd8c35a4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_jpeg"; + reg = <0xfd8c35a4 0x4>; + status = "disabled"; + }; + + gdsc_vfe: qcom,gdsc@fd8c36a4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vfe"; + reg = <0xfd8c36a4 0x4>; + status = "disabled"; + }; + + gdsc_cpp: qcom,gdsc@fd8c36d4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_cpp"; + reg = <0xfd8c36d4 0x4>; + status = "disabled"; + }; + + gdsc_oxili_gx: qcom,gdsc@fd8c4024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_oxili_gx"; + reg = <0xfd8c4024 0x4>; + status = "disabled"; + }; + + gdsc_oxili_cx: qcom,gdsc@fd8c4034 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_oxili_cx"; + reg = <0xfd8c4034 0x4>; + status = "disabled"; + }; + + gdsc_usb_hsic: qcom,gdsc@fc400404 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_usb_hsic"; + reg = <0xfc400404 0x4>; + status = "disabled"; + }; + + gdsc_pcie: qcom,gdsc@0xfc401e18 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie"; + reg = <0xfc401e18 0x4>; + status = "disabled"; + }; + + gdsc_pcie_0: qcom,gdsc@fc401ac4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie_0"; + reg = <0xfc401ac4 0x4>; + status = "disabled"; + }; + + gdsc_pcie_1: qcom,gdsc@fc401b44 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie_1"; + reg = <0xfc401b44 0x4>; + status = "disabled"; + }; + + gdsc_usb30: qcom,gdsc@fc401e84 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_usb30"; + reg = <0xfc401e84 0x4>; + status = "disabled"; + }; + + gdsc_usb30_sec: qcom,gdsc@fc401ec0 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_usb30_sec"; + reg = <0xfc401ec0 0x4>; + status = "disabled"; + }; + + gdsc_vcap: qcom,gdsc@fd8c1804 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vcap"; + reg = <0xfd8c1804 0x4>; + status = "disabled"; + }; + + gdsc_bcss: qcom,gdsc@fc744128 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_bcss"; + reg = <0xfc744128 0x4>; + status = "disabled"; + }; + + gdsc_ufs: qcom,gdsc@fc401d44 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_ufs"; + reg = <0xfc401d44 0x4>; + status = "disabled"; + }; + + gdsc_fd: qcom,gdsc@fd8c3b64 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_fd"; + reg = <0xfd8c3b64 0x4>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-iommu-v1.dtsi b/arch/arm64/boot/dts/qcom/msm-iommu-v1.dtsi new file mode 100644 index 00000000000..911d83c1092 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-iommu-v1.dtsi @@ -0,0 +1,1513 @@ +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + jpeg_iommu: qcom,iommu@fda64000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfda64000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 67 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,needs-alt-core-clk; + label = "jpeg_iommu"; + status = "disabled"; + qcom,msm-bus,name = "jpeg_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <62 512 0 0>, + <62 512 0 1000>; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x20ac + 0x215c + 0x220c + 0x2008 + 0x200c + 0x2010 + 0x2014>; + + qcom,iommu-bfb-data = <0x0000ffff + 0x0 + 0x4 + 0x4 + 0x0 + 0x0 + 0x10 + 0x50 + 0x0 + 0x10 + 0x20 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-ctx@fda6c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda6c000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0>; + label = "jpeg_enc0"; + }; + + qcom,iommu-ctx@fda6d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda6d000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <1>; + label = "jpeg_enc1"; + }; + + qcom,iommu-ctx@fda6e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda6e000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <2>; + label = "jpeg_dec"; + }; + }; + + mdp_iommu: qcom,iommu@fd928000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfd928000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 73 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <1>; + label = "mdp_iommu"; + qcom,msm-bus,name = "mdp_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, + <22 512 0 1000>; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x2314 + 0x2394 + 0x2414 + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018 + 0x201c + 0x2020>; + + qcom,iommu-bfb-data = <0xffffffff + 0x0 + 0x00000004 + 0x00000010 + 0x00000000 + 0x00000000 + 0x00000034 + 0x00000044 + 0x0 + 0x34 + 0x74 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-ctx@fd930000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd930000 0x1000>; + interrupts = <0 47 0>; + qcom,iommu-ctx-sids = <0>; + label = "mdp_0"; + }; + + qcom,iommu-ctx@fd931000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd931000 0x1000>; + interrupts = <0 47 0>, <0 46 0>; + qcom,iommu-ctx-sids = <1>; + label = "mdp_1"; + qcom,secure-context; + }; + + qcom,iommu-ctx@fd932000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd932000 0x1000>; + interrupts = <0 47 0>, <0 46 0>; + qcom,iommu-ctx-sids = <>; + label = "mdp_2"; + qcom,secure-context; + }; + }; + + venus_iommu: qcom,iommu@fdc84000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfdc84000 0x10000 + 0xfdce0004 0x4>; + reg-names = "iommu_base", "clk_base"; + interrupts = <0 45 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <0>; + qcom,needs-alt-core-clk; + label = "venus_iommu"; + qcom,msm-bus,name = "venus_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 0 1000>; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x2314 + 0x2394 + 0x2414 + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018 + 0x201c + 0x2020 + 0x2024 + 0x2028 + 0x202c + 0x2030 + 0x2034 + 0x2038>; + + qcom,iommu-bfb-data = <0xffffffff + 0xffffffff + 0x00000004 + 0x00000008 + 0x00000000 + 0x00000000 + 0x00000094 + 0x000000b4 + 0x0 + 0x94 + 0x114 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + venus_ns: qcom,iommu-ctx@fdc8c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdc8c000 0x1000>; + interrupts = <0 42 0>; + qcom,iommu-ctx-sids = <0 1 2 3 4 5>; + label = "venus_ns"; + }; + + venus_cp: qcom,iommu-ctx@fdc8d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdc8d000 0x1000>; + interrupts = <0 42 0>, <0 43 0>; + qcom,iommu-ctx-sids = <0x80 0x81 0x82 0x83 0x84 0x85>; + label = "venus_cp"; + qcom,secure-context; + }; + + venus_fw: qcom,iommu-ctx@fdc8e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdc8e000 0x1000>; + interrupts = <0 42 0>, <0 43 0>; + qcom,iommu-ctx-sids = <0xc0 0xc6>; + label = "venus_fw"; + qcom,secure-context; + }; + }; + + kgsl_iommu: qcom,iommu@fdb10000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfdb10000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 38 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + label = "kgsl_iommu"; + qcom,msm-bus,name = "kgsl_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <26 512 0 0>, + <26 512 0 1000>; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x2314 + 0x2394 + 0x2414 + 0x2008>; + + qcom,iommu-bfb-data = <0x00000003 + 0x0 + 0x00000004 + 0x00000010 + 0x00000000 + 0x00000000 + 0x00000001 + 0x00000021 + 0x0 + 0x1 + 0x81 + 0x0>; + + qcom,iommu-ctx@fdb18000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdb18000 0x1000>; + interrupts = <0 241 0>; + qcom,iommu-ctx-sids = <0>; + label = "gfx3d_user"; + }; + + qcom,iommu-ctx@fdb19000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdb19000 0x1000>; + interrupts = <0 241 0>; + qcom,iommu-ctx-sids = <1>; + label = "gfx3d_priv"; + }; + + qcom,iommu-ctx@fdb1a000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdb1a000 0x1000>; + interrupts = <0 241 0>; + qcom,iommu-ctx-sids = <2>; + label = "gfx3d_spare"; + }; + + }; + + vfe_iommu: qcom,iommu@fda44000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfda44000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 62 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <19>; + qcom,needs-alt-core-clk; + label = "vfe_iommu"; + qcom,msm-bus,name = "vfe_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <29 512 0 0>, + <29 512 0 1000>; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x20ac + 0x215c + 0x220c + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018 + 0x201c + 0x2020>; + + qcom,iommu-bfb-data = <0xffffffff + 0x00000000 + 0x4 + 0x8 + 0x0 + 0x0 + 0x20 + 0x78 + 0x0 + 0x20 + 0x36 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-ctx@fda4c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda4c000 0x1000>; + interrupts = <0 65 0>; + qcom,iommu-ctx-sids = <0 1>; + label = "vfe"; + }; + + qcom,iommu-ctx@fda4d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda4d000 0x1000>; + interrupts = <0 65 0>; + qcom,iommu-ctx-sids = <2>; + label = "cpp"; + }; + + qcom,iommu-ctx@fda4e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda4e000 0x1000>; + interrupts = <0 65 0>, <0 64 0>; + qcom,iommu-ctx-sids = <>; + label = "vfe_secure"; + qcom,secure-context; + }; + }; + + copss_iommu: qcom,iommu@f9bc4000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xf9bc4000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 153 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <8>; + label = "copss_iommu"; + qcom,msm-bus,name = "copss_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <88 512 0 0>, + <88 512 0 1000>; + status = "disabled"; + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0a + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008>; + + qcom,iommu-bfb-data = <0x3 + 0x4 + 0x4 + 0x0 + 0x0 + 0x0 + 0x1 + 0x0 + 0x0 + 0x40 + 0x44 + 0x0 + 0x0>; + + qcom,iommu-lpae-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2000 + 0x2008>; + + qcom,iommu-lpae-bfb-data = <0x3 + 0x0 + 0x4 + 0x4 + 0x0 + 0x5 + 0x0 + 0x1 + 0x0 + 0x0 + 0x40 + 0x44 + 0x3 + 0x0>; + + + copss_cb0: qcom,iommu-ctx@f9bcc000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bcc000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <0>; + label = "copss_cb0"; + }; + + copss_cb1: qcom,iommu-ctx@f9bcd000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bcd000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <1>; + label = "copss_cb1"; + }; + + copss_usb: qcom,iommu-ctx@f9bce000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bce000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <2>; + label = "copss_usb"; + }; + + copss_cb3: qcom,iommu-ctx@f9bcf000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bcf000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <3>; + label = "copss_cb3"; + }; + + copss_cb4: qcom,iommu-ctx@f9bd0000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bd0000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <4>; + label = "copss_cb4"; + }; + + copss_cb5: qcom,iommu-ctx@f9bd1000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bd1000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <5>; + label = "copss_cb5"; + }; + + copss_cb6: qcom,iommu-ctx@f9bd2000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bd2000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <6>; + label = "copss_cb6"; + }; + + copss_cb_7: qcom,iommu-ctx@f9bd3000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xf9bd3000 0x1000>; + interrupts = <0 142 0>; + qcom,iommu-ctx-sids = <7>; + label = "copss_cb7"; + }; + }; + + vpu_iommu: qcom,iommu@fdee4000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfdee4000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 147 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <7>; + label = "vpu_iommu"; + qcom,msm-bus,name = "vpu_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <93 512 0 0>, + <93 512 0 1000>; + status = "disabled"; + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0a + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2008 + 0x200c + 0x2010 + 0x2014>; + + qcom,iommu-bfb-data = <0xffff + 0x4 + 0x10 + 0x0 + 0x0 + 0xf + 0x4b + 0x0 + 0x1e00 + 0x1e00 + 0x5a0f + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-lpae-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2008 + 0x200c + 0x2010 + 0x2000 + 0x2014>; + + qcom,iommu-lpae-bfb-data = <0xffff + 0x0 + 0x4 + 0x10 + 0x0 + 0x0 + 0xf + 0x4b + 0x1e00 + 0x5a2d + 0x1e00 + 0x5a0f + 0x0 + 0x0 + 0x0 + 0x3 + 0x0>; + + + vpu_hlos: qcom,iommu-ctx@fdeec000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdeec000 0x1000>; + interrupts = <0 145 0>; + qcom,iommu-ctx-sids = <0 1 3>; + label = "vpu_hlos"; + }; + + vpu_cp: qcom,iommu-ctx@fdeed000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdeed000 0x1000>; + interrupts = <0 145 0>, <0 144 0>; + qcom,iommu-ctx-sids = <8 9>; + label = "vpu_cp"; + qcom,secure-context; + }; + + vpu_fw: qcom,iommu-ctx@fdeee000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdeee000 0x1000>; + interrupts = <0 145 0>, <0 144 0>; + qcom,iommu-ctx-sids = <5 7 15>; + label = "vpu_fw"; + qcom,secure-context; + }; + }; + + lpass_qdsp_iommu: qcom,iommu@fe054000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfe054000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 202 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <2>; + label = "lpass_qdsp_iommu"; + status = "disabled"; + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0a + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008>; + + qcom,iommu-bfb-data = <0x3 + 0x4 + 0x4 + 0x0 + 0x0 + 0x0 + 0x10 + 0x0 + 0x0 + 0x15e + 0x19e + 0x0 + 0x0>; + + qcom,iommu-lpae-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2000 + 0x2008>; + + qcom,iommu-lpae-bfb-data = <0x3 + 0x0 + 0x4 + 0x4 + 0x0 + 0x20 + 0x0 + 0x10 + 0x0 + 0x0 + 0x15e + 0x19e + 0x3 + 0x0>; + + + lpass_q6_fw: qcom,iommu-ctx@fe05c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe05c000 0x1000>; + interrupts = <0 265 0>, <0 203 0>; + qcom,iommu-ctx-sids = <0 15>; + label = "q6_fw"; + qcom,secure-context; + }; + + lpass_audio_shared: qcom,iommu-ctx@fe05d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe05d000 0x1000>; + interrupts = <0 265 0>; + qcom,iommu-ctx-sids = <1>; + label = "audio_shared"; + }; + + lpass_q6_spare1: qcom,iommu-ctx@fe05e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe05e000 0x1000>; + interrupts = <0 265 0>; + qcom,iommu-ctx-sids = <2>; + label = "q6_spare1"; + }; + + lpass_q6_spare2: qcom,iommu-ctx@fe05f000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe05f000 0x1000>; + interrupts = <0 265 0>; + qcom,iommu-ctx-sids = <3 4 5 6 7 8 9 10 11 12 13 14>; + label = "q6_spare2"; + }; + }; + + lpass_core_iommu: qcom,iommu@fe064000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfe064000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 166 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <6>; + label = "lpass_core_iommu"; + status = "disabled"; + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0a + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008>; + + qcom,iommu-bfb-data = <0x3 + 0x4 + 0x4 + 0x0 + 0x0 + 0x0 + 0x4 + 0x0 + 0x0 + 0x40 + 0x50 + 0x0 + 0x0>; + + qcom,iommu-lpae-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2000 + 0x2008>; + + qcom,iommu-lpae-bfb-data = <0x3 + 0x0 + 0x4 + 0x4 + 0x0 + 0xc + 0x0 + 0x4 + 0x0 + 0x0 + 0x40 + 0x50 + 0x3 + 0x0>; + + + lpass_core_image: qcom,iommu-ctx@fe06c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe06c000 0x1000>; + interrupts = <0 267 0>, <0 180 0>; + qcom,iommu-ctx-sids = <11>; + label = "lpass_core_image"; + qcom,secure-context; + }; + + lpass_core_audio: qcom,iommu-ctx@fe06d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe06d000 0x1000>; + interrupts = <0 267 0>; + qcom,iommu-ctx-sids = <12>; + label = "lpass_core_audio"; + }; + + lpass_core_slimbus: qcom,iommu-ctx@fe06e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfe06e000 0x1000>; + interrupts = <0 267 0>; + qcom,iommu-ctx-sids = <13>; + label = "lpass_core_slimbus"; + }; + }; + + vcap_iommu: qcom,iommu@fdfb6000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfdfb6000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 315 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,needs-alt-core-clk; + label = "vcap_iommu"; + status = "disabled"; + qcom,msm-bus,name = "vcap_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <48 512 0 0>, + <48 512 0 1000>; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2008 + 0x200c + 0x2060>; + + qcom,iommu-bfb-data = <0x0ff + 0x00000004 + 0x00000008 + 0x0 + 0x0 + 0x00000008 + 0x00000028 + 0x0 + 0x001000 + 0x001000 + 0x003008 + 0x0 + 0x0 + 0x0 + 0x1555>; + + qcom,iommu-ctx@fdfbe000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdfbe000 0x1000>; + interrupts = <0 313 0>; + qcom,iommu-ctx-sids = <0>; + label = "vcap_cb0"; + }; + + qcom,iommu-ctx@fdfbf000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdfbf000 0x1000>; + interrupts = <0 313 0>; + qcom,iommu-ctx-sids = <1>; + label = "vcap_cb1"; + }; + + qcom,iommu-ctx@fdfc0000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdfc0000 0x1000>; + interrupts = <0 313 0>; + qcom,iommu-ctx-sids = <>; + label = "vcap_cb2"; + }; + }; + + bcast_iommu: qcom,iommu@fc734000{ + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfc734000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 279 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + label = "bcast_iommu"; + qcom,iommu-secure-id = <13>; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x204c + 0x2050 + 0x2514 + 0x2540 + 0x256c + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018 + 0x201c + 0x2020 + 0x2060>; + + qcom,iommu-bfb-data = <0xffffffff + 0x1 + 0x0000004 + 0x0000004 + 0x0 + 0x0 + 0x000055 + 0x0000d9 + 0x0 + 0x000aa00 + 0x0004200 + 0x000e821 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x1555>; + + bcast_cb0_hlos: qcom,iommu-ctx@fc73c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfc73c000 0x1000>; + interrupts = <0 276 0>; + qcom,iommu-ctx-sids = <0 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 + 16 17 18 19 20 21 22 23 + 24 25 26 27 28 29 30 31>; + label = "bcast_cb0_hlos"; + }; + + bcast_cb1_cpz: qcom,iommu-ctx@fc73d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfc73d000 0x1000>; + interrupts = <0 276 0>; + qcom,iommu-ctx-sids = <32 33 34 35 36 37 38 39 + 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 + 56 57 58 59 60 61 62>; + label = "bcast_cb1_cpz"; + qcom,secure-context; + }; + + bcast_cb2_demod: qcom,iommu-ctx@fc73e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfc73e000 0x1000>; + interrupts = <0 276 0>; + qcom,iommu-ctx-sids = <63>; + label = "bcast_cb2_demod"; + qcom,secure-context; + }; + + bcast_cb3_apz: qcom,iommu-ctx@fc73f000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfc73f000 0x1000>; + interrupts = <0 276 0>; + qcom,iommu-ctx-sids = <>; + label = "bcast_cb3_apz"; + qcom,secure-context; + }; + }; + + fd_iommu: qcom,iommu@0xfd864000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfd864000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 314 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + label = "fd_iommu"; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008>; + + qcom,iommu-bfb-data = <0x00000003 + 0x00000007 + 0x1555 + 0x0 + 0x00000004 + 0x00000008 + 0x0601 + 0x1a0d + 0x0400 + 0x1a02 + 0x0 + 0x00000000 + 0x00000002 + 0x0000000a + 0x0>; + + qcom,iommu-ctx@fd86c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd86c000 0x1000>; + interrupts = <0 318 0>; + qcom,iommu-ctx-sids = <0>; + label = "camera_fd"; + }; + + qcom,iommu-ctx@fd86d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd86d000 0x1000>; + interrupts = <0 318 0>; + qcom,iommu-ctx-sids = <>; + label = "fd_1"; + }; + + qcom,iommu-ctx@fd86e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd86e000 0x1000>; + interrupts = <0 318 0>; + qcom,iommu-ctx-sids = <>; + label = "fd_2"; + }; + }; + + cpp_iommu: qcom,iommu@0xfda84000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfda84000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 264 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + label = "cpp_iommu"; + status = "disabled"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x200c>; + + qcom,iommu-bfb-data = <0x00000003 + 0x3ff + 0x1555 + 0x0 + 0x00000004 + 0x10 + 0x1400 + 0x164b2 + 0x1400 + 0x1640a + 0x0 + 0x00000000 + 0x0000000a + 0x32 + 0x0 + 0x0>; + + qcom,iommu-ctx@fda8c000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda8c000 0x1000>; + interrupts = <0 266 0>; + qcom,iommu-ctx-sids = <2>; + label = "cpp_0"; + }; + + qcom,iommu-ctx@fda8d000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda8d000 0x1000>; + interrupts = <0 266 0>; + qcom,iommu-ctx-sids = <>; + label = "cpp_1"; + }; + + qcom,iommu-ctx@fda8e000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda8e000 0x1000>; + interrupts = <0 266 0>; + qcom,iommu-ctx-sids = <>; + label = "cpp_2"; + }; + }; + +}; diff --git a/arch/arm64/boot/dts/qcom/msm-iommu-v2.dtsi b/arch/arm64/boot/dts/qcom/msm-iommu-v2.dtsi new file mode 100644 index 00000000000..2aa3828704d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-iommu-v2.dtsi @@ -0,0 +1,238 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + gfx_iommu: qcom,iommu@1f00000 { + compatible = "qcom,msm-smmu-v2", "qcom,msm-mmu-500"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0x1f00000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 43 0>, <0 42 0>; + interrupt-names = "global_cfg_NS_irq", "global_cfg_S_irq"; + label = "gfx_iommu"; + qcom,iommu-secure-id = <18>; + clocks = <&clock_gcc clk_gcc_smmu_cfg_clk>, + <&clock_gcc clk_gcc_gfx_tcu_clk>; + clock-names = "iface_clk", "core_clk"; + status = "disabled"; + + qcom,iommu-ctx@1f09000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1f09000 0x1000>; + interrupts = <0 241 0>; + qcom,iommu-ctx-sids = <0>; + label = "gfx3d_user"; + }; + + qcom,iommu-ctx@1f0a000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1f0a000 0x1000>; + interrupts = <0 242 0>; + qcom,iommu-ctx-sids = <1>; + label = "gfx3d_priv"; + }; + }; + + apps_iommu: qcom,iommu@1e00000 { + compatible = "qcom,msm-smmu-v2", "qcom,msm-mmu-500"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0x1e00000 0x40000 + 0x1ef0000 0x3000>; + reg-names = "iommu_base", "smmu_local_base"; + interrupts = <0 43 0>, <0 42 0>; + interrupt-names = "global_cfg_NS_irq", "global_cfg_S_irq"; + label = "apps_iommu"; + qcom,iommu-secure-id = <17>; + clocks = <&clock_gcc clk_gcc_smmu_cfg_clk>, + <&clock_gcc clk_gcc_apss_tcu_clk>; + clock-names = "iface_clk", "core_clk"; + qcom,cb-base-offset = <0x20000>; + status = "disabled"; + + qcom,iommu-ctx@1e22000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e22000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x2000>; + label = "jpeg_enc0"; + }; + + qcom,iommu-ctx@1e23000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e23000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x400>; + label = "vfe"; + }; + + qcom,iommu-ctx@1e24000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e24000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0xc00>; + label = "mdp_0"; + }; + + venus_ns: qcom,iommu-ctx@1e25000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e25000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x800 0x801 0x802 0x803 + 0x804 0x805 0x807>; + label = "venus_ns"; + }; + + qcom,iommu-ctx@1e26000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e26000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x402>; + label = "cpp"; + }; + + qcom,iommu-ctx@1e27000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e27000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x1000>; + label = "mDSP"; + }; + + qcom,iommu-ctx@1e28000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e28000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x1400>; + label = "gss"; + }; + + qcom,iommu-ctx@1e29000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e29000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x1800>; + label = "a2"; + }; + + qcom,iommu-ctx@1e32000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e32000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0xc01>; + label = "mdp_1"; + }; + + venus_sec_pixel: qcom,iommu-ctx@1e33000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e33000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0x885>; + label = "venus_sec_pixel"; + }; + + venus_sec_bitstream: qcom,iommu-ctx@1e34000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e34000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0x880 0x881 0x882 0x883 0x884>; + label = "venus_sec_bitstream"; + }; + + venus_sec_non_pixel: qcom,iommu-ctx@1e35000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e35000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0x887 0x8a0>; + label = "venus_sec_non_pixel"; + }; + + venus_fw: qcom,iommu-ctx@1e36000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e36000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0x8c0 0x8c6>; + label = "venus_fw"; + }; + + periph_rpm: qcom,iommu-ctx@1e37000 { + compatible = "qcom,msm-smmu-v2-ctx"; + qcom,secure-context; + reg = <0x1e37000 0x1000>; + interrupts = <0 70 0>, <0 70 0>; + qcom,iommu-ctx-sids = <0x40>; + label = "periph_rpm"; + }; + + qcom,iommu-ctx@1e38000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e38000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0xC0 0xC4 0xC8 0xCC 0xD0 0xD3 + 0xD4 0xD7 0xD8 0xDB 0xDC 0xDF + 0xF0 0xF3 0xF4 0xF7 0xF8 0xFB + 0xFC 0xFF>; + label = "periph_CE"; + }; + + qcom,iommu-ctx@1e39000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e39000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x280 0x283 0x284 0x287 0x288 + 0x28B 0x28C 0x28F 0x290 0x293 + 0x294 0x297 0x298 0x29B 0x29C + 0x29F>; + label = "periph_BLSP"; + }; + + qcom,iommu-ctx@1e3a000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e3a000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x100>; + label = "periph_SDC1"; + }; + + qcom,iommu-ctx@1e3b000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e3b000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x140>; + label = "periph_SDC2"; + }; + + qcom,iommu-ctx@1e3c000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e3c000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x1c0>; + label = "periph_audio"; + }; + + qcom,iommu-ctx@1e3d000 { + compatible = "qcom,msm-smmu-v2-ctx"; + reg = <0x1e3d000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <0x2c0>; + label = "periph_USB_HS1"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8916-rpm-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8916-rpm-regulator.dtsi new file mode 100644 index 00000000000..d5b7ea55c72 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8916-rpm-regulator.dtsi @@ -0,0 +1,365 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&rpm_bus { + rpm-regulator-smpa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <1>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <3>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <4>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <1>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <2>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <3>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <4>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa5 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <5>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l5 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l5"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa6 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <6>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l6 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l6"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa7 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <7>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l7 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l7"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa8 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <8>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l8 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l8"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa9 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <9>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l9 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l9"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa10 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <10>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l10 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l10"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa11 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <11>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l11 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l11"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa12 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <12>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l12 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l12"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa13 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <13>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l13 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l13"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa14 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <14>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l14 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l14"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa15 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <15>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l15 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l15"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa16 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <16>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l16 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l16"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa17 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <17>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l17 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l17"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa18 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <18>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l18 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l18"; + qcom,set = <3>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8916.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8916.dtsi new file mode 100644 index 00000000000..6fe1957888e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8916.dtsi @@ -0,0 +1,636 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + + qcom,pm8916@0 { + spmi-slave-container; + reg = <0x0>; + #address-cells = <1>; + #size-cells = <1>; + + pm8916_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + pm8916_pon: qcom,power-on@800 { + compatible = "qcom,qpnp-power-on"; + reg = <0x800 0x100>; + interrupts = <0x0 0x8 0x0>, + <0x0 0x8 0x1>; + interrupt-names = "kpdpwr", "resin"; + qcom,pon-dbc-delay = <15625>; + qcom,system-reset; + qcom,clear-warm-reset; + + qcom,pon_1 { + qcom,pon-type = <0>; + qcom,support-reset = <1>; + qcom,pull-up = <1>; + qcom,s1-timer = <10256>; + qcom,s2-timer = <2000>; + qcom,s2-type = <1>; + linux,code = <116>; + }; + + qcom,pon_2 { + qcom,pon-type = <1>; + qcom,pull-up = <1>; + linux,code = <114>; + }; + }; + + pm8916_mpps: mpps { + compatible = "qcom,qpnp-pin"; + spmi-dev-container; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8916-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + }; + }; + + pm8916_gpios: gpios { + compatible = "qcom,qpnp-pin"; + spmi-dev-container; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8916-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + }; + + gpio@c200 { + reg = <0xc200 0x100>; + qcom,pin-num = <3>; + }; + + gpio@c300 { + reg = <0xc300 0x100>; + qcom,pin-num = <4>; + }; + }; + + pm8916_rtc: qcom,pm8916_rtc { + spmi-dev-container; + compatible = "qcom,qpnp-rtc"; + #address-cells = <1>; + #size-cells = <1>; + qcom,qpnp-rtc-write = <0>; + qcom,qpnp-rtc-alarm-pwrup = <0>; + + qcom,pm8916_rtc_rw@6000 { + reg = <0x6000 0x100>; + }; + qcom,pm8916_rtc_alarm@6100 { + reg = <0x6100 0x100>; + interrupts = <0x0 0x61 0x1>; + }; + }; + + pm8916_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x31 0x0>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + qcom,pmic-revid = <&pm8916_revid>; + + chan@8 { + label = "die_temp"; + reg = <8>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <3>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@9 { + label = "ref_625mv"; + reg = <9>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@a { + label = "ref_1250v"; + reg = <0xa>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + }; + + pm8916_tz: qcom,temp-alarm@2400 { + compatible = "qcom,qpnp-temp-alarm"; + reg = <0x2400 0x100>; + interrupts = <0x0 0x24 0x0>; + label = "pm8916_tz"; + qcom,channel-num = <8>; + qcom,threshold-set = <0>; + qcom,temp_alarm-vadc = <&pm8916_vadc>; + }; + + pm8916_adc_tm: vadc@3400 { + compatible = "qcom,qpnp-adc-tm"; + reg = <0x3400 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x34 0x0>, + <0x0 0x34 0x3>, + <0x0 0x34 0x4>; + interrupt-names = "eoc-int-en-set", + "high-thr-en-set", + "low-thr-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,adc_tm-vadc = <&pm8916_vadc>; + qcom,pmic-revid = <&pm8916_revid>; + }; + + pm8916_chg: qcom,charger { + spmi-dev-container; + compatible = "qcom,qpnp-linear-charger"; + #address-cells = <1>; + #size-cells = <1>; + + qcom,vddmax-mv = <4200>; + qcom,vddsafe-mv = <4200>; + qcom,vinmin-mv = <4308>; + qcom,ibatsafe-ma = <1440>; + qcom,thermal-mitigation = <1440 720 630 0>; + qcom,cool-bat-decidegc = <100>; + qcom,warm-bat-decidegc = <450>; + qcom,cool-bat-mv = <4100>; + qcom,warm-bat-mv = <4100>; + qcom,ibatmax-warm-ma = <360>; + qcom,ibatmax-cool-ma = <360>; + qcom,batt-hot-percentage = <25>; + qcom,batt-cold-percentage = <80>; + qcom,tchg-mins = <232>; + qcom,resume-soc = <99>; + qcom,chg-vadc = <&pm8916_vadc>; + qcom,chg-adc_tm = <&pm8916_adc_tm>; + + status = "disabled"; + + qcom,chgr@1000 { + reg = <0x1000 0x100>; + interrupts = <0x0 0x10 0x7>, + <0x0 0x10 0x6>, + <0x0 0x10 0x5>, + <0x0 0x10 0x0>; + interrupt-names = "chg-done", + "chg-failed", + "fast-chg-on", + "vbat-det-lo"; + }; + + qcom,bat-if@1200 { + reg = <0x1200 0x100>; + interrupts = <0x0 0x12 0x1>, + <0x0 0x12 0x0>; + interrupt-names = "bat-temp-ok", + "batt-pres"; + }; + + qcom,usb-chgpth@1300 { + reg = <0x1300 0x100>; + interrupts = <0 0x13 0x4>, + <0 0x13 0x2>, + <0 0x13 0x1>; + interrupt-names = "usb-over-temp", + "chg-gone", + "usbin-valid"; + }; + + qcom,chg-misc@1600 { + reg = <0x1600 0x100>; + }; + }; + + pm8916_bms: qcom,vmbms { + spmi-dev-container; + compatible = "qcom,qpnp-vm-bms"; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + + qcom,v-cutoff-uv = <3400000>; + qcom,max-voltage-uv = <4200000>; + qcom,r-conn-mohm = <0>; + qcom,shutdown-soc-valid-limit = <100>; + qcom,low-soc-calculate-soc-threshold = <15>; + qcom,low-voltage-calculate-soc-ms = <1000>; + qcom,low-soc-calculate-soc-ms = <5000>; + qcom,calculate-soc-ms = <20000>; + qcom,volatge-soc-timeout-ms = <60000>; + qcom,low-voltage-threshold = <3450000>; + qcom,s3-ocv-tolerence-uv = <1200>; + qcom,s2-fifo-length = <5>; + qcom,low-soc-fifo-length = <2>; + qcom,bms-vadc = <&pm8916_vadc>; + qcom,bms-adc_tm = <&pm8916_adc_tm>; + qcom,pmic-revid = <&pm8916_revid>; + + qcom,force-s3-on-suspend; + qcom,force-s2-in-charging; + qcom,report-charger-eoc; + + qcom,batt-pres-status@1208 { + reg = <0x1208 0x1>; + }; + + qcom,qpnp-chg-pres@1008 { + reg = <0x1008 0x1>; + }; + + qcom,vm-bms@4000 { + reg = <0x4000 0x100>; + interrupts = <0x0 0x40 0x0>, + <0x0 0x40 0x1>, + <0x0 0x40 0x2>, + <0x0 0x40 0x3>, + <0x0 0x40 0x4>, + <0x0 0x40 0x5>; + + interrupt-names = "leave_cv", + "enter_cv", + "good_ocv", + "ocv_thr", + "fifo_update_done", + "fsm_state_change"; + }; + }; + + pm8916_leds: qcom,leds@a100 { + compatible = "qcom,leds-qpnp"; + reg = <0xa100 0x100>; + label = "mpp"; + }; + }; + + qcom,pm8916@1 { + spmi-slave-container; + reg = <0x1>; + #address-cells = <1>; + #size-cells = <1>; + + regulator@1400 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_s1"; + spmi-dev-container; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x1400 0x300>; + status = "disabled"; + + qcom,ctl@1400 { + reg = <0x1400 0x100>; + }; + qcom,ps@1500 { + reg = <0x1500 0x100>; + }; + qcom,freq@1600 { + reg = <0x1600 0x100>; + }; + }; + + regulator@1700 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_s2"; + spmi-dev-container; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x1700 0x300>; + status = "disabled"; + + qcom,ctl@1700 { + reg = <0x1700 0x100>; + }; + qcom,ps@1800 { + reg = <0x1800 0x100>; + }; + qcom,freq@1900 { + reg = <0x1900 0x100>; + }; + }; + + regulator@1a00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_s3"; + spmi-dev-container; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x1a00 0x300>; + status = "disabled"; + + qcom,ctl@1a00 { + reg = <0x1a00 0x100>; + }; + qcom,ps@1b00 { + reg = <0x1b00 0x100>; + }; + qcom,freq@1c00 { + reg = <0x1c00 0x100>; + }; + }; + + regulator@1d00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_s4"; + spmi-dev-container; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x1d00 0x300>; + status = "disabled"; + + qcom,ctl@1d00 { + reg = <0x1d00 0x100>; + }; + qcom,ps@1e00 { + reg = <0x1e00 0x100>; + }; + qcom,freq@1f00 { + reg = <0x1f00 0x100>; + }; + }; + + regulator@4000 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l1"; + reg = <0x4000 0x100>; + status = "disabled"; + }; + + regulator@4100 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l2"; + reg = <0x4100 0x100>; + status = "disabled"; + }; + + regulator@4200 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l3"; + reg = <0x4200 0x100>; + status = "disabled"; + }; + + regulator@4300 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l4"; + reg = <0x4300 0x100>; + status = "disabled"; + }; + + regulator@4400 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l5"; + reg = <0x4400 0x100>; + status = "disabled"; + }; + + regulator@4500 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l6"; + reg = <0x4500 0x100>; + status = "disabled"; + }; + + regulator@4600 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l7"; + reg = <0x4600 0x100>; + status = "disabled"; + }; + + regulator@4700 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l8"; + reg = <0x4700 0x100>; + status = "disabled"; + }; + + regulator@4800 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l9"; + reg = <0x4800 0x100>; + status = "disabled"; + }; + + regulator@4900 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l10"; + reg = <0x4900 0x100>; + status = "disabled"; + }; + + regulator@4a00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l11"; + reg = <0x4a00 0x100>; + status = "disabled"; + }; + + regulator@4b00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l12"; + reg = <0x4b00 0x100>; + status = "disabled"; + }; + + regulator@4c00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l13"; + reg = <0x4c00 0x100>; + status = "disabled"; + }; + + regulator@4d00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l14"; + reg = <0x4d00 0x100>; + status = "disabled"; + }; + + regulator@4e00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l15"; + reg = <0x4e00 0x100>; + status = "disabled"; + }; + + regulator@4f00 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l16"; + reg = <0x4f00 0x100>; + status = "disabled"; + }; + + regulator@5000 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l17"; + reg = <0x5000 0x100>; + status = "disabled"; + }; + + regulator@5100 { + compatible = "qcom,qpnp-regulator"; + regulator-name = "8916_l18"; + reg = <0x5100 0x100>; + status = "disabled"; + }; + + pm8916_pwm: pwm@bc00 { + compatible = "qcom,qpnp-pwm"; + reg = <0xbc00 0x100>; + reg-names = "qpnp-lpg-channel-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + #pwm-cells = <2>; + }; + + pm8916_vib: qcom,vibrator@c000 { + compatible = "qcom,qpnp-vibrator"; + reg = <0xc000 0x100>; + label = "vibrator"; + status = "disabled"; + }; + + pm8916_tombak_dig: msm8x16_wcd_codec@f000{ + compatible = "qcom,wcd-spmi"; + reg = <0xf000 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf0 0x0>, + <0x1 0xf0 0x1>, + <0x1 0xf0 0x2>, + <0x1 0xf0 0x3>, + <0x1 0xf0 0x4>, + <0x1 0xf0 0x5>, + <0x1 0xf0 0x6>, + <0x1 0xf0 0x7>; + interrupt-names = "spk_cnp_int", + "spk_clip_int", + "spk_ocp_int", + "ins_rem_det1", + "but_rel_det", + "but_press_det", + "ins_rem_det", + "mbhc_int"; + + cdc-vdda-cp-supply = <&pm8916_s4>; + qcom,cdc-vdda-cp-voltage = <1800000 2200000>; + qcom,cdc-vdda-cp-current = <770000>; + + cdc-vdda-h-supply = <&pm8916_l5>; + qcom,cdc-vdda-h-voltage = <1800000 1800000>; + qcom,cdc-vdda-h-current = <20000>; + + cdc-vdd-px-supply = <&pm8916_s4>; + qcom,cdc-vdd-px-voltage = <1800000 2200000>; + qcom,cdc-vdd-px-current = <770000>; + + cdc-vdd-pa-supply = <&pm8916_l5>; + qcom,cdc-vdd-pa-voltage = <1800000 1800000>; + qcom,cdc-vdd-pa-current = <5000>; + + cdc-vdd-mic-bias-supply = <&pm8916_l13>; + qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>; + qcom,cdc-vdd-mic-bias-current = <25000>; + + qcom,cdc-mclk-clk-rate = <9600000>; + + qcom,cdc-static-supplies = "cdc-vdda-h", + "cdc-vdd-px", + "cdc-vdd-pa", + "cdc-vdda-cp"; + + qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias"; + }; + + pm8916_tombak_analog: msm8x16_wcd_codec@f100{ + compatible = "qcom,wcd-spmi"; + reg = <0xf100 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf1 0x0>, + <0x1 0xf1 0x1>, + <0x1 0xf1 0x2>, + <0x1 0xf1 0x3>, + <0x1 0xf1 0x4>, + <0x1 0xf1 0x5>; + interrupt-names = "ear_ocp_int", + "hphr_ocp_int", + "hphl_ocp_det", + "ear_cnp_int", + "hphr_cnp_int", + "hphl_cnp_int"; + }; + + pm8916_bcm: qpnp-buck-current-monitor@1800 { + compatible = "qcom,qpnp-buck-current-monitor"; + reg = <0x1800 0x100>; + interrupts = <1 0x18 0>, <1 0x18 1>; + interrupt-names = "iwarning", "icritical"; + qcom,enable-current-monitor; + qcom,icrit-init-threshold-pc = <90>; + qcom,iwarn-init-threshold-pc = <70>; + qcom,icrit-polling-delay-msec = <1000>; + qcom,iwarn-polling-delay-msec = <2000>; + + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi new file mode 100644 index 00000000000..66ea88b74b8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi @@ -0,0 +1,681 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&rpm_bus { + rpm-regulator-smpa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <1>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <3>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <4>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa5 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <5>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s5 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s5"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa7 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <7>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s7 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s7"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <1>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <2>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <3>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <4>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa6 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <6>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l6 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l6"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa8 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <8>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l8 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l8"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa9 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <9>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l9 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l9"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa10 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <10>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l10 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l10"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa11 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <11>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l11 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l11"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa12 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <12>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l12 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l12"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa13 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <13>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l13 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l13"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa14 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <14>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l14 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l14"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa15 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <15>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l15 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l15"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa16 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <16>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l16 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l16"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa17 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <17>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l17 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l17"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa18 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <18>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l18 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l18"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa19 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <19>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l19 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l19"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa20 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <20>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l20 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l20"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa21 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <21>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l21 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l21"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa22 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <22>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l22 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l22"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa23 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <23>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l23 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l23"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa24 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <24>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l24 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l24"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa25 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <25>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l25 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l25"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa26 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <26>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l26 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l26"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa27 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <27>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l27 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l27"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa28 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <28>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l28 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l28"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa29 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <29>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l29 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l29"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa30 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <30>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l30 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l30"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa31 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <31>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l31 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l31"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa32 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <32>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l32 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l32"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-vsa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "vsa"; + qcom,resource-id = <1>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-lvs1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_lvs1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-vsa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "vsa"; + qcom,resource-id = <2>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-lvs2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_lvs2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpb1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpb"; + qcom,resource-id = <1>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpb2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpb"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-bstb { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "bstb"; + qcom,resource-id = <1>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-bst { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_boost"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-bbyb { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "bbyb"; + qcom,resource-id = <1>; + qcom,regulator-type = <0>; + status = "disabled"; + + regulator-bby { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_boostbypass"; + qcom,set = <3>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi new file mode 100644 index 00000000000..f695c1b5b9b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi @@ -0,0 +1,407 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + #address-cells = <1>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <3>; + + qcom,pm8994@0 { + spmi-slave-container; + reg = <0x0>; + #address-cells = <1>; + #size-cells = <1>; + + pm8994_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + qcom,temp-alarm@2400 { + compatible = "qcom,qpnp-temp-alarm"; + reg = <0x2400 0x100>; + interrupts = <0x0 0x24 0x0>; + label = "pm8994_tz"; + qcom,channel-num = <8>; + qcom,threshold-set = <0>; + qcom,temp_alarm-vadc = <&pm8994_vadc>; + }; + + qcom,power-on@800 { + compatible = "qcom,qpnp-power-on"; + reg = <0x800 0x100>; + interrupts = <0x0 0x8 0x0>, + <0x0 0x8 0x1>, + <0x0 0x8 0x4>, + <0x0 0x8 0x5>; + interrupt-names = "kpdpwr", "resin", + "resin-bark", "kpdpwr-resin-bark"; + qcom,pon-dbc-delay = <15625>; + qcom,system-reset; + qcom,s3-debounce = <32>; + qcom,s3-src = "kpdpwr-and-resin"; + + qcom,pon_1 { + qcom,pon-type = <0>; + qcom,pull-up = <1>; + linux,code = <116>; + qcom,support-reset = <1>; + qcom,s1-timer = <10256>; + qcom,s2-timer = <2000>; + qcom,s2-type = <1>; + }; + + qcom,pon_2 { + qcom,pon-type = <1>; + qcom,pull-up = <1>; + linux,code = <114>; + }; + + qcom,pon_3 { + qcom,pon-type = <3>; + qcom,support-reset = <1>; + qcom,pull-up = <1>; + qcom,s1-timer = <6720>; + qcom,s2-timer = <2000>; + qcom,s2-type = <7>; + qcom,use-bark; + }; + }; + + pm8994_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + }; + + gpio@c200 { + reg = <0xc200 0x100>; + qcom,pin-num = <3>; + }; + + gpio@c300 { + reg = <0xc300 0x100>; + qcom,pin-num = <4>; + }; + + gpio@c400 { + reg = <0xc400 0x100>; + qcom,pin-num = <5>; + }; + + gpio@c500 { + reg = <0xc500 0x100>; + qcom,pin-num = <6>; + }; + + gpio@c600 { + reg = <0xc600 0x100>; + qcom,pin-num = <7>; + }; + + gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + }; + + gpio@c800 { + reg = <0xc800 0x100>; + qcom,pin-num = <9>; + }; + + gpio@c900 { + reg = <0xc900 0x100>; + qcom,pin-num = <10>; + }; + + gpio@ca00 { + reg = <0xca00 0x100>; + qcom,pin-num = <11>; + }; + + gpio@cb00 { + reg = <0xcb00 0x100>; + qcom,pin-num = <12>; + }; + + gpio@cc00 { + reg = <0xcc00 0x100>; + qcom,pin-num = <13>; + }; + + gpio@cd00 { + reg = <0xcd00 0x100>; + qcom,pin-num = <14>; + }; + + gpio@ce00 { + reg = <0xce00 0x100>; + qcom,pin-num = <15>; + }; + + gpio@cf00 { + reg = <0xcf00 0x100>; + qcom,pin-num = <16>; + }; + + gpio@d000 { + reg = <0xd000 0x100>; + qcom,pin-num = <17>; + }; + + gpio@d100 { + reg = <0xd100 0x100>; + qcom,pin-num = <18>; + }; + + gpio@d200 { + reg = <0xd200 0x100>; + qcom,pin-num = <19>; + }; + + gpio@d300 { + reg = <0xd300 0x100>; + qcom,pin-num = <20>; + }; + + gpio@d400 { + reg = <0xd400 0x100>; + qcom,pin-num = <21>; + }; + + gpio@d500 { + reg = <0xd500 0x100>; + qcom,pin-num = <22>; + }; + }; + + pm8994_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + }; + + mpp@a400 { + reg = <0xa400 0x100>; + qcom,pin-num = <5>; + }; + + mpp@a500 { + reg = <0xa500 0x100>; + qcom,pin-num = <6>; + }; + + mpp@a600 { + reg = <0xa600 0x100>; + qcom,pin-num = <7>; + }; + + mpp@a700 { + reg = <0xa700 0x100>; + qcom,pin-num = <8>; + }; + }; + + pm8994_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x31 0x0>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + + chan@8 { + label = "die_temp"; + reg = <8>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <3>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@9 { + label = "ref_625mv"; + reg = <9>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@a { + label = "ref_1250v"; + reg = <0xa>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + }; + + pm8994_adc_tm: vadc@3400 { + compatible = "qcom,qpnp-adc-tm"; + reg = <0x3400 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x34 0x0>, + <0x0 0x34 0x3>, + <0x0 0x34 0x4>; + interrupt-names = "eoc-int-en-set", + "high-thr-en-set", + "low-thr-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,adc_tm-vadc = <&pm8994_vadc>; + }; + + pm8994_coincell: qcom,coincell@2800 { + compatible = "qcom,qpnp-coincell"; + reg = <0x2800 0x100>; + }; + + qcom,pm8994_rtc { + spmi-dev-container; + compatible = "qcom,qpnp-rtc"; + #address-cells = <1>; + #size-cells = <1>; + qcom,qpnp-rtc-write = <0>; + qcom,qpnp-rtc-alarm-pwrup = <0>; + + qcom,pm8994_rtc_rw@6000 { + reg = <0x6000 0x100>; + }; + qcom,pm8994_rtc_alarm@6100 { + reg = <0x6100 0x100>; + interrupts = <0x0 0x61 0x1>; + }; + }; + }; + + qcom,pm8994@1 { + spmi-slave-container; + reg = <0x1>; + #address-cells = <1>; + #size-cells = <1>; + + pwm@b100 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb100 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <0>; + status = "disabled"; + }; + + pwm@b200 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb200 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <1>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <1>; + status = "disabled"; + }; + + pwm@b300 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb300 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <2>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <2>; + status = "disabled"; + }; + + pwm@b400 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb400 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <3>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <3>; + status = "disabled"; + }; + + pwm@b500 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb500 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <4>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <4>; + status = "disabled"; + }; + + pwm@b600 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb600 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <5>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <5>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi b/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi new file mode 100644 index 00000000000..9176ade2920 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi @@ -0,0 +1,499 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + #address-cells = <1>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <3>; + + qcom,pmi8994@2 { + spmi-slave-container; + reg = <0x2>; + #address-cells = <1>; + #size-cells = <1>; + + pmi8994_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + pmi8994_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8994-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + }; + + gpio@c200 { + reg = <0xc200 0x100>; + qcom,pin-num = <3>; + }; + + gpio@c300 { + reg = <0xc300 0x100>; + qcom,pin-num = <4>; + }; + + gpio@c400 { + reg = <0xc400 0x100>; + qcom,pin-num = <5>; + }; + + gpio@c500 { + reg = <0xc500 0x100>; + qcom,pin-num = <6>; + }; + + gpio@c600 { + reg = <0xc600 0x100>; + qcom,pin-num = <7>; + }; + + gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + }; + + gpio@c800 { + reg = <0xc800 0x100>; + qcom,pin-num = <9>; + }; + + gpio@c900 { + reg = <0xc900 0x100>; + qcom,pin-num = <10>; + }; + }; + + pmi8994_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8994-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + }; + }; + + pmi8994_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x2 0x31 0x0>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + }; + + pmi8994_charger: pmi8994_otg_supply: qcom,qpnp-smbcharger { + spmi-dev-container; + compatible = "qcom,qpnp-smbcharger"; + #address-cells = <1>; + #size-cells = <1>; + + qcom,iterm-ma = <100>; + qcom,float-voltage-mv = <4350>; + qcom,resume-delta-mv = <200>; + qcom,bmd-pin-src = "bpd_thm"; + qcom,dc-psy-type = "Mains"; + qcom,dc-psy-ma = <1500>; + qcom,bms-psy-name = "bms"; + qcom,thermal-mitigation = <1500 700 600 0>; + regulator-name = "pmi8994_otg_vreg"; + + qcom,chgr@1000 { + reg = <0x1000 0x100>; + interrupts = <0x2 0x10 0x0>, + <0x2 0x10 0x1>, + <0x2 0x10 0x2>, + <0x2 0x10 0x3>, + <0x2 0x10 0x4>, + <0x2 0x10 0x5>, + <0x2 0x10 0x6>, + <0x2 0x10 0x7>; + + interrupt-names = "chg-error", + "chg-inhibit", + "chg-prechg-sft", + "chg-complete-chg-sft", + "chg-p2f-thr", + "chg-rechg-thr", + "chg-taper-thr", + "chg-tcc-thr"; + }; + + qcom,otg@1100 { + reg = <0x1100 0x100>; + }; + + qcom,bat-if@1200 { + reg = <0x1200 0x100>; + interrupts = <0x2 0x12 0x0>, + <0x2 0x12 0x1>, + <0x2 0x12 0x2>, + <0x2 0x12 0x3>, + <0x2 0x12 0x4>, + <0x2 0x12 0x5>, + <0x2 0x12 0x6>, + <0x2 0x12 0x7>; + + interrupt-names = "batt-hot", + "batt-warm", + "batt-cold", + "batt-cool", + "batt-ov", + "batt-low", + "batt-missing", + "batt-term-missing"; + }; + + qcom,usb-chgpth@1300 { + reg = <0x1300 0x100>; + interrupts = <0x2 0x13 0x0>, + <0x2 0x13 0x1>, + <0x2 0x13 0x2>, + <0x2 0x13 0x3>, + <0x2 0x13 0x4>, + <0x2 0x13 0x5>, + <0x2 0x13 0x6>; + + interrupt-names = "usbin-uv", + "usbin-ov", + "usbin-src-det", + "otg-fail", + "otg-oc", + "aicl-done", + "usbid-change"; + }; + + qcom,dc-chgpth@1400 { + reg = <0x1400 0x100>; + interrupts = <0x2 0x14 0x0>, + <0x2 0x14 0x1>; + + interrupt-names = "dcin-uv", + "dcin-ov"; + }; + + qcom,chgr-misc@1600 { + reg = <0x1600 0x100>; + interrupts = <0x2 0x16 0x0>, + <0x2 0x16 0x1>, + <0x2 0x16 0x2>, + <0x2 0x16 0x3>, + <0x2 0x16 0x4>, + <0x2 0x16 0x5>; + + interrupt-names = "power-ok", + "temp-shutdown", + "safety-timeout", + "flash-fail", + "otst2", + "otst3"; + }; + }; + + pmi8994_fg: qcom,fg { + spmi-dev-container; + compatible = "qcom,qpnp-fg"; + #address-cells = <1>; + #size-cells = <1>; + status = "okay"; + + qcom,fg-soc@4000 { + status = "okay"; + reg = <0x4000 0x100>; + interrupts = <0x2 0x40 0x0>, + <0x2 0x40 0x1>, + <0x2 0x40 0x2>, + <0x2 0x40 0x3>, + <0x2 0x40 0x4>, + <0x2 0x40 0x5>, + <0x2 0x40 0x6>, + <0x2 0x40 0x7>; + + interrupt-names = "high-soc", + "low-soc", + "full-soc", + "empty-soc", + "delta-soc", + "first-est-done", + "sw-fallbk-ocv", + "sw-fallbk-new-battrt-sts", + "fg-soc-irq-count"; + }; + + qcom,fg-adc-vbat@4254 { + reg = <0x4254 0x1>; + }; + + qcom,fg-adc-ibat@4255 { + reg = <0x4255 0x1>; + }; + + qcom,fg-memif@4400 { + status = "okay"; + reg = <0x4400 0x100>; + interrupts = <0x2 0x44 0x0>, + <0x2 0x44 0x1>; + + interrupt-names = "mem-avail", + "data-rcvry-sug"; + }; + }; + }; + + qcom,pmi8994@3 { + spmi-slave-container; + reg = <0x3>; + #address-cells = <1>; + #size-cells = <1>; + + pwm@b100 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb100 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <0>; + }; + + pwm@b200 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb200 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <1>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <1>; + }; + + pwm@b300 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb300 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <2>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <2>; + }; + + pwm@b400 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb400 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <3>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <3>; + }; + + qcom,leds@d800 { + compatible = "qcom,qpnp-wled"; + reg = <0xd800 0x100>, + <0xd900 0x100>, + <0xdc00 0x100>, + <0xde00 0x100>; + reg-names = "qpnp-wled-ctrl-base", + "qpnp-wled-sink-base", + "qpnp-wled-ibb-base", + "qpnp-wled-lab-base"; + status = "okay"; + linux,name = "wled"; + linux,default-trigger = "bkl-trigger"; + qcom,fdbk-output = "auto"; + qcom,vref-mv = <350>; + qcom,switch-freq-khz = <800>; + qcom,ovp-mv = <29500>; + qcom,ilim-ma = <980>; + qcom,boost-duty-ns = <26>; + qcom,mod-freq-khz = <19200>; + qcom,dim-mode = "hybrid"; + qcom,dim-method = "linear"; + qcom,hyb-thres = <625>; + qcom,sync-dly-us = <800>; + qcom,fs-curr-ua = <16000>; + qcom,en-phase-stag; + qcom,ibb-pwrup-dly = <8>; + qcom,led-strings-list = [00 01 02 03]; + }; + + pmi8994_haptics: qcom,haptic@c000 { + status = "disabled"; + compatible = "qcom,qpnp-haptic"; + reg = <0xc000 0x100>; + interrupts = <0x3 0xc0 0x0>, + <0x3 0xc0 0x1>; + interrupt-names = "sc-irq", "play-irq"; + qcom,play-mode = "direct"; + qcom,wave-play-rate-us = <5263>; + qcom,actuator-type = "lra"; + qcom,wave-shape = "square"; + qcom,vmax-mv = <2000>; + qcom,ilim-ma = <800>; + qcom,sc-deb-cycles = <8>; + qcom,int-pwm-freq-khz = <505>; + qcom,brake-pattern = [00 00 03 03]; + qcom,use-play-irq; + qcom,use-sc-irq; + qcom,wave-samples = [3e 3e 3e 3e 3e 3e 3e 3e]; + qcom,wave-rep-cnt = <1>; + qcom,wave-samp-rep-cnt = <1>; + }; + + qcom,leds@d000 { + compatible = "qcom,leds-qpnp"; + reg = <0xd000 0x100>; + label = "rgb"; + status = "okay"; + + qcom,rgb_0 { + label = "rgb"; + qcom,id = <3>; + qcom,mode = "pwm"; + qcom,pwm-channel = <2>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "red"; + linux,default-trigger = + "battery-charging"; + }; + + qcom,rgb_1 { + label = "rgb"; + qcom,id = <4>; + qcom,mode = "pwm"; + qcom,pwm-channel = <1>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "green"; + linux,default-trigger = "battery-full"; + }; + + qcom,rgb_2 { + label = "rgb"; + qcom,id = <5>; + qcom,mode = "pwm"; + qcom,pwm-channel = <0>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "blue"; + }; + }; + + qcom,leds@d300 { + compatible = "qcom,qpnp-flash-led"; + status = "okay"; + reg = <0xd300 0x100>; + label = "flash"; + qcom,headroom = <500>; + qcom,startup-dly = <128>; + qcom,clamp-curr = <200>; + qcom,pmic-charger-support; + qcom,self-check-enabled; + qcom,thermal-derate-enabled; + qcom,thermal-derate-threshold = <80>; + qcom,thermal-derate-rate = "4_PERCENT"; + qcom,current-ramp-enabled; + qcom,ramp_up_step = "27US"; + qcom,ramp_dn_step = "27US"; + qcom,vph-pwr-droop-enabled; + qcom,vph-pwr-droop-threshold = <3200>; + qcom,vph-pwr-droop-debounce-time = <10>; + + pmi8994_flash0: qcom,flash_0 { + label = "flash"; + qcom,led-name = "led:flash_0"; + qcom,default-led-trigger = + "flash0_trigger"; + qcom,max-current = <1000>; + qcom,duration = <1280>; + qcom,id = <0>; + qcom,current = <625>; + }; + + pmi8994_flash1: qcom,flash_1 { + label = "flash"; + qcom,led-name = "led:flash_1"; + qcom,default-led-trigger = + "flash1_trigger"; + qcom,max-current = <1000>; + qcom,duration = <1280>; + qcom,id = <1>; + qcom,current = <625>; + }; + + pmi8994_torch0: qcom,torch_0 { + label = "torch"; + qcom,led-name = "led:torch_0"; + qcom,default-led-trigger = + "torch0_trigger"; + qcom,max-current = <200>; + qcom,id = <0>; + qcom,current = <120>; + boost-supply = <&pmi8994_boostbypass>; + boost-voltage-max = <3600000>; + }; + + pmi8994_torch1: qcom,torch_1 { + label = "torch"; + qcom,led-name = "led:torch_1"; + qcom,default-led-trigger = + "torch1_trigger"; + qcom,max-current = <200>; + qcom,id = <1>; + qcom,current = <120>; + boost-supply = <&pmi8994_boostbypass>; + boost-voltage-max = <3600000>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-ion.dtsi b/arch/arm64/boot/dts/qcom/msm8916-512mb-ion.dtsi new file mode 100644 index 00000000000..b988aed4bb2 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-ion.dtsi @@ -0,0 +1,57 @@ +/* Copyright (c) 2014, Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,ion { + compatible = "qcom,msm-ion"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,ion-heap@25 { + reg = <25>; + qcom,ion-heap-type = "SYSTEM"; + }; + + qcom,ion-heap@21 { + reg = <21>; + qcom,ion-heap-type = "SYSTEM_CONTIG"; + }; + + qcom,ion-heap@27 { /* QSEECOM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <27>; + memory-region = <&venus_qseecom_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@28 { /* AUDIO HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <28>; + memory-region = <&audio_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@23 { /* OTHER PIL HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <23>; + memory-region = <&peripheral_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@26 { /* MODEM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <26>; + memory-region = <&modem_adsp_mem>; + qcom,ion-heap-type = "DMA"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-memory.dtsi b/arch/arm64/boot/dts/qcom/msm8916-512mb-memory.dtsi new file mode 100644 index 00000000000..eb6b7006c3a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-memory.dtsi @@ -0,0 +1,58 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-512mb-ion.dtsi" + +/ { + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + external_image_mem: external_image_region@86000000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x86000000 0x0 0x0800000>; + }; + + modem_adsp_mem: modem_adsp_region@86800000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x86800000 0x0 0x04800000>; + }; + + peripheral_mem: peripheral_region@8b000000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8b000000 0x0 0x0600000>; + }; + + venus_qseecom_mem: venus_qseecom_region@0 { + compatible = "shared-dma-pool"; + alloc-ranges = <0 0x80000000 0 0x10000000>; + reusable; + alignment = <0 0x400000>; + size = <0 0x600000>; + }; + + audio_mem: audio_region@0 { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x400000>; + }; + + cont_splash_mem: splash_region@83000000 { + reg = <0x0 0x83000000 0x0 0x1200000>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp-smb1360.dts b/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp-smb1360.dts new file mode 100644 index 00000000000..e328da98e28 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp-smb1360.dts @@ -0,0 +1,61 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-mtp.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 512MB SMB1360 MTP"; + compatible = "qcom,msm8916-mtp", "qcom,msm8916", "qcom,mtp"; + qcom,board-id = <0x8 0x101>; +}; + +&soc { + i2c@78b8000 { + smb1360_otg_supply: smb1360-chg-fg@14 { + compatible = "qcom,smb1360-chg-fg"; + reg = <0x14>; + interrupt-parent = <&msm_gpio>; + interrupts = <62 8>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + regulator-name = "smb1360_otg_vreg"; + + qcom,chg-inhibit-disabled; + qcom,float-voltage-mv = <4200>; + qcom,iterm-ma = <100>; + qcom,charging-disabled; + qcom,recharge-thresh-mv = <100>; + qcom,thermal-mitigation = <1500 700 600 0>; + }; + }; +}; + +&usb_otg { + qcom,hsusb-otg-mode = <3>; + qcom,usbid-gpio = <&msm_gpio 110 0>; + pinctrl-names = "default"; + pinctrl-0 = <&usbid_default>; + vbus_otg-supply = <&smb1360_otg_supply>; +}; + +&pm8916_chg { + status = "ok"; + qcom,use-external-charger; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp.dts b/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp.dts new file mode 100644 index 00000000000..608d6968d12 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-mtp.dts @@ -0,0 +1,32 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-mtp.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 512MB MTP"; + compatible = "qcom,msm8916-mtp", "qcom,msm8916", "qcom,mtp"; + qcom,board-id = <0x8 0x100>; +}; + +&spmi_bus { + qcom,pm8916@1 { + qcom,vibrator@c000 { + status = "okay"; + qcom,vib-timeout-ms = <15000>; + qcom,vib-vtg-level-mV = <3100>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuh.dts b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuh.dts new file mode 100644 index 00000000000..0645e61f3c0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuh.dts @@ -0,0 +1,41 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuh.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 512MB QRD SKUH"; + compatible = "qcom,msm8916-qrd-skuh", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x1000b 0x100>, <0x1000b 0x104>, + <0x1010b 0x100>, <0x1010b 0x104>, + <0x2010b 0x100>, <0x2010b 0x104>; +}; + +&soc { + + sound { + qcom,msm-hs-micbias-type = "external"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS External2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS External2", + "AMIC3", "MIC BIAS External"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skui.dts b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skui.dts new file mode 100644 index 00000000000..0613f11e380 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skui.dts @@ -0,0 +1,107 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skui.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 512MB QRD SKUI"; + compatible = "qcom,msm8916-qrd-skui", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x1000b 0x105> , <0x1010b 0x105> , <0x3010b 0x105>; +}; + +&soc { + i2c@78b8000 { + smb1360_otg_supply: smb1360-chg-fg@14 { + compatible = "qcom,smb1360-chg-fg"; + reg = <0x14>; + interrupt-parent = <&msm_gpio>; + interrupts = <62 8>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + qcom,chg-inhibit-disabled; + qcom,float-voltage-mv = <4350>; + qcom,iterm-ma = <100>; + qcom,recharge-thresh-mv = <100>; + qcom,thermal-mitigation = <1500 700 600 0>; + regulator-name = "smb1360_otg_vreg"; + }; + }; + + i2c@78b9000 { /* BLSP1 QUP5 */ + focaltech@38 { + compatible = "focaltech,5x06"; + reg = <0x38>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "ft6436"; + focaltech,family-id = <0x36>; + focaltech,reset-gpio = <&msm_gpio 12 0x0>; + focaltech,irq-gpio = <&msm_gpio 13 0x2008>; + focaltech,display-coords = <0 0 480 854>; + focaltech,panel-coords = <0 0 480 950>; + focaltech,button-map= <139 102 158>; + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <20>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <5>; + focaltech,fw-delay-aa-ms = <30>; + focaltech,fw-delay-55-ms = <30>; + focaltech,fw-upgrade-id1 = <0x79>; + focaltech,fw-upgrade-id2 = <0x18>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,ignore-id-check; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "ft5x06_ts"; + qcom,disp-maxx = <480>; + qcom,disp-maxy = <854>; + qcom,panel-maxx = <480>; + qcom,panel-maxy = <946>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; +}; + +&pm8916_chg { + status = "ok"; + qcom,use-external-charger; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; + +&usb_otg { + qcom,hsusb-otg-mode = <3>; + qcom,usbid-gpio = <&msm_gpio 110 0>; + pinctrl-names = "default"; + pinctrl-0 = <&usbid_default>; + vbus_otg-supply = <&smb1360_otg_supply>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuid.dts b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuid.dts new file mode 100644 index 00000000000..37540d671f4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-512mb-qrd-skuid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuid.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 512MB QRD SKUID"; + compatible = "qcom,msm8916-qrd-skuid", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x21010b 0x105>, <0x22010b 0x105>, <0x23010b 0x105>; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-bus.dtsi b/arch/arm64/boot/dts/qcom/msm8916-bus.dtsi new file mode 100644 index 00000000000..79f499cc326 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-bus.dtsi @@ -0,0 +1,879 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/msm/msm-bus-rule-ops.h> + +&soc { + ad_hoc_bus: ad-hoc-bus { }; + + static-rules { + compatible = "qcom,msm-bus-static-bw-rules"; + + rule0 { + qcom,src-nodes = <&mas_apss>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_LE>; + qcom,thresh = <1600000>; + qcom,mode = <THROTTLE_ON>; + qcom,dest-node = <&mas_apss>; + qcom,dest-bw = <600000>; + }; + + + rule1 { + qcom,src-nodes = <&mas_apss>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_LE>; + qcom,thresh = <3200000>; + qcom,mode = <THROTTLE_ON>; + qcom,dest-node = <&mas_apss>; + qcom,dest-bw = <1200000>; + }; + + rule2 { + qcom,src-nodes = <&mas_apss>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_GT>; + qcom,thresh = <3200000>; + qcom,mode = <THROTTLE_OFF>; + qcom,dest-node = <&mas_apss>; + }; + + rule3 { + qcom,src-nodes = <&mas_gfx>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_LE>; + qcom,thresh = <1600000>; + qcom,mode = <THROTTLE_ON>; + qcom,dest-node = <&mas_gfx>; + qcom,dest-bw = <600000>; + }; + + rule4 { + qcom,src-nodes = <&mas_gfx>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_LE>; + qcom,thresh = <3200000>; + qcom,mode = <THROTTLE_ON>; + qcom,dest-node = <&mas_gfx>; + qcom,dest-bw = <1200000>; + }; + + rule5 { + qcom,src-nodes = <&mas_gfx>; + qcom,src-field = <FLD_IB>; + qcom,src-op = <OP_GT>; + qcom,thresh = <3200000>; + qcom,mode = <THROTTLE_OFF>; + qcom,dest-node = <&mas_gfx>; + }; + }; +}; + +&ad_hoc_bus { + compatible = "qcom,msm-bus-device"; + reg = <0x580000 0x14000>, + <0x400000 0x62000>, + <0x500000 0x11000>; + reg-names = "snoc-base", "bimc-base", "pnoc-base"; + + fab_snoc: fab-snoc { + cell-id = <1024>; + label = "fab-snoc"; + qcom,fab-dev; + qcom,base-name = "snoc-base"; + qcom,base-offset = <0x7000>; + qcom,qos-off = <0x1000>; + qcom,bus-type = <1>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_rpm clk_snoc_msmbus_clk>, + <&clock_rpm clk_snoc_msmbus_a_clk>; + + coresight-id = <50>; + coresight-name = "coresight-snoc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <5>; + }; + + fab_bimc: fab-bimc { + cell-id = <0>; + label = "fab-bimc"; + qcom,fab-dev; + qcom,base-name = "bimc-base"; + qcom,bus-type = <2>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_rpm clk_bimc_msmbus_clk>, + <&clock_rpm clk_bimc_msmbus_a_clk>; + + coresight-id = <55>; + coresight-name = "coresight-bimc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <3>; + }; + + fab_pnoc: fab-pnoc { + cell-id = <4096>; + label = "fab-pnoc"; + qcom,fab-dev; + qcom,base-name = "pnoc-base"; + qcom,base-offset = <0x7000>; + qcom,qos-delta = <0x1000>; + qcom,bus-type = <1>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_rpm clk_pcnoc_msmbus_clk>, + <&clock_rpm clk_pcnoc_msmbus_a_clk>; + + coresight-id = <54>; + coresight-name = "coresight-pnoc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <6>; + }; + + /* SNOC Devices */ + mas_video: mas-video { + cell-id = <63>; + label = "mas-video"; + qcom,qport = <8>; + qcom,ap-owned; + qcom,connections = <&mm_int_0 &mm_int_2>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "bypass"; + qcom,buswidth = <16>; + }; + + mas_jpeg: mas-jpeg { + cell-id = <62>; + label = "mas-jpeg"; + qcom,ap-owned; + qcom,qport = <6>; + qcom,connections = <&mm_int_0 &mm_int_2>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "bypass"; + qcom,buswidth = <16>; + }; + + mas_vfe: mas-vfe { + cell-id = <29>; + label = "mas-vfe"; + qcom,ap-owned; + qcom,qport = <9>; + qcom,connections = <&mm_int_1 &mm_int_2>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "bypass"; + qcom,buswidth = <16>; + }; + + mas_mdp: mas-mdp { + cell-id = <22>; + label = "mas-mdp"; + qcom,ap-owned; + qcom,connections = <&mm_int_0 &mm_int_2>; + qcom,qport = <7>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "bypass"; + qcom,buswidth = <16>; + }; + + mas_qdss_bam: mas-qdss-bam { + cell-id = <53>; + label = "mas-qdss-bam"; + qcom,connections = <&qdss_int>; + qcom,qport = <11>; + qcom,bus-dev = <&fab_snoc>; + qom,buswidth = <4>; + qcom,ap-owned; + qcom,qos-mode = "fixed"; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + }; + + mas_snoc_cfg: mas-snoc-cfg { + cell-id = <54>; + label = "mas-snoc-cfg"; + qcom,connections = <&qdss_int>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "bypass"; + qom,buswidth = <4>; + qcom,mas-rpm-id = <20>; + }; + + mas_qdss_etr: mas-qdss-etr { + cell-id = <60>; + label = "mas-qdss-etr"; + qcom,connections = <&qdss_int>; + qcom,qport = <10>; + qcom,bus-dev = <&fab_snoc>; + qcom,qos-mode = "fixed"; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qom,buswidth = <8>; + qcom,ap-owned; + }; + + mm_int_0: mm-int-0 { + cell-id = <10000>; + label = "mm-int-0"; + qcom,ap-owned; + qcom,connections = <&mm_int_bimc>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <16>; + }; + + mm_int_1: mm-int-1 { + cell-id = <10001>; + label = "mm-int1"; + qcom,ap-owned; + qcom,connections = <&mm_int_bimc>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <16>; + }; + + mm_int_2: mm-int-2 { + cell-id = <10002>; + label = "mm-int2"; + qcom,ap-owned; + qcom,connections = <&snoc_int_0>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <16>; + }; + + mm_int_bimc: mm-int-bimc { + cell-id = <10003>; + label = "mm-int-bimc"; + qcom,ap-owned; + qcom,connections = <&snoc_bimc_1_mas>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <16>; + }; + + snoc_int_0: snoc-int-0 { + cell-id = <10004>; + label = "snoc-int-0"; + qcom,connections = <&slv_qdss_stm &slv_imem &snoc_pnoc_mas>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <99>; + qcom,slv-rpm-id = <130>; + qcom,buswidth = <8>; + }; + + snoc_int_1: snoc-int-1 { + cell-id = <10005>; + label = "snoc-int-1"; + qcom,connections = <&slv_apss &slv_cats_0 &slv_cats_1>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <100>; + qcom,slv-rpm-id = <131>; + qcom,buswidth = <8>; + }; + + snoc_int_bimc: snoc-int-bmc { + cell-id = <10006>; + label = "snoc-bimc"; + qcom,connections = <&snoc_bimc_0_mas>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <101>; + qcom,slv-rpm-id = <132>; + qcom,buswidth = <8>; + }; + + snoc_bimc_0_mas: snoc-bimc-0-mas { + cell-id = <10007>; + label = "snoc-bimc-0-mas"; + qcom,connections = <&snoc_bimc_0_slv>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <3>; + qcom,buswidth = <8>; + }; + + snoc_bimc_1_mas: snoc-bimc-1-mas { + cell-id = <10008>; + label = "snoc-bimc-1-mas"; + qcom,connections = <&snoc_bimc_1_slv>; + qcom,bus-dev = <&fab_snoc>; + qcom,ap-owned; + qcom,buswidth = <16>; + }; + + qdss_int: qdss-int { + cell-id = <10009>; + label = "qdss-int"; + qcom,ap-owned; + qcom,connections = <&snoc_int_0 &snoc_int_bimc>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <8>; + }; + + bimc_snoc_slv: bimc-snoc-slv { + cell-id = <10017>; + label = "bimc_snoc_slv"; + qcom,ap-owned; + qcom,connections = <&snoc_int_0 &snoc_int_1>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <8>; + }; + + snoc_pnoc_mas: snoc-pnoc-mas { + cell-id = <10027>; + label = "snoc-pnoc-mas"; + qcom,connections = <&snoc_pnoc_slv>; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <8>; + }; + + pnoc_snoc_slv: pnoc-snoc-slv { + cell-id = <10011>; + label = "snoc-pnoc"; + qcom,connections = <&snoc_int_0 &snoc_int_bimc &snoc_int_1>; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <45>; + qcom,buswidth = <8>; + }; + + slv_srvc_snoc: slv-srvc-snoc { + cell-id = <587>; + label = "snoc-srvc-snoc"; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <29>; + qcom,buswidth = <8>; + }; + + slv_qdss_stm: slv-qdss-stm { + cell-id = <588>; + label = "snoc-qdss-stm"; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <4>; + qcom,slv-rpm-id = <30>; + }; + + slv_imem: slv-imem { + cell-id = <519>; + label = "slv_imem"; + qcom,bus-dev = <&fab_snoc>; + qcom,buswidth = <8>; + qcom,slv-rpm-id = <26>; + }; + + slv_apss: slv-apss { + cell-id = <517>; + label = "slv_apss"; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <20>; + qcom,buswidth = <4>; + }; + + slv_cats_0: slv-cats-0 { + cell-id = <663>; + label = "slv-cats-0"; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <106>; + qcom,buswidth = <16>; + }; + + slv_cats_1: slv-cats-1 { + cell-id = <664>; + label = "slv-cats-1"; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <107>; + qcom,buswidth = <8>; + }; + + /* BIMC nodes */ + mas_apss: mas-apss { + cell-id = <1>; + label = "mas-apss"; + qcom,ap-owned; + qcom,connections = <&slv_ebi_ch0 &bimc_snoc_mas &slv_apps_l2>; + qcom,qport = <0>; + qcom,bus-dev = <&fab_bimc>; + qcom,qos-mode = "fixed"; + qcom,prio-lvl = <0>; + qcom,prio-rd = <0>; + qcom,prio-wr = <0>; + qcom,ws = <10000>; + qcom,gp = <5000>; + qcom,thmp = <50>; + qom,buswidth = <8>; + }; + + mas_tcu0: mas-tcu0 { + cell-id = <104>; + label = "mas-tcu0"; + qcom,ap-owned; + qcom,connections = <&slv_ebi_ch0 &bimc_snoc_mas &slv_apps_l2>; + qcom,qport = <5>; + qcom,bus-dev = <&fab_bimc>; + qcom,qos-mode = "fixed"; + qcom,prio-lvl = <2>; + qcom,prio-rd = <2>; + qcom,prio-wr = <2>; + qom,buswidth = <8>; + }; + + mas_tcu1: mas-tcu1 { + cell-id = <105>; + label = "mas-tcu1"; + qcom,ap-owned; + qcom,connections = <&slv_ebi_ch0 &bimc_snoc_mas &slv_apps_l2>; + qcom,qport = <6>; + qcom,bus-dev = <&fab_bimc>; + qcom,qos-mode = "fixed"; + qcom,prio-lvl = <2>; + qcom,prio-rd = <2>; + qcom,prio-wr = <2>; + qom,buswidth = <8>; + }; + + mas_gfx: mas-gfx { + cell-id = <26>; + label = "mas-gfx"; + qcom,ap-owned; + qcom,connections = <&slv_ebi_ch0 &bimc_snoc_mas &slv_apps_l2>; + qcom,qport = <2>; + qcom,bus-dev = <&fab_bimc>; + qcom,qos-mode = "fixed"; + qcom,prio-lvl = <0>; + qcom,prio-rd = <0>; + qcom,prio-wr = <0>; + qom,buswidth = <8>; + qcom,ws = <10000>; + qcom,gp = <5000>; + qcom,thmp = <50>; + }; + + bimc_snoc_mas: bimc-snoc-mas { + cell-id = <10016>; + label = "bimc_snoc_mas"; + qcom,ap-owned; + qcom,bus-dev = <&fab_bimc>; + qcom,connections = <&bimc_snoc_slv>; + qom,buswidth = <8>; + }; + + snoc_bimc_0_slv: snoc-bimc-0-slv { + cell-id = <10025>; + label = "snoc_bimc_0_slv"; + qcom,connections = <&slv_ebi_ch0>; + qcom,bus-dev = <&fab_bimc>; + qcom,slv-rpm-id = <24>; + qom,buswidth = <8>; + }; + + snoc_bimc_1_slv: snoc_bimc_1_slv { + cell-id = <10026>; + label = "snoc_bimc_1_slv"; + qcom,connections = <&slv_ebi_ch0>; + qcom,ap-owned; + qcom,bus-dev = <&fab_bimc>; + qom,buswidth = <8>; + }; + + slv_ebi_ch0: slv-ebi-ch0 { + cell-id = <512>; + label = "slv-ebi-ch0"; + qcom,bus-dev = <&fab_bimc>; + qcom,slv-rpm-id = <0>; + qom,buswidth = <8>; + }; + + slv_apps_l2: slv-apps-l2 { + cell-id = <514>; + label = "slv-apps-l2"; + qcom,bus-dev = <&fab_bimc>; + qom,buswidth = <8>; + }; + + /* PNOC nodes */ + snoc_pnoc_slv: snoc-pnoc-slv { + cell-id = <10028>; + label = "snoc-pnoc-slv"; + qcom,connections = <&pnoc_int_0>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <8>; + }; + + pnoc_int_0: pnoc-int-0 { + cell-id = <10012>; + label = "pnoc-int-0"; + qcom,connections = <&pnoc_snoc_mas &pnoc_s_0 &pnoc_s_1 &pnoc_s_2 + &pnoc_s_3 &pnoc_s_4 &pnoc_s_8 &pnoc_s_9>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <8>; + }; + + pnoc_int_1: pnoc-int-1 { + cell-id = <10013>; + label = "pnoc-int-1"; + qcom,connections = <&pnoc_snoc_mas>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <8>; + }; + + pnoc_m_0: pnoc-m-0 { + cell-id = <10014>; + label = "pnoc-m-0"; + qcom,connections = <&pnoc_int_0>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <8>; + }; + + pnoc_m_1: pnoc-m-1 { + cell-id = <10015>; + label = "pnoc-m-1"; + qcom,connections = <&pnoc_snoc_mas>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <8>; + }; + + pnoc_s_0: pnoc-s-0 { + cell-id = <10018>; + label = "pnoc-s-0"; + qcom,connections = <&slv_clk_ctl &slv_tlmm &slv_tcsr + &slv_security &slv_mss>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + pnoc_s_1: pnoc-s-1 { + cell-id = <10019>; + label = "pnoc-s-1"; + qcom,connections = <&slv_imem_cfg &slv_crypto_0_cfg + &slv_msg_ram &slv_pdm &slv_prng>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + pnoc_s_2: pnoc-s-2 { + cell-id = <10020>; + label = "pnoc-s-2"; + qcom,connections = <&slv_spdm &slv_boot_rom &slv_bimc_cfg + &slv_pnoc_cfg &slv_pmic_arb>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + pnoc_s_3: pnoc-s-3 { + cell-id = <10021>; + label = "pnoc-s-3"; + qcom,connections = <&slv_mpm &slv_snoc_cfg &slv_rbcpr_cfg + &slv_qdss_cfg &slv_dehr_cfg>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + pnoc_s_4: pnoc-s-4 { + cell-id = <10022>; + label = "pnoc-s-4"; + qcom,connections = <&slv_venus_cfg &slv_camera_cfg + &slv_display_cfg>; + qcom,bus-dev = <&fab_pnoc>; + }; + + pnoc_s_8: pnoc-s-8 { + cell-id = <10023>; + label = "pnoc-s-8"; + qcom,connections = <&slv_usb_hs &slv_sdcc_1 &slv_blsp_1>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + pnoc_s_9: pnoc-s-9 { + cell-id = <10024>; + label = "pnoc-s-9"; + qcom,connections = <&slv_sdcc_2 &slv_audio &slv_gfx_cfg>; + qcom,bus-dev = <&fab_pnoc>; + qom,buswidth = <4>; + }; + + slv_imem_cfg: slv-imem-cfg { + cell-id = <627>; + label = "slv-imem-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_crypto_0_cfg: slv-crypto-0-cfg { + cell-id = <625>; + label = "slv-crypto-0-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_msg_ram: slv-msg-ram { + cell-id = <535>; + label = "slv-msg-ram"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_pdm: slv-pdm { + cell-id = <577>; + label = "slv-pdm"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_prng: slv-prng { + cell-id = <618>; + label = "slv-prng"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_clk_ctl: slv-clk-ctl { + cell-id = <620>; + label = "slv-clk-ctl"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_mss: slv-mss { + cell-id = <521>; + label = "slv-mss"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_tlmm: slv-tlmm { + cell-id = <624>; + label = "slv-tlmm"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_tcsr: slv-tcsr { + cell-id = <579>; + label = "slv-tcsr"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_security: slv-security { + cell-id = <622>; + label = "slv-security"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_spdm: slv-spdm { + cell-id = <533>; + label = "slv-spdm"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_pnoc_cfg: slv-pnoc-cfg { + cell-id = <641>; + label = "slv-pnoc-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_pmic_arb: slv-pmic-arb { + cell-id = <632>; + label = "slv-pmic-arb"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_bimc_cfg: slv-bimc-cfg { + cell-id = <629>; + label = "slv-bimc-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_boot_rom: slv-boot-rom { + cell-id = <630>; + label = "slv-boot-rom"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_mpm: slv-mpm { + cell-id = <536>; + label = "slv-mpm"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_qdss_cfg: slv-qdss-cfg { + cell-id = <635>; + label = "slv-qdss-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_rbcpr_cfg: slv-rbcpr-cfg { + cell-id = <636>; + label = "slv-rbcpr-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_snoc_cfg: slv-snoc-cfg { + cell-id = <647>; + label = "slv-snoc-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_dehr_cfg: slv-dehr-cfg { + cell-id = <634>; + label = "slv-dehr-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_venus_cfg: slv-venus-cfg { + cell-id = <596>; + label = "slv-venus-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_display_cfg: slv-display-cfg { + cell-id = <590>; + label = "slv-display-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_camera_cfg: slv-camera-cfg { + cell-id = <589>; + label = "slv-camer-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_usb_hs: slv-usb-hs { + cell-id = <614>; + label = "slv-usb-hs"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_sdcc_1: slv-sdcc-1 { + cell-id = <606>; + label = "slv-sdcc-1"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_blsp_1: slv-blsp-1 { + cell-id = <613>; + label = "slv-blsp-1"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_sdcc_2: slv-sdcc-2 { + cell-id = <609>; + label = "slv-sdcc-2"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_gfx_cfg: slv-gfx-cfg { + cell-id = <598>; + label = "slv-gfx-cfg"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + slv_audio: slv-audio { + cell-id = <522>; + label = "slv-audio"; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_blsp_1: mas-blsp_1 { + cell-id = <86>; + label = "mas-blsp-1"; + qcom,connections = <&pnoc_m_1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_spdm: mas-spdm { + cell-id = <36>; + label = "mas-spdm"; + qcom,connections = <&pnoc_m_0>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_dehr: mas-dehr { + cell-id = <75>; + label = "mas-dehr"; + qcom,connections = <&pnoc_m_0>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_audio: mas-audio { + cell-id = <15>; + label = "mas-audio"; + qcom,connections = <&pnoc_m_0>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_usb_hs: mas-usb-hs { + cell-id = <87>; + label = "mas-usb-hs"; + qcom,connections = <&pnoc_m_1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <4>; + }; + + mas_pnoc_crypto_0: mas-pnoc-crypto-0 { + cell-id = <55>; + label = "mas-pnoc-crypto-0"; + qcom,connections = <&pnoc_int_1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <8>; + }; + + mas_pnoc_sdcc_1: mas-pnoc-sdcc-1 { + cell-id = <78>; + label = "mas-pnoc-sdcc-1"; + qcom,qport = <7>; + qcom,connections = <&pnoc_int_1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <8>; + }; + + mas_pnoc_sdcc_2: mas-pnoc-sdcc-2 { + cell-id = <81>; + label = "mas-pnoc-sdcc-2"; + qcom,qport = <8>; + qcom,connections = <&pnoc_int_1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,buswidth = <8>; + }; + + pnoc_snoc_mas: pnoc-snoc-mas { + cell-id = <10010>; + label = "pnoc-snoc-mas"; + qcom,connections = <&pnoc_snoc_slv>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <29>; + qcom,buswidth = <8>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-cdp.dtsi new file mode 100644 index 00000000000..561442ab365 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-cdp.dtsi @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { +}; + +&cci { + + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + qcom,camera@78 { + compatible = "ovti,ov5645"; + reg = <0x78 0x0>; + qcom,slave-id = <0x78 0x300a 0x5645>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + qcom,sensor-name = "ov5645"; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2800000>; + qcom,cam-vreg-max-voltage = <2100000 0 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,gpio-set-tbl-num = <1 1>; + qcom,gpio-set-tbl-flags = <0 2>; + qcom,gpio-set-tbl-delay = <1000 4000>; + qcom,csi-lane-assign = <0x4320>; + qcom,csi-lane-mask = <0x3>; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-mtp.dtsi new file mode 100644 index 00000000000..7636fbc7964 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-mtp.dtsi @@ -0,0 +1,303 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { +}; + +&cci { + + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + led_flash0: qcom,led-flash@0 { + cell-index = <0>; + reg = <0x66>; + qcom,slave-id = <0x66 0x00 0x0011>; + compatible = "qcom,led-flash1"; + label = "bd7710"; + qcom,flash-type = <1>; + qcom,gpio-no-mux = <0>; + qcom,enable_pinctrl; + pinctrl-names = "cam_flash_default", "cam_flash_suspend"; + pinctrl-0 = <&cam_sensor_flash_default>; + pinctrl-1 = <&cam_sensor_flash_sleep>; + gpios = <&msm_gpio 36 0>, + <&msm_gpio 32 0>, + <&msm_gpio 31 0>; + qcom,gpio-flash-reset = <0>; + qcom,gpio-flash-en = <1>; + qcom,gpio-flash-now = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <0 0 0>; + qcom,gpio-req-tbl-label = "FLASH_RST", + "FLASH_EN", + "FLASH_NOW"; + qcom,cci-master = <0>; + }; + + eeprom0: qcom,eeprom@20 { + cell-index = <0>; + reg = <0x20>; + qcom,eeprom-name = "sonyimx135"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; + qcom,cci-master = <0>; + qcom,num-blocks = <16>; + + qcom,page0 = <1 0x3b02 2 0x10 1 5>; + qcom,pageen0 = <1 0x3b00 2 0x01 1 5>; + qcom,poll0 = <1 0x3b01 2 0x01 1 5>; + qcom,mem0 = <8 0x3b04 2 0 1 0>; + + qcom,page1 = <1 0x3b02 2 0x0F 1 5>; + qcom,pageen1 = <1 0x3b00 2 0x01 1 5>; + qcom,poll1 = <1 0x3b01 2 0x01 1 5>; + qcom,mem1 = <8 0x3b04 2 0 1 0>; + + qcom,page2 = <1 0x3b02 2 0x0E 1 5>; + qcom,pageen2 = <1 0x3b00 2 0x01 1 5>; + qcom,poll2 = <1 0x3b01 2 0x01 1 5>; + qcom,mem2 = <8 0x3b04 2 0 1 0>; + + qcom,page3 = <1 0x3b02 2 0x0D 1 5>; + qcom,pageen3 = <1 0x3b00 2 0x01 1 5>; + qcom,poll3 = <1 0x3b01 2 0x01 1 5>; + qcom,mem3 = <8 0x3b04 2 0 1 0>; + + qcom,page4 = <1 0x3b02 2 0x12 1 5>; + qcom,pageen4 = <1 0x3b00 2 0x01 1 5>; + qcom,poll4 = <1 0x3b01 2 0x01 1 5>; + qcom,mem4 = <7 0x3b09 2 0 1 0>; + + qcom,page5 = <1 0x3b02 2 0x11 1 5>; + qcom,pageen5 = <1 0x3b00 2 0x01 1 5>; + qcom,poll5 = <1 0x3b01 2 0x01 1 5>; + qcom,mem5 = <7 0x3b09 2 0 1 0>; + + qcom,page6 = <1 0x3b02 2 0x10 1 5>; + qcom,pageen6 = <1 0x3b00 2 0x01 1 5>; + qcom,poll6 = <1 0x3b01 2 0x01 1 5>; + qcom,mem6 = <7 0x3b09 2 0 1 0>; + + qcom,page7 = <1 0x3b02 2 0x09 1 5>; + qcom,pageen7 = <1 0x3b00 2 0x01 1 5>; + qcom,poll7 = <1 0x3b01 2 0x01 1 5>; + qcom,mem7 = <7 0x3b09 2 0 1 0>; + + qcom,page8 = <1 0x3b02 2 0x01 1 5>; + qcom,pageen8 = <1 0x3b00 2 0x01 1 5>; + qcom,poll8 = <1 0x3b01 2 0x01 1 5>; + qcom,mem8 = <64 0x3b04 2 0 1 0>; + + qcom,page9 = <1 0x3b02 2 0x02 1 5>; + qcom,pageen9 = <1 0x3b00 2 0x01 1 5>; + qcom,poll9 = <1 0x3b01 2 0x01 1 5>; + qcom,mem9 = <64 0x3b04 2 0 1 0>; + + qcom,page10 = <1 0x3b02 2 0x03 1 5>; + qcom,pageen10 = <1 0x3b00 2 0x01 1 5>; + qcom,poll10 = <1 0x3b01 2 0x01 1 5>; + qcom,mem10 = <64 0x3b04 2 0 1 0>; + + qcom,page11 = <1 0x3b02 2 0x04 1 5>; + qcom,pageen11 = <1 0x3b00 2 0x01 1 5>; + qcom,poll11 = <1 0x3b01 2 0x01 1 5>; + qcom,mem11 = <64 0x3b04 2 0 1 0>; + + qcom,page12 = <1 0x3b02 2 0x05 1 5>; + qcom,pageen12 = <1 0x3b00 2 0x01 1 5>; + qcom,poll12 = <1 0x3b01 2 0x01 1 5>; + qcom,mem12 = <64 0x3b04 2 0 1 0>; + + qcom,page13 = <1 0x3b02 2 0x06 1 5>; + qcom,pageen13 = <1 0x3b00 2 0x01 1 5>; + qcom,poll13 = <1 0x3b01 2 0x01 1 5>; + qcom,mem13 = <64 0x3b04 2 0 1 0>; + + qcom,page14 = <1 0x3b02 2 0x07 1 5>; + qcom,pageen14 = <1 0x3b00 2 0x01 1 5>; + qcom,poll14 = <1 0x3b01 2 0x01 1 5>; + qcom,mem14 = <64 0x3b04 2 0 1 0>; + + qcom,page15 = <1 0x3b02 2 0x08 1 5>; + qcom,pageen15 = <1 0x3b00 2 0x01 1 5>; + qcom,poll15 = <1 0x3b01 2 0x01 1 5>; + qcom,mem15 = <56 0x3b04 2 0 1 0>; + + cam_vdig-supply = <&pm8916_s4>; + cam_vio-supply = <&pm8916_l17>; + cam_vana-supply = <&pm8916_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + qcom,gpio-no-mux = <0>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY"; + qcom,gpio-set-tbl-num = <1 1>; + qcom,gpio-set-tbl-flags = <0 2>; + qcom,gpio-set-tbl-delay = <1000 4000>; + qcom,csi-lane-assign = <0x4320>; + qcom,csi-lane-mask = <0x3>; + qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg", "sensor_vreg", + "sensor_gpio", "sensor_gpio" , "sensor_clk"; + qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio", + "sensor_gpio_reset", "sensor_gpio_standby","sensor_cam_mclk"; + qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>; + qcom,cam-power-seq-delay = <1 1 1 30 30 5>; + }; + + qcom,camera@78 { + compatible = "ovti,ov5645"; + reg = <0x78 0x0>; + qcom,slave-id = <0x78 0x300a 0x5645>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + qcom,sensor-name = "ov5645"; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,gpio-set-tbl-num = <1 1>; + qcom,gpio-set-tbl-flags = <0 2>; + qcom,gpio-set-tbl-delay = <1000 4000>; + qcom,csi-lane-assign = <0x4320>; + qcom,csi-lane-mask = <0x3>; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + qcom,led-flash-src = <&led_flash0>; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8916_s4>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd-skui.dtsi b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd-skui.dtsi new file mode 100644 index 00000000000..0df5f6c18c9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd-skui.dtsi @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-led-flash { + cell-index = <0>; + compatible = "qcom,camera-led-flash"; + qcom,flash-type = <3>; + }; +}; + +&cci { + + actuator0: qcom,actuator@6e { + cell-index = <3>; + reg = <0x6c>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + }; + + eeprom0: qcom,eeprom@6b{ + cell-index = <0>; + reg = <0x6b>; + qcom,eeprom-name = "sunny_q5v22e"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x6c>; + qcom,cci-master = <0>; + qcom,num-blocks = <7>; + + qcom,page0 = <1 0x0100 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x3d84 2 0xc0 1 1>; + qcom,poll1 = <0 0x0 2 0 1 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x3d85 2 0x00 1 1>; + qcom,poll2 = <0 0x0 2 0 1 1>; + qcom,mem2 = <0 0x0 2 0 1 0>; + qcom,page3 = <1 0x3d86 2 0x0f 1 1>; + qcom,pageen3 = <1 0x3d81 2 0x01 1 10>; + qcom,poll3 = <0 0x0 2 0 1 1>; + qcom,mem3 = <16 0x3d00 2 0 1 0>; + qcom,page4 = <1 0x3d84 2 0xc0 1 1>; + qcom,poll4 = <0 0x0 2 0 1 1>; + qcom,mem4 = <0 0x0 2 0 1 0>; + qcom,page5 = <1 0x3d85 2 0x10 1 1>; + qcom,poll5 = <0 0x0 2 0 1 1>; + qcom,mem5 = <0 0x0 2 0 1 0>; + qcom,page6 = <1 0x3d86 2 0x1f 1 1>; + qcom,pageen6 = <1 0x3d81 2 0x01 1 10>; + qcom,poll6 = <0 0x0 2 0 1 1>; + qcom,mem6 = <16 0x3d00 2 0 1 0>; + + cam_vdig-supply = <&pm8916_l2>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <2100000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2 >; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY"; + + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_gpio", "sensor_gpio", + "sensor_clk"; + qcom,cam-power-seq-val = "cam_vaf", + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk" ; + qcom,cam-power-seq-cfg-val = <1 1 1 23880000>; + qcom,cam-power-seq-delay = <1 10 10 5>; + + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8916_l2>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>, + <&msm_gpio 120 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-af-pwdm = <3>; + qcom,gpio-req-tbl-num = <0 1 2 3>; + qcom,gpio-req-tbl-flags = <1 0 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY", + "CAM_AF_PWDM"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8916_l2>; + cam_vana-supply = <&pm8916_l17>; + cam_vio-supply = <&pm8916_l6>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + qcom,mclk-23880000; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd.dtsi b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd.dtsi new file mode 100644 index 00000000000..b267cef62f1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-camera-sensor-qrd.dtsi @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&cci { + actuator0: qcom,actuator@6e { + cell-index = <3>; + reg = <0x18>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + cam_vaf-supply = <&pm8916_l10>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&msm_gpio 26 0>, + <&msm_gpio 35 0>, + <&msm_gpio 34 0>, + <&msm_gpio 114 0>, + <&msm_gpio 110 0>, + <&msm_gpio 120 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-vdig = <3>; + qcom,gpio-vana = <4>; + qcom,gpio-af-pwdm = <5>; + qcom,gpio-req-tbl-num = <0 1 2 3 4 5>; + qcom,gpio-req-tbl-flags = <1 0 0 0 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY", + "CAM_VDIG", + "CAM_VANA", + "CAM_AF_PWDM"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <270>; + qcom,cam-vreg-name = "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <1 0>; + qcom,cam-vreg-min-voltage = <0 2850000>; + qcom,cam-vreg-max-voltage = <0 2850000>; + qcom,cam-vreg-op-mode = <0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front_sleep>; + gpios = <&msm_gpio 27 0>, + <&msm_gpio 28 0>, + <&msm_gpio 33 0>, + <&msm_gpio 114 0>, + <&msm_gpio 110 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-vdig = <3>; + qcom,gpio-vana = <4>; + qcom,gpio-req-tbl-num = <0 1 2 3 4>; + qcom,gpio-req-tbl-flags = <1 0 0 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY", + "CAM_VDIG", + "CAM_VANA"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; + + diff --git a/arch/arm64/boot/dts/qcom/msm8916-camera.dtsi b/arch/arm64/boot/dts/qcom/msm8916-camera.dtsi new file mode 100644 index 00000000000..42655298d9f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-camera.dtsi @@ -0,0 +1,335 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,msm-cam@1800000{ + compatible = "qcom,msm-cam"; + }; + + qcom,csiphy@1b0ac00 { + cell-index = <0>; + compatible = "qcom,csiphy-v3.1", "qcom,csiphy"; + reg = <0x1b0ac00 0x200>, + <0x1b00030 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 78 0>; + interrupt-names = "csiphy"; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_gcc_camss_ispif_ahb_clk>, + <&clock_gcc clk_csi0phytimer_clk_src>, + <&clock_gcc clk_gcc_camss_csi0phytimer_clk>, + <&clock_gcc clk_camss_ahb_clk_src>, + <&clock_gcc clk_gcc_camss_csi0phy_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "ispif_ahb_clk", + "csiphy_timer_src_clk", "csiphy_timer_clk", + "camss_ahb_src", "csi_phy_clk", + "camss_ahb_clk"; + qcom,clock-rates = <0 0 200000000 0 0 0 0>; + }; + + qcom,csiphy@1b0b000 { + cell-index = <1>; + compatible = "qcom,csiphy-v3.1", "qcom,csiphy"; + reg = <0x1b0b000 0x200>, + <0x1b00038 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 79 0>; + interrupt-names = "csiphy"; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_gcc_camss_ispif_ahb_clk>, + <&clock_gcc clk_csi1phytimer_clk_src>, + <&clock_gcc clk_gcc_camss_csi1phytimer_clk>, + <&clock_gcc clk_camss_ahb_clk_src>, + <&clock_gcc clk_gcc_camss_csi1phy_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "ispif_ahb_clk", + "csiphy_timer_src_clk", "csiphy_timer_clk", + "camss_ahb_src", "csi_phy_clk", + "camss_ahb_clk"; + qcom,clock-rates = <0 0 200000000 0 0 0 0>; + }; + + qcom,csid@1b08000 { + cell-index = <0>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0x1b08000 0x100>; + reg-names = "csid"; + interrupts = <0 51 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1200000>; + qcom,mipi-csi-vdd-supply = <&pm8916_l2>; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_gcc_camss_ispif_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi0_ahb_clk>, + <&clock_gcc clk_csi0_clk_src>, + <&clock_gcc clk_gcc_camss_csi0_clk>, + <&clock_gcc clk_gcc_camss_csi0pix_clk>, + <&clock_gcc clk_gcc_camss_csi0rdi_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_ahb_clk", "csi_src_clk", + "csi_clk", "csi_pix_clk", + "csi_rdi_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0>; + }; + + qcom,csid@1b08400 { + cell-index = <1>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0x1b08400 0x100>; + reg-names = "csid"; + interrupts = <0 52 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1200000>; + qcom,mipi-csi-vdd-supply = <&pm8916_l2>; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_gcc_camss_ispif_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi1_ahb_clk>, + <&clock_gcc clk_csi1_clk_src>, + <&clock_gcc clk_gcc_camss_csi1_clk>, + <&clock_gcc clk_gcc_camss_csi1pix_clk>, + <&clock_gcc clk_gcc_camss_csi1rdi_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_ahb_clk", "csi_src_clk", + "csi_clk", "csi_pix_clk", + "csi_rdi_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0>; + }; + + qcom,ispif@1b0a000 { + cell-index = <0>; + compatible = "qcom,ispif-v3.0", "qcom,ispif"; + reg = <0x1b0a000 0x500>, + <0x1b00020 0x10>; + reg-names = "ispif", "csi_clk_mux"; + interrupts = <0 55 0>; + interrupt-names = "ispif"; + clocks = <&clock_gcc clk_gcc_camss_ispif_ahb_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>, + <&clock_gcc clk_csi0_clk_src>, + <&clock_gcc clk_gcc_camss_csi0_clk>, + <&clock_gcc clk_gcc_camss_csi0pix_clk>, + <&clock_gcc clk_gcc_camss_csi0rdi_clk>, + <&clock_gcc clk_csi1_clk_src>, + <&clock_gcc clk_gcc_camss_csi1_clk>, + <&clock_gcc clk_gcc_camss_csi1pix_clk>, + <&clock_gcc clk_gcc_camss_csi1rdi_clk>, + <&clock_gcc clk_csi1_clk_src>, + <&clock_gcc clk_gcc_camss_csi1_clk>, + <&clock_gcc clk_gcc_camss_csi1pix_clk>, + <&clock_gcc clk_gcc_camss_csi1rdi_clk>, + <&clock_gcc clk_csi1_clk_src>, + <&clock_gcc clk_gcc_camss_csi1_clk>, + <&clock_gcc clk_gcc_camss_csi1pix_clk>, + <&clock_gcc clk_gcc_camss_csi1rdi_clk>, + <&clock_gcc clk_vfe0_clk_src>, + <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe0_clk>, + <&clock_gcc clk_vfe0_clk_src>, + <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe0_clk>; + clock-names = "ispif_ahb_clk","camss_ahb_clk", + "csi0_src_clk", "csi0_clk", + "csi0_pix_clk","csi0_rdi_clk", "csi1_src_clk", + "csi1_clk", "csi1_pix_clk", "csi1_rdi_clk", + "csi2_src_clk","csi2_clk", "csi2_pix_clk","csi2_rdi_clk", + "csi3_src_clk","csi3_clk", "csi3_pix_clk", + "csi3_rdi_clk", "vfe0_clk_src", "camss_vfe_vfe0_clk", + "camss_csi_vfe0_clk","vfe1_clk_src","camss_vfe_vfe1_clk", + "camss_csi_vfe1_clk"; + qcom,clock-rates = <0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>; + }; + + qcom,vfe@1b10000 { + cell-index = <0>; + compatible = "qcom,vfe40"; + reg = <0x1b10000 0x1000>, + <0x1b40000 0x200>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 57 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe>; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_vfe0_clk_src>, + <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe0_clk>, + <&clock_gcc clk_gcc_camss_vfe_ahb_clk>, + <&clock_gcc clk_gcc_camss_vfe_axi_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "vfe_clk_src", + "camss_vfe_vfe_clk", "camss_csi_vfe_clk", "iface_clk", + "bus_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 266670000 0 0 0 0 0>; + qos-entries = <8>; + qos-regs = <0x2C4 0x2C8 0x2CC 0x2D0 0x2D4 0x2D8 + 0x2DC 0x2E0>; + qos-settings = <0xAAA5AAA5 0xAAA5AAA5 0xAAA5AAA5 + 0xAAA5AAA5 0xAAA5AAA5 0xAAA5AAA5 + 0xAAA5AAA5 0x0001AAA5>; + }; + + qcom,jpeg@1b1c000 { + cell-index = <0>; + compatible = "qcom,jpeg"; + reg = <0x1b1c000 0x400>, + <0x1b60000 0xc30>; + reg-names = "jpeg"; + interrupts = <0 59 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + clocks = <&clock_gcc clk_gcc_camss_jpeg0_clk>, + <&clock_gcc clk_gcc_camss_jpeg_ahb_clk>, + <&clock_gcc clk_gcc_camss_jpeg_axi_clk>, + <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "core_clk", "iface_clk", + "bus_clk0", "camss_top_ahb_clk", + "camss_ahb_clk"; + qcom,clock-rates = <266670000 0 0 0 0>; + }; + + qcom,irqrouter@1b00000 { + cell-index = <0>; + compatible = "qcom,irqrouter"; + reg = <0x1b00000 0x100>; + reg-names = "irqrouter"; + }; + + qcom,cpp@1b04000 { + cell-index = <0>; + compatible = "qcom,cpp"; + reg = <0x1b04000 0x100>, + <0x1b40000 0x200>, + <0x1b18000 0x018>; + reg-names = "cpp", "cpp_vbif", "cpp_hw"; + interrupts = <0 49 0>; + interrupt-names = "cpp"; + vdd-supply = <&gdsc_vfe>; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_vfe0_clk_src>, + <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_vfe_ahb_clk>, + <&clock_gcc clk_gcc_camss_cpp_clk>, + <&clock_gcc clk_gcc_camss_cpp_ahb_clk>, + <&clock_gcc clk_gcc_camss_vfe_axi_clk>, + <&clock_gcc clk_gcc_camss_micro_ahb_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "vfe_clk_src", + "camss_vfe_vfe_clk", "iface_clk", "cpp_core_clk", + "cpp_iface_clk", "cpp_bus_clk", "micro_iface_clk", + "camss_ahb_clk"; + qcom,clock-rates = <0 320000000 0 80000000 320000000 0 0 0 0>; + }; + + cci: qcom,cci@1b0c000 { + cell-index = <0>; + compatible = "qcom,cci"; + reg = <0x1b0c000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "cci"; + interrupts = <0 50 0>; + interrupt-names = "cci"; + clocks = <&clock_gcc clk_gcc_camss_top_ahb_clk>, + <&clock_gcc clk_cci_clk_src>, + <&clock_gcc clk_gcc_camss_cci_ahb_clk>, + <&clock_gcc clk_gcc_camss_cci_clk>, + <&clock_gcc clk_gcc_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "cci_src_clk", + "cci_ahb_clk", "cci_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 19200000 80000000 0 0>, + <0 37500000 80000000 0 0>; + pinctrl-names = "cci_default", "cci_suspend"; + pinctrl-0 = <&cci0_default>; + pinctrl-1 = <&cci0_sleep>; + gpios = <&msm_gpio 29 0>, + <&msm_gpio 30 0>; + qcom,gpio-tbl-num = <0 1>; + qcom,gpio-tbl-flags = <1 1>; + qcom,gpio-tbl-label = "CCI_I2C_DATA0", + "CCI_I2C_CLK0"; + i2c_freq_100Khz: qcom,i2c_standard_mode { + status = "disabled"; + }; + i2c_freq_400Khz: qcom,i2c_fast_mode { + status = "disabled"; + }; + i2c_freq_custom: qcom,i2c_custom_mode { + status = "disabled"; + }; + + i2c_freq_1Mhz: qcom,i2c_fast_plus_mode { + status = "disabled"; + }; + + }; +}; + +&i2c_freq_100Khz { + qcom,hw-thigh = <78>; + qcom,hw-tlow = <114>; + qcom,hw-tsu-sto = <28>; + qcom,hw-tsu-sta = <28>; + qcom,hw-thd-dat = <10>; + qcom,hw-thd-sta = <77>; + qcom,hw-tbuf = <118>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <1>; + status = "ok"; +}; + +&i2c_freq_400Khz { + qcom,hw-thigh = <20>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <32>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; + +&i2c_freq_custom { + qcom,hw-thigh = <15>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <25>; + qcom,hw-scl-stretch-en = <1>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; + +&i2c_freq_1Mhz { + qcom,hw-thigh = <16>; + qcom,hw-tlow = <22>; + qcom,hw-tsu-sto = <17>; + qcom,hw-tsu-sta = <18>; + qcom,hw-thd-dat = <16>; + qcom,hw-thd-sta = <15>; + qcom,hw-tbuf = <19>; + qcom,hw-scl-stretch-en = <1>; + qcom,hw-trdhld = <3>; + qcom,hw-tsp = <3>; + qcom,cci-clk-src = <37500000>; + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-cdp-smb1360.dts b/arch/arm64/boot/dts/qcom/msm8916-cdp-smb1360.dts new file mode 100644 index 00000000000..fece75d8f66 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-cdp-smb1360.dts @@ -0,0 +1,51 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-cdp.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 SMB1360 CDP"; + compatible = "qcom,msm8916-cdp", "qcom,msm8916", "qcom,cdp"; + qcom,board-id = <1 1>; +}; + +&soc { + i2c@78b8000 { + smb1360_otg_supply: smb1360-chg-fg@14 { + compatible = "qcom,smb1360-chg-fg"; + reg = <0x14>; + interrupt-parent = <&msm_gpio>; + interrupts = <62 8>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + regulator-name = "smb1360_otg_vreg"; + + qcom,float-voltage-mv = <4200>; + qcom,iterm-ma = <100>; + qcom,charging-disabled; + qcom,recharge-thresh-mv = <100>; + qcom,thermal-mitigation = <1500 700 600 0>; + }; + }; +}; + +&pm8916_chg { + status = "disabled"; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-cdp.dts b/arch/arm64/boot/dts/qcom/msm8916-cdp.dts new file mode 100644 index 00000000000..42dbdcd4e0f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-cdp.dts @@ -0,0 +1,22 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-cdp.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 CDP"; + compatible = "qcom,msm8916-cdp", "qcom,msm8916", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8916-cdp.dtsi new file mode 100644 index 00000000000..afa3684e9da --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-cdp.dtsi @@ -0,0 +1,582 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916.dtsi" +#include "msm8916-pinctrl.dtsi" +#include "msm8916-camera-sensor-cdp.dtsi" + +/ { + aliases { + serial0 = &blsp1_uart2; + }; +}; + +&soc { + i2c@78b9000 { /* BLSP1 QUP5 */ + synaptics@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + synaptics,irq-gpio = <&msm_gpio 13 0x2008>; + synaptics,reset-gpio = <&msm_gpio 12 0x0>; + synaptics,i2c-pull-up; + synaptics,power-down; + synaptics,disable-gpios; + synaptics,detect-device; + synaptics,device1 { + synaptics,package-id = <3202>; + synaptics,button-map = <139 172 158>; + }; + synaptics,device2 { + synaptics,package-id = <3408>; + synaptics,display-coords = <0 0 1079 1919>; + synaptics,panel-coords = <0 0 1079 2063>; + }; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_rmi4_i2c"; + qcom,disp-maxx = <1079>; + qcom,disp-maxy = <1919>; + qcom,panel-maxx = <1079>; + qcom,panel-maxy = <2084>; + qcom,key-codes = <158 139 172 217>; + }; + + i2c@78ba000 { /* BLSP1 QUP6 */ + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 21 0x00>; + qcom,dis-gpio = <&msm_gpio 20 0x00>; + qcom,clk-src = "BBCLK2"; + qcom,clk-en-gpio = <&msm_gpio 0 0x00>; + interrupt-parent = <&msm_gpio>; + interrupts = <21 0>; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8916_gpios 2 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + i2c@78b6000 { /* BLSP1 QUP2 */ + mpu6050@68 { /* Gyroscope and accelerometer sensor combo */ + compatible = "invn,mpu6050"; + reg = <0x68>; + pinctrl-names = "mpu_default","mpu_sleep"; + pinctrl-0 = <&mpu6050_default>; + pinctrl-1 = <&mpu6050_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <115 0x2>; + vdd-supply = <&pm8916_l17>; + vlogic-supply = <&pm8916_l16>; + invn,gpio-int = <&msm_gpio 115 0x2>; + invn,place = "Portrait Down Back Side"; + }; + + avago@39 { /* Ambient light and proximity sensor */ + compatible = "avago,apds9900"; + reg = <0x39>; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&apds99xx_default>; + pinctrl-1 = <&apds99xx_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <113 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + avago,irq-gpio = <&msm_gpio 113 0x2002>; + avago,ps-threshold = <600>; + avago,ps-hysteresis-threshold = <500>; + avago,ps-pulse = <8>; + avago,ps-pgain = <0>; + avago,als-B = <223>; + avago,als-C = <70>; + avago,als-D = <142>; + avago,ga-value = <48>; + }; + + akm@c { + compatible = "ak,ak8963"; + reg = <0x0c>; + pinctrl-names = "ak8963_default", "ak8963_sleep"; + pinctrl-0 = <&ak8963_default>; + pinctrl-1 = <&ak8963_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <69 0x2>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + ak,layout = <0x6>; + ak,auto-report; + }; + }; + + i2c@78b6000 { /* BLSP1 QUP2 */ + wcd9xxx_codec@14 { + compatible = "qcom,wcd9xxx-i2c"; + reg = <0x0d>; + qcom,cdc-reset-gpio = <&msm_gpio 67 0>; + interrupt-parent = <&wcd9xxx_intc>; + interrupts = <0 1 2 3 4 5 6>, <7 8 9 10 11 12 13>, + <14 15 16 17 18 19 20>, <21 22 23 24 25 26 27 28>; + + cdc-vdd-buck-supply = <&pm8916_s4>; + qcom,cdc-vdd-buck-voltage = <1800000 2150000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-vdd-h-supply = <&pm8916_l15>; + qcom,cdc-vdd-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-h-current = <25000>; + + cdc-vdd-px-supply = <&pm8916_l6>; + qcom,cdc-vdd-px-voltage = <1800000 1800000>; + qcom,cdc-vdd-px-current = <25000>; + + cdc-vdd-cx-supply = <&pm8916_l2>; + qcom,cdc-vdd-cx-voltage = <1200000 1200000>; + qcom,cdc-vdd-cx-current = <2000>; + + cdc-vdd-buckhelper-supply = <&pm8916_l15>; + qcom,cdc-vdd-buckhelper-voltage = <1775000 2125000>; + qcom,cdc-vdd-buckhelper-current = <10000>; + + qcom,cdc-static-supplies = "cdc-vdd-h", + "cdc-vdd-px", + "cdc-vdd-cx"; + + qcom,cdc-cp-supplies = "cdc-vdd-buck", + "cdc-vdd-buckhelper"; + + qcom,cdc-micbias-ldoh-v = <0x3>; + qcom,cdc-micbias-cfilt1-mv = <1800>; + qcom,cdc-micbias-cfilt2-mv = <2700>; + qcom,cdc-micbias-cfilt3-mv = <1800>; + + qcom,cdc-micbias1-cfilt-sel = <0x0>; + qcom,cdc-micbias2-cfilt-sel = <0x1>; + qcom,cdc-micbias3-cfilt-sel = <0x2>; + + qcom,cdc-mclk-clk-rate = <9600000>; + }; + + wcd9xxx_codec@77 { + compatible = "qcom,wcd9xxx-i2c"; + reg = <0x77>; + }; + + wcd9xxx_codec@66 { + compatible = "qcom,wcd9xxx-i2c"; + reg = <0x66>; + }; + + wcd9xxx_codec@55 { + compatible = "qcom,wcd9xxx-i2c"; + reg = <0x55>; + }; + }; + + sound { + compatible = "qcom,msm8x16-audio-codec"; + qcom,model = "msm8x16-snd-card"; + qcom,msm-snd-card-id = <0>; + qcom,msm-codec-type = "internal"; + qcom,msm-ext-pa = "primary"; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,msm-micbias1-ext-cap; + qcom,msm-mclk-freq = <9600000>; + qcom,msm-hs-micbias-type = "internal"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS Internal1", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS Internal3", "Secondary Mic", + "AMIC1", "MIC BIAS Internal1", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS Internal3", + "DMIC1", "MIC BIAS Internal1", + "MIC BIAS Internal1", "Digital Mic1", + "DMIC2", "MIC BIAS Internal1", + "MIC BIAS Internal1", "Digital Mic2"; + pinctrl-names = "cdc_lines_act", + "cdc_lines_sus", + "cdc_lines_sec_ext_act", + "cdc_lines_sec_ext_sus"; + pinctrl-0 = <&cdc_pdm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus>; + pinctrl-2 = <&cdc_pdm_lines_act &cdc_ext_pa_act + &cdc_ext_pa_ws_act>; + pinctrl-3 = <&cdc_pdm_lines_sus &cdc_ext_pa_sus + &cdc_ext_pa_ws_sus>; + }; + + sound-9306 { + compatible = "qcom,msm8x16-audio-codec"; + qcom,model = "msm8x16-tapan-snd-card"; + qcom,msm-snd-card-id = <1>; + qcom,msm-codec-type = "external"; + qcom,tapan-mclk-clk-freq = <9600000>; + qcom,prim-auxpcm-gpio-clk = <&msm_gpio 63 0>; + qcom,prim-auxpcm-gpio-sync = <&msm_gpio 64 0>; + qcom,prim-auxpcm-gpio-din = <&msm_gpio 65 0>; + qcom,prim-auxpcm-gpio-dout = <&msm_gpio 66 0>; + qcom,prim-auxpcm-gpio-set = "prim-gpio-prim"; + qcom,tapan-codec-9302; + pinctrl-names = "ext_cdc_tlmm_lines_act", + "ext_cdc_tlmm_lines_sus"; + pinctrl-0 = <&ext_cdc_tlmm_lines_act>; + pinctrl-1 = <&ext_cdc_tlmm_lines_sus>; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "LDO_H", "MCLK", + "SPK_OUT", "MCLK", + "SPK_OUT", "EXT_VDD_SPKR", + "AMIC1", "MIC BIAS1 Internal1", + "MIC BIAS1 Internal1", "Handset Mic", + "AMIC2", "MIC BIAS2 External", + "MIC BIAS2 External", "Headset Mic", + "AMIC4", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCRight Headset Mic", + "AMIC5", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCLeft Headset Mic", + "DMIC1", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic1", + "DMIC2", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic2", + "DMIC3", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic3", + "DMIC4", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic4"; + }; +}; + +&blsp1_uart2 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_sleep>; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + camera_focus { + label = "camera_focus"; + gpios = <&msm_gpio 108 0x1>; + linux,input-type = <1>; + linux,code = <0x210>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + camera_snapshot { + label = "camera_snapshot"; + gpios = <&msm_gpio 109 0x1>; + linux,input-type = <1>; + linux,code = <0x2fe>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&msm_gpio 107 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&sdhc_1 { + vdd-supply = <&pm8916_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 400000>; + + vdd-io-supply = <&pm8916_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 60000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; + + qcom,nonremovable; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8916_l11>; + qcom,vdd-voltage-level = <2800000 2950000>; + qcom,vdd-current-level = <15000 400000>; + + vdd-io-supply = <&pm8916_l12>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 50000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &msm_gpio 38 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&msm_gpio 38 0x1>; + + status = "ok"; +}; + +&pm8916_mpps { + mpp@a000 { /* MPP 1 */ + /* VDD_PX */ + status = "disabled"; + }; + + mpp@a100 { /* MPP 2 */ + /* HR LED */ + status = "disabled"; + }; + + mpp@a200 { /* MPP 3 */ + /* VREF DAC */ + status = "disabled"; + }; + + mpp@a300 { /* MPP 4 */ + /* Backlight PWM */ + qcom,mode = <1>; /* Digital output */ + qcom,invert = <0>; /* Disable invert */ + qcom,src-sel = <4>; /* DTEST1 */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,master-en = <1>; /* Enable MPP */ + }; +}; + +&pm8916_gpios { + gpio@c000 { /* GPIO 1 */ + /* Battery UICC Alarm */ + status = "disabled"; + }; + + gpio@c100 { /* GPIO 2 */ + /* NFC_CLK_REQ */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c200 { /* GPIO 3 */ + /* External regulator control for WTR */ + status = "disabled"; + }; + + gpio@c300 { /* GPIO 4 */ + /* External regulator control for APC */ + status = "disabled"; + }; +}; + +#include "dsi-panel-jdi-1080p-video.dtsi" +#include "dsi-panel-nt35590-720p-video.dtsi" +#include "dsi-panel-nt35590-720p-cmd.dtsi" +#include "dsi-panel-hx8394d-720p-video.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&dsi_jdi_1080_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,cont-splash-enabled; +}; + +&dsi_nt35590_720_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,cont-splash-enabled; + qcom,esd-check-enabled; +}; + +&dsi_nt35590_720_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,cont-splash-enabled; + qcom,esd-check-enabled; +}; + +&dsi_hx8394d_720_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,cont-splash-enabled; +}; + +&mdss_dsi_active { + pinmux { + function = "gpio"; + pins = "gpio97", "gpio25", "gpio98"; + }; + pinconf { + pins = "gpio97", "gpio25", "gpio98"; + }; +}; + +&mdss_dsi_suspend { + pinmux { + function = "gpio"; + pins = "gpio97", "gpio25", "gpio98"; + }; + pinconf { + pins = "gpio97", "gpio25", "gpio98"; + }; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_jdi_1080_vid>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,platform-enable-gpio = <&msm_gpio 97 0>; + qcom,platform-reset-gpio = <&msm_gpio 25 0>; + qcom,platform-bklight-en-gpio = <&msm_gpio 98 0>; +}; + +/* CoreSight */ +&tpiu { + pinctrl-names = "seta-pctrl", "setb-pctrl", "sdcard", "trace", + "swduart", "swdtrc", "jtag", "spmi"; + /* Mictor */ + pinctrl-0 = <&tpiu_seta>; + pinctrl-1 = <&tpiu_setb>; + /* NIDnT */ + pinctrl-2 = <&qdsd_clk_sdcard &qdsd_cmd_sdcard + &qdsd_data0_sdcard &qdsd_data1_sdcard + &qdsd_data2_sdcard &qdsd_data3_sdcard>; + pinctrl-3 = <&qdsd_clk_trace &qdsd_cmd_trace + &qdsd_data0_trace &qdsd_data1_trace + &qdsd_data2_trace &qdsd_data3_trace>; + pinctrl-4 = <&qdsd_cmd_swduart &qdsd_data0_swduart + &qdsd_data1_swduart &qdsd_data2_swduart + &qdsd_data3_swduart>; + pinctrl-5 = <&qdsd_clk_swdtrc &qdsd_cmd_swdtrc + &qdsd_data0_swdtrc &qdsd_data1_swdtrc + &qdsd_data2_swdtrc &qdsd_data3_swdtrc>; + pinctrl-6 = <&qdsd_cmd_jtag &qdsd_data0_jtag + &qdsd_data1_jtag &qdsd_data2_jtag + &qdsd_data3_jtag>; + pinctrl-7 = <&qdsd_clk_spmi &qdsd_cmd_spmi + &qdsd_data0_spmi &qdsd_data3_spmi>; +}; + +&pm8916_chg { + status = "ok"; + qcom,charging-disabled; + qcom,disable-follow-on-reset; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; + +&spmi_bus { + qcom,pm8916@0 { + qcom,leds@a100 { + status = "okay"; + qcom,led_mpp_2 { + label = "mpp"; + linux,name = "button-backlight"; + linux,default-trigger = "none"; + qcom,default-state = "off"; + qcom,max-current = <40>; + qcom,current-setting = <5>; + qcom,id = <6>; + qcom,mode = "manual"; + qcom,source-sel = <1>; + qcom,mode-ctrl = <0x60>; + }; + }; + }; +}; + +&qcom_tzlog { + status = "okay"; +}; + +&qcom_rng { + status = "okay"; +}; + +&qcom_crypto { + status = "okay"; +}; + +&qcom_cedev { + status = "okay"; +}; + +&qcom_seecom { + status = "okay"; +}; + +&spmi_bus { + qcom,pm8916@1 { + qcom,vibrator@c000 { + status = "okay"; + qcom,vib-timeout-ms = <15000>; + qcom,vib-vtg-level-mV = <3100>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-coresight.dtsi b/arch/arm64/boot/dts/qcom/msm8916-coresight.dtsi new file mode 100644 index 00000000000..dc5c1b0f293 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-coresight.dtsi @@ -0,0 +1,595 @@ +/* Copyright (c) 2013 - 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tmc_etr: tmc@826000 { + compatible = "arm,coresight-tmc"; + reg = <0x826000 0x1000>, + <0x884000 0x15000>; + reg-names = "tmc-base", "bam-base"; + interrupts = <0 166 0>; + interrupt-names = "byte-cntr-irq"; + + qcom,memory-size = <0x100000>; + qcom,tmc-flush-powerdown; + + coresight-id = <0>; + coresight-name = "coresight-tmc-etr"; + coresight-nr-inports = <1>; + coresight-ctis = <&cti0 &cti8>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpiu: tpiu@820000 { + compatible = "arm,coresight-tpiu"; + reg = <0x820000 0x1000>, + <0x1100000 0xb0000>; + reg-names = "tpiu-base", "nidnt-base"; + + coresight-id = <1>; + coresight-name = "coresight-tpiu"; + coresight-nr-inports = <1>; + + qcom,nidnthw; + qcom,nidnt-swduart; + qcom,nidnt-swdtrc; + qcom,nidnt-jtag; + qcom,nidnt-spmi; + nidnt-gpio = <38>; + nidnt-gpio-polarity = <1>; + + interrupts = <0 82 0>; + interrupt-names = "nidnt-irq"; + + vdd-supply = <&pm8916_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 400000>; + + vdd-io-supply = <&pm8916_l12>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 50000>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + replicator: replicator@824000 { + compatible = "qcom,coresight-replicator"; + reg = <0x824000 0x1000>; + reg-names = "replicator-base"; + + coresight-id = <2>; + coresight-name = "coresight-replicator"; + coresight-nr-inports = <1>; + coresight-outports = <0 1>; + coresight-child-list = <&tmc_etr &tpiu>; + coresight-child-ports = <0 0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tmc_etf: tmc@825000 { + compatible = "arm,coresight-tmc"; + reg = <0x825000 0x1000>; + reg-names = "tmc-base"; + + coresight-id = <3>; + coresight-name = "coresight-tmc-etf"; + coresight-nr-inports = <1>; + coresight-outports = <0>; + coresight-child-list = <&replicator>; + coresight-child-ports = <0>; + coresight-default-sink; + coresight-ctis = <&cti0 &cti8>; + + qcom,tmc-flush-powerdown; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in0: funnel@821000 { + compatible = "arm,coresight-funnel"; + reg = <0x821000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <4>; + coresight-name = "coresight-funnel-in0"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&tmc_etf>; + coresight-child-ports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss: funnel@841000 { + compatible = "arm,coresight-funnel"; + reg = <0x841000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <5>; + coresight-name = "coresight-funnel-apss"; + coresight-nr-inports = <4>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <4>; + + qcom,funnel-save-restore; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in2: funnel@869000 { + compatible = "arm,coresight-funnel"; + reg = <0x869000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <6>; + coresight-name = "coresight-funnel-in2"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <6>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in3: funnel@868000 { + compatible = "arm,coresight-funnel"; + reg = <0x868000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <7>; + coresight-name = "coresight-funnel-in3"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <7>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + stm: stm@802000 { + compatible = "arm,coresight-stm"; + reg = <0x802000 0x1000>, + <0x9280000 0x180000>; + reg-names = "stm-base", "stm-data-base"; + + coresight-id = <8>; + coresight-name = "coresight-stm"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <7>; + + qcom,data-barrier; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + csr: csr@801000 { + compatible = "qcom,coresight-csr"; + reg = <0x801000 0x1000>; + reg-names = "csr-base"; + + coresight-id = <9>; + coresight-name = "coresight-csr"; + coresight-nr-inports = <0>; + + qcom,blk-size = <1>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm0: etm@85c000 { + compatible = "arm,coresight-etmv4"; + reg = <0x85c000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <10>; + coresight-name = "coresight-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <0>; + coresight-etm-cpu = <&CPU0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm1: etm@85d000 { + compatible = "arm,coresight-etmv4"; + reg = <0x85d000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <11>; + coresight-name = "coresight-etm1"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <1>; + coresight-etm-cpu = <&CPU1>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm2: etm@85e000 { + compatible = "arm,coresight-etmv4"; + reg = <0x85e000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <12>; + coresight-name = "coresight-etm2"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <2>; + coresight-etm-cpu = <&CPU2>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm3: etm@85f000 { + compatible = "arm,coresight-etmv4"; + reg = <0x85f000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <13>; + coresight-name = "coresight-etm3"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <3>; + coresight-etm-cpu = <&CPU3>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + rpm_etm0 { + compatible = "qcom,coresight-rpm-etm"; + + coresight-id = <14>; + coresight-name = "coresight-rpm-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <0>; + }; + + wcn_etm0 { + compatible = "qcom,coresight-wcn-etm"; + + coresight-id = <15>; + coresight-name = "coresight-wcn-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in3>; + coresight-child-ports = <0>; + }; + + modem_etm0 { + compatible = "qcom,coresight-modem-etm"; + + coresight-id = <16>; + coresight-name = "coresight-modem-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <2>; + }; + + cti0: cti@810000 { + compatible = "arm,coresight-cti"; + reg = <0x810000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <17>; + coresight-name = "coresight-cti0"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti1: cti@811000 { + compatible = "arm,coresight-cti"; + reg = <0x811000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <18>; + coresight-name = "coresight-cti1"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti2: cti@812000 { + compatible = "arm,coresight-cti"; + reg = <0x812000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <19>; + coresight-name = "coresight-cti2"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti3: cti@813000 { + compatible = "arm,coresight-cti"; + reg = <0x813000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <20>; + coresight-name = "coresight-cti3"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti4: cti@814000 { + compatible = "arm,coresight-cti"; + reg = <0x814000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <21>; + coresight-name = "coresight-cti4"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti5: cti@815000 { + compatible = "arm,coresight-cti"; + reg = <0x815000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <22>; + coresight-name = "coresight-cti5"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti6: cti@816000 { + compatible = "arm,coresight-cti"; + reg = <0x816000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <23>; + coresight-name = "coresight-cti6"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti7: cti@817000 { + compatible = "arm,coresight-cti"; + reg = <0x817000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <24>; + coresight-name = "coresight-cti7"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti8: cti@818000 { + compatible = "arm,coresight-cti"; + reg = <0x818000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <25>; + coresight-name = "coresight-cti8"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu0: cti@858000 { + compatible = "arm,coresight-cti"; + reg = <0x858000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <26>; + coresight-name = "coresight-cti-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-save; + }; + + cti_cpu1: cti@859000 { + compatible = "arm,coresight-cti"; + reg = <0x859000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <27>; + coresight-name = "coresight-cti-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-save; + }; + + cti_cpu2: cti@85a000 { + compatible = "arm,coresight-cti"; + reg = <0x85a000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <28>; + coresight-name = "coresight-cti-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-save; + }; + + cti_cpu3: cti@85b000 { + compatible = "arm,coresight-cti"; + reg = <0x85b000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <29>; + coresight-name = "coresight-cti-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-save; + }; + + cti_video_cpu0: cti@830000 { + compatible = "arm,coresight-cti"; + reg = <0x830000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <30>; + coresight-name = "coresight-cti-video-cpu0"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_wcn_cpu0: cti@835000 { + compatible = "arm,coresight-cti"; + reg = <0x835000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <31>; + coresight-name = "coresight-cti-wcn-cpu0"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_modem_cpu0: cti@838000 { + compatible = "arm,coresight-cti"; + reg = <0x838000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <32>; + coresight-name = "coresight-cti-modem-cpu0"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_rpm_cpu0: cti@83c000 { + compatible = "arm,coresight-cti"; + reg = <0x83c000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <33>; + coresight-name = "coresight-cti-rpm-cpu0"; + coresight-nr-inports = <0>; + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + fuse: fuse@5e01c { + compatible = "arm,coresight-fuse-v2"; + reg = <0x5e01c 0x8>, + <0x58040 0x4>, + <0x5e00c 0x4>; + reg-names = "fuse-base", "nidnt-fuse-base", "qpdi-fuse-base"; + + coresight-id = <34>; + coresight-name = "coresight-fuse"; + coresight-nr-inports = <0>; + }; + + hwevent: hwevent@86c000 { + compatible = "qcom,coresight-hwevent"; + reg = <0x86c000 0x108>, + <0x86cfb0 0x4>, + <0x200c000 0x28>, + <0x78c5010 0x4>, + <0x7885010 0x4>; + reg-names = "wrapper-mux", "wrapper-lockaccess", "spmi-mux", + "usbbam-mux", "blsp-mux"; + coresight-id = <35>; + coresight-name = "coresight-hwevent"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + qpdi: qpdi@1941000 { + compatible = "qcom,coresight-qpdi"; + reg = <0x1941000 0x4>; + reg-names = "qpdi-base"; + + coresight-id = <36>; + coresight-name = "coresight-qpdi"; + coresight-nr-inports = <0>; + + vdd-supply = <&pm8916_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 400000>; + + vdd-io-supply = <&pm8916_l12>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 50000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-gpu.dtsi b/arch/arm64/boot/dts/qcom/msm8916-gpu.dtsi new file mode 100644 index 00000000000..e4690c606ed --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-gpu.dtsi @@ -0,0 +1,109 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + msm_gpu: qcom,kgsl-3d0@01c00000 { + label = "kgsl-3d0"; + compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d"; + reg = <0x01c00000 0x10000 + 0x01c10000 0x10000>; + reg-names = "kgsl_3d0_reg_memory" , "kgsl_3d0_shader_memory"; + interrupts = <0 33 0>; + interrupt-names = "kgsl_3d0_irq"; + qcom,id = <0>; + + qcom,chipid = <0x03000600>; + + qcom,initial-pwrlevel = <1>; + + /* Idle Timeout = HZ/12 */ + qcom,idle-timeout = <8>; + qcom,strtstp-sleepwake; + + /* + * Clocks = KGSL_CLK_CORE | KGSL_CLK_IFACE | KGSL_CLK_MEM | + * KGSL_CLK_MEM_IFACE | KGSL_CLK_ALT_MEM_IFACE + */ + qcom,clk-map = <0x0000005E>; + clocks = <&clock_gcc clk_gcc_oxili_gfx3d_clk>, + <&clock_gcc clk_gcc_oxili_ahb_clk>, + <&clock_gcc clk_gcc_oxili_gmem_clk>, + <&clock_gcc clk_gcc_bimc_gfx_clk>, + <&clock_gcc clk_gcc_bimc_gpu_clk>, + <&clock_gcc clk_gcc_gtcu_ahb_clk>; + clock-names = "core_clk", "iface_clk", "mem_clk", + "mem_iface_clk", "alt_mem_iface_clk", + "gtcu_iface_clk"; + + /* Bus Scale Settings */ + qcom,msm-bus,name = "grp3d"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <26 512 0 0>, + <26 512 160000 1600000>, + <26 512 800000 3200000>, + <26 512 1066000 4264000>; + + /* GDSC oxili regulators */ + vdd-supply = <&gdsc_oxili_gx>; + + /* IOMMU Data */ + iommu = <&gfx_iommu>; + + /* Trace bus */ + coresight-id = <67>; + coresight-name = "coresight-gfx"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <5>; + + /* CPU latency parameter */ + qcom,pm-qos-active-latency = <701>; + qcom,pm-qos-wakeup-latency = <701>; + + /* Power levels */ + qcom,gpu-pwrlevels { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "qcom,gpu-pwrlevels"; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <400000000>; + qcom,bus-freq = <3>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <310000000>; + qcom,bus-freq = <2>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <200000000>; + qcom,bus-freq = <1>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <19200000>; + qcom,bus-freq = <0>; + }; + }; + + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-iommu-domains.dtsi b/arch/arm64/boot/dts/qcom/msm8916-iommu-domains.dtsi new file mode 100644 index 00000000000..71cbb82ad1f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-iommu-domains.dtsi @@ -0,0 +1,59 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,iommu-domains { + compatible = "qcom,iommu-domains"; + + /* + * non-secure addr pool from 1500 MB to 3532 MB + * 3532 MB to 3548 MB + */ + venus_domain_ns: qcom,iommu-domain1 { + label = "venus_ns"; + qcom,iommu-contexts = <&venus_ns>; + qcom,virtual-addr-pool = <0x5dc00000 0x7f000000 + 0xdcc00000 0x1000000>; + }; + + /* + * secure bitstream addr pool from 1200 MB to 1500 MB + */ + venus_domain_sec_bitstream: qcom,iommu-domain2 { + label = "venus_sec_bitstream"; + qcom,iommu-contexts = <&venus_sec_bitstream>; + qcom,virtual-addr-pool = <0x4b000000 0x12c00000>; + qcom,secure-domain; + }; + + /* + * secure pixel addr pool from 616 MB to 1200 MB + */ + venus_domain_sec_pixel: qcom,iommu-domain3 { + label = "venus_sec_pixel"; + qcom,iommu-contexts = <&venus_sec_pixel>; + qcom,virtual-addr-pool = <0x25800000 0x25800000>; + qcom,secure-domain; + }; + + /* + * secure non-pixel addr pool from 16 MB to 616 MB + */ + venus_domain_sec_non_pixel: qcom,iommu-domain4 { + label = "venus_sec_non_pixel"; + qcom,iommu-contexts = <&venus_sec_non_pixel>; + qcom,virtual-addr-pool = <0x1000000 0x24800000>; + qcom,secure-domain; + }; + + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-iommu.dtsi b/arch/arm64/boot/dts/qcom/msm8916-iommu.dtsi new file mode 100644 index 00000000000..82acb8df2a8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-iommu.dtsi @@ -0,0 +1,21 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm-iommu-v2.dtsi" + +&gfx_iommu { + status = "ok"; +}; + +&apps_iommu { + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-ion.dtsi b/arch/arm64/boot/dts/qcom/msm8916-ion.dtsi new file mode 100644 index 00000000000..687ab920114 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-ion.dtsi @@ -0,0 +1,64 @@ +/* Copyright (c) 2014, Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,ion { + compatible = "qcom,msm-ion"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,ion-heap@25 { + reg = <25>; + qcom,ion-heap-type = "SYSTEM"; + }; + + qcom,ion-heap@21 { + reg = <21>; + qcom,ion-heap-type = "SYSTEM_CONTIG"; + }; + + qcom,ion-heap@8 { /* CP_MM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <8>; + memory-region = <&secure_mem>; + qcom,ion-heap-type = "SECURE_DMA"; + }; + + qcom,ion-heap@27 { /* QSEECOM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <27>; + memory-region = <&venus_qseecom_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@28 { /* AUDIO HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <28>; + memory-region = <&audio_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@23 { /* OTHER PIL HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <23>; + memory-region = <&peripheral_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@26 { /* MODEM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <26>; + memory-region = <&modem_adsp_mem>; + qcom,ion-heap-type = "DMA"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-ipcrouter.dtsi b/arch/arm64/boot/dts/qcom/msm8916-ipcrouter.dtsi new file mode 100644 index 00000000000..3b59d159ea8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-ipcrouter.dtsi @@ -0,0 +1,37 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,ipc_router { + compatible = "qcom,ipc_router"; + qcom,node-id = <1>; + }; + + qcom,ipc_router_modem_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "modem"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_wcnss_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "wcnss"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-mdss-pll.dtsi b/arch/arm64/boot/dts/qcom/msm8916-mdss-pll.dtsi new file mode 100644 index 00000000000..51e8cd9a9ad --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-mdss-pll.dtsi @@ -0,0 +1,53 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_dsi0_pll: qcom,mdss_dsi_pll@1a98300 { + compatible = "qcom,mdss_dsi_pll_8916"; + label = "MDSS DSI 0 PLL"; + cell-index = <0>; + #clock-cells = <1>; + + reg = <0x1a98300 0xd4>, <0x0184d074 0x8>; + reg-names = "pll_base", "gdsc_base"; + + gdsc-supply = <&gdsc_mdss>; + vddio-supply = <&pm8916_l6>; + + clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>; + clock-names = "iface_clk"; + clock-rate = <0>; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-mdss.dtsi b/arch/arm64/boot/dts/qcom/msm8916-mdss.dtsi new file mode 100644 index 00000000000..02d82bb6456 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-mdss.dtsi @@ -0,0 +1,210 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_mdp: qcom,mdss_mdp@1a00000 { + compatible = "qcom,mdss_mdp"; + reg = <0x1a00000 0x90000>, + <0x1ac8000 0x3000>; + reg-names = "mdp_phys", "vbif_phys"; + interrupts = <0 72 0>; + vdd-supply = <&gdsc_mdss>; + + /* Bus Scale Settings */ + qcom,msm-bus,name = "mdss_mdp"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, + <22 512 0 6400000>, + <22 512 0 6400000>; + + /* Fudge factors */ + qcom,mdss-ab-factor = <1 1>; /* 1 time */ + qcom,mdss-ib-factor = <2 1>; /* 2 times */ + qcom,mdss-clk-factor = <105 100>; /* 1.05 times */ + qcom,max-bandwidth-low-kbps = <1100000>; + qcom,max-bandwidth-high-kbps = <1100000>; + + /* VBIF QoS remapper settings*/ + qcom,mdss-vbif-qos-rt-setting = <2 2 2 2>; + qcom,mdss-vbif-qos-nrt-setting = <1 1 1 1>; + qcom,max-mixer-width = <2048>; + qcom,mdss-mdp-reg-offset = <0x00001000>; + qcom,max-clk-rate = <320000000>; + qcom,mdss-pipe-vig-off = <0x00005000>; + qcom,mdss-pipe-rgb-off = <0x00015000 0x00017000>; + qcom,mdss-pipe-dma-off = <0x00025000>; + qcom,mdss-pipe-vig-fetch-id = <1>; + qcom,mdss-pipe-rgb-fetch-id = <7 8>; + qcom,mdss-pipe-dma-fetch-id = <4>; + + qcom,mdss-pipe-vig-xin-id = <0>; + qcom,mdss-pipe-rgb-xin-id = <1 5>; + qcom,mdss-pipe-dma-xin-id = <2>; + qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2ac 0 0>; + qcom,mdss-pipe-rgb-clk-ctrl-offsets = <0x2ac 4 8>, + <0x2b4 4 8>; + qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2ac 8 12>; + + qcom,mdss-smp-data = <8 8192>; + + qcom,mdss-ctl-off = <0x00002000 0x00002200 0x00002400>; + qcom,mdss-mixer-intf-off = <0x00045000>; + qcom,mdss-mixer-wb-off = <0x00048000>; + qcom,mdss-dspp-off = <0x00055000>; + qcom,mdss-pingpong-off = <0x00071000>; + qcom,mdss-wb-off = <0x00065000 0x00065800 0x00066000>; + qcom,mdss-intf-off = <0x00000000 0x0006b800>; + qcom,mdss-rot-block-size = <64>; + qcom,mdss-wfd-mode = "dedicated"; + qcom,mdss-has-non-scalar-rgb; + qcom,mdss-has-decimation; + qcom,mdss-traffic-shaper-enabled; + qcom,mdss-no-hist-vote; + + vdd-cx-supply = <&pm8916_s1_corner>; + clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>, + <&clock_gcc clk_gcc_mdss_axi_clk>, + <&clock_gcc clk_mdp_clk_src>, + <&clock_gcc clk_gcc_mdss_mdp_clk>, + <&clock_gcc clk_gcc_mdss_vsync_clk>; + clock-names = "iface_clk", "bus_clk", "core_clk_src", + "core_clk", "vsync_clk"; + qcom,mdp-settings = <0x000011e4 0x00000000>, + <0x00065048 0x00000008>, + <0x00065848 0x00000008>, + <0x00066048 0x00000008>; + + /* buffer parameters to calculate prefill bandwidth */ + qcom,mdss-prefill-outstanding-buffer-bytes = <1024>; + qcom,mdss-prefill-y-buffer-bytes = <0>; + qcom,mdss-prefill-scaler-buffer-lines-bilinear = <2>; + qcom,mdss-prefill-scaler-buffer-lines-caf = <4>; + qcom,mdss-prefill-post-scaler-buffer-pixels = <0>; + qcom,mdss-prefill-pingpong-buffer-pixels = <4096>; + qcom,mdss-prefill-fbc-lines = <0>; + + mdss_fb0: qcom,mdss_fb_primary { + cell-index = <0>; + compatible = "qcom,mdss-fb"; + qcom,cont-splash-memory { + linux,contiguous-region = <&cont_splash_mem>; + }; + }; + + mdss_fb1: qcom,mdss_fb_wfd { + cell-index = <1>; + compatible = "qcom,mdss-fb"; + }; + }; + + mdss_dsi0: qcom,mdss_dsi@1a98000 { + compatible = "qcom,mdss-dsi-ctrl"; + label = "MDSS DSI CTRL->0"; + cell-index = <0>; + reg = <0x1a98000 0x25c>, + <0x1a98500 0x280>, + <0x1a98780 0x30>, + <0x193e000 0x30>; + reg-names = "dsi_ctrl", "dsi_phy", "dsi_phy_regulator", "mmss_misc_phys"; + qcom,mdss-fb-map = <&mdss_fb0>; + qcom,mdss-mdp = <&mdss_mdp>; + gdsc-supply = <&gdsc_mdss>; + vdda-supply = <&pm8916_l2>; + vdd-supply = <&pm8916_l17>; + vddio-supply = <&pm8916_l6>; + clocks = <&clock_gcc clk_gcc_mdss_mdp_clk>, + <&clock_gcc clk_gcc_mdss_ahb_clk>, + <&clock_gcc clk_gcc_mdss_axi_clk>, + <&clock_gcc_mdss clk_gcc_mdss_byte0_clk>, + <&clock_gcc_mdss clk_gcc_mdss_pclk0_clk>, + <&clock_gcc clk_gcc_mdss_esc0_clk>; + clock-names = "mdp_core_clk", "iface_clk", "bus_clk", + "byte_clk", "pixel_clk", "core_clk"; + qcom,platform-strength-ctrl = [ff 06]; + qcom,platform-bist-ctrl = [00 00 b1 ff 00 00]; + qcom,platform-regulator-settings = [03 08 07 00 20 07 01]; + qcom,platform-lane-config = [00 00 00 00 00 00 00 01 97 + 00 00 00 00 05 00 00 01 97 + 00 00 00 00 0a 00 00 01 97 + 00 00 00 00 0f 00 00 01 97 + 00 c0 00 00 00 00 00 01 bb]; + + qcom,mmss-ulp-clamp-ctrl-offset = <0x20>; + qcom,mmss-phyreset-ctrl-offset = <0x24>; + qcom,timing-db-mode; + + qcom,core-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,core-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + }; + + qcom,ctrl-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,ctrl-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdda"; + qcom,supply-min-voltage = <1200000>; + qcom,supply-max-voltage = <1200000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <20>; + }; + }; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <2850000>; + qcom,supply-max-voltage = <2850000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + }; + }; + + qcom,mdss_wb_panel { + compatible = "qcom,mdss_wb"; + qcom,mdss_pan_res = <1280 720>; + qcom,mdss_pan_bpp = <24>; + qcom,mdss-fb-map = <&mdss_fb1>; + }; +}; + +#include "dsi-panel-sim-video.dtsi" +#include "dsi-panel-sim-cmd.dtsi" + diff --git a/arch/arm64/boot/dts/qcom/msm8916-memory.dtsi b/arch/arm64/boot/dts/qcom/msm8916-memory.dtsi new file mode 100644 index 00000000000..4d48bed7189 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-memory.dtsi @@ -0,0 +1,65 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-ion.dtsi" + +/ { + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + external_image_mem: external_image_region@86000000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x86000000 0x0 0x0800000>; + }; + + modem_adsp_mem: modem_adsp_region@86800000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x86800000 0x0 0x04e00000>; + }; + + peripheral_mem: peripheral_region@8b600000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8b600000 0x0 0x0600000>; + }; + + secure_mem: secure_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x7000000>; + }; + + venus_qseecom_mem: venus_qseecom_region { + compatible = "shared-dma-pool"; + alloc-ranges = <0 0x80000000 0 0x10000000>; + reusable; + alignment = <0 0x400000>; + size = <0 0x1400000>; + }; + + audio_mem: audio_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x400000>; + }; + + cont_splash_mem: splash_region@83000000 { + reg = <0x0 0x83000000 0x0 0x1200000>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-mtp-smb1360.dts b/arch/arm64/boot/dts/qcom/msm8916-mtp-smb1360.dts new file mode 100644 index 00000000000..f6c9a6c69b2 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-mtp-smb1360.dts @@ -0,0 +1,62 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-mtp.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 SMB1360 MTP"; + compatible = "qcom,msm8916-mtp", "qcom,msm8916", "qcom,mtp"; + qcom,board-id = <8 1>; +}; + +&soc { + i2c@78b8000 { + smb1360_otg_supply: smb1360-chg-fg@14 { + compatible = "qcom,smb1360-chg-fg"; + reg = <0x14>; + interrupt-parent = <&msm_gpio>; + interrupts = <62 8>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + regulator-name = "smb1360_otg_vreg"; + + qcom,empty-soc-disabled; + qcom,chg-inhibit-disabled; + qcom,float-voltage-mv = <4200>; + qcom,iterm-ma = <200>; + qcom,charging-disabled; + qcom,recharge-thresh-mv = <100>; + qcom,thermal-mitigation = <1500 700 600 0>; + }; + }; +}; + +&usb_otg { + qcom,hsusb-otg-mode = <3>; + qcom,usbid-gpio = <&msm_gpio 110 0>; + pinctrl-names = "default"; + pinctrl-0 = <&usbid_default>; + vbus_otg-supply = <&smb1360_otg_supply>; +}; + +&pm8916_chg { + status = "ok"; + qcom,use-external-charger; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-mtp.dts b/arch/arm64/boot/dts/qcom/msm8916-mtp.dts new file mode 100644 index 00000000000..ffe476243f9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8916-mtp.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 MTP"; + compatible = "qcom,msm8916-mtp", "qcom,msm8916", "qcom,mtp"; + qcom,board-id = <8 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi new file mode 100644 index 00000000000..0884b8b63e0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi @@ -0,0 +1,464 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916.dtsi" +#include "msm8916-pinctrl.dtsi" +#include "msm8916-camera-sensor-mtp.dtsi" + +/ { + aliases { + serial0 = &blsp1_uart2; + }; +}; + +&soc { + i2c@78b9000 { /* BLSP1 QUP5 */ + synaptics@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_suspend"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + synaptics,display-coords = <0 0 1079 1919>; + synaptics,panel-coords = <0 0 1079 2084>; + synaptics,irq-gpio = <&msm_gpio 13 0x2008>; + synaptics,reset-gpio = <&msm_gpio 12 0x0>; + synaptics,i2c-pull-up; + synaptics,power-down; + synaptics,disable-gpios; + /* Underlying clocks used by secure touch */ + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup5_i2c_apps_clk>; + clock-names = "iface_clk", "core_clk"; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_rmi4_i2c"; + qcom,disp-maxx = <1079>; + qcom,disp-maxy = <1919>; + qcom,panel-maxx = <1079>; + qcom,panel-maxy = <2084>; + qcom,key-codes = <158 139 172 217>; + }; + + i2c@78ba000 { /* BLSP1 QUP6 */ + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 21 0x00>; + qcom,dis-gpio = <&msm_gpio 20 0x00>; + qcom,clk-src = "BBCLK2"; + qcom,clk-en-gpio = <&msm_gpio 0 0x00>; + interrupt-parent = <&msm_gpio>; + interrupts = <21 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8916_gpios 2 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + i2c@78b6000 { /* BLSP1 QUP2 */ + mpu6050@68 { /* Gyroscope and accelerometer sensor combo */ + compatible = "invn,mpu6050"; + reg = <0x68>; + pinctrl-names = "mpu_default","mpu_sleep"; + pinctrl-0 = <&mpu6050_default>; + pinctrl-1 = <&mpu6050_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <115 0x2>; + vdd-supply = <&pm8916_l17>; + vlogic-supply = <&pm8916_l16>; + vi2c-supply = <&pm8916_l6>; + invn,gpio-int = <&msm_gpio 115 0x2>; + invn,place = "Portrait Down Back Side"; + }; + + avago@39 { /* Ambient light and proximity sensor */ + compatible = "avago,apds9900"; + reg = <0x39>; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&apds99xx_default>; + pinctrl-1 = <&apds99xx_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <113 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + avago,irq-gpio = <&msm_gpio 113 0x2002>; + avago,ps-threshold = <600>; + avago,ps-hysteresis-threshold = <500>; + avago,ps-pulse = <8>; + avago,ps-pgain = <0>; + avago,als-B = <223>; + avago,als-C = <70>; + avago,als-D = <142>; + avago,ga-value = <48>; + }; + + akm@c { + compatible = "ak,ak8963"; + reg = <0x0c>; + pinctrl-names = "ak8963_default", "ak8963_sleep"; + pinctrl-0 = <&ak8963_default>; + pinctrl-1 = <&ak8963_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <69 0x2>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + ak,layout = <0x6>; + ak,auto-report; + }; + + }; + + sound { + compatible = "qcom,msm8x16-audio-codec"; + qcom,model = "msm8x16-snd-card-mtp"; + qcom,msm-snd-card-id = <0>; + qcom,msm-codec-type = "internal"; + qcom,msm-ext-pa = "primary"; + qcom,msm-mclk-freq = <9600000>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,msm-micbias1-ext-cap; + qcom,msm-hs-micbias-type = "internal"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS External", + "DMIC1", "MIC BIAS Internal1", + "MIC BIAS Internal1", "Digital Mic1", + "DMIC2", "MIC BIAS Internal1", + "MIC BIAS Internal1", "Digital Mic2"; + pinctrl-names = "cdc_lines_act", + "cdc_lines_sus", + "cdc_lines_sec_ext_act", + "cdc_lines_sec_ext_sus", + "cross_conn_det_act", + "cross_conn_det_sus"; + pinctrl-0 = <&cdc_pdm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus>; + pinctrl-2 = <&cdc_pdm_lines_act &cdc_ext_pa_act + &cdc_ext_pa_ws_act>; + pinctrl-3 = <&cdc_pdm_lines_sus &cdc_ext_pa_sus + &cdc_ext_pa_ws_sus>; + pinctrl-4 = <&cross_conn_det_act>; + pinctrl-5 = <&cross_conn_det_sus>; + qcom,cdc-us-euro-gpios = <&msm_gpio 120 0>; + }; +}; + +&blsp1_uart2 { + status = "ok"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&uart_console_default>; + pinctrl-1 = <&uart_console_sleep>; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + camera_focus { + label = "camera_focus"; + gpios = <&msm_gpio 108 0x1>; + linux,input-type = <1>; + linux,code = <0x210>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + camera_snapshot { + label = "camera_snapshot"; + gpios = <&msm_gpio 109 0x1>; + linux,input-type = <1>; + linux,code = <0x2fe>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&msm_gpio 107 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&sdhc_1 { + vdd-supply = <&pm8916_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 400000>; + + vdd-io-supply = <&pm8916_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 60000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; + + qcom,nonremovable; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8916_l11>; + qcom,vdd-voltage-level = <2800000 2950000>; + qcom,vdd-current-level = <15000 400000>; + + vdd-io-supply = <&pm8916_l12>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 50000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &msm_gpio 38 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&msm_gpio 38 0x1>; + + status = "ok"; +}; + +&pm8916_mpps { + mpp@a000 { /* MPP 1 */ + /* VDD_PX */ + status = "disabled"; + }; + + mpp@a100 { /* MPP 2 */ + /* HR LED */ + status = "disabled"; + }; + + mpp@a200 { /* MPP 3 */ + /* VREF DAC */ + status = "disabled"; + }; + + mpp@a300 { /* MPP 4 */ + /* Backlight PWM */ + qcom,mode = <1>; /* Digital output */ + qcom,invert = <0>; /* Disable invert */ + qcom,src-sel = <4>; /* DTEST1 */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,master-en = <1>; /* Enable MPP */ + }; +}; + +&pm8916_gpios { + gpio@c000 { /* GPIO 1 */ + /* Battery UICC Alarm */ + status = "disabled"; + }; + + gpio@c100 { /* GPIO 2 */ + /* NFC_CLK_REQ */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c200 { /* GPIO 3 */ + /* External regulator control for WTR */ + status = "disabled"; + }; + + gpio@c300 { /* GPIO 4 */ + /* External regulator control for APC */ + status = "disabled"; + }; +}; + +#include "dsi-panel-jdi-1080p-video.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&dsi_jdi_1080_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + +}; + +&mdss_dsi_active { + pinmux { + function = "gpio"; + pins = "gpio97", "gpio25", "gpio98"; + }; + pinconf { + pins = "gpio97", "gpio25", "gpio98"; + }; +}; + +&mdss_dsi_suspend { + pinmux { + function = "gpio"; + pins = "gpio97", "gpio25", "gpio98"; + }; + pinconf { + pins = "gpio97", "gpio25", "gpio98"; + }; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_jdi_1080_vid>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,platform-enable-gpio = <&msm_gpio 97 0>; + qcom,platform-reset-gpio = <&msm_gpio 25 0>; + qcom,platform-bklight-en-gpio = <&msm_gpio 98 0>; +}; + +&dsi_jdi_1080_vid { + qcom,cont-splash-enabled; +}; + +&pm8916_chg { + status = "ok"; + qcom,charging-disabled; +}; + +/ { + mtp_batterydata: qcom,battery-data { + qcom,rpull-up-kohm = <100>; + qcom,vref-batt-therm = <1800000>; + + #include "batterydata-palladium.dtsi" + }; +}; + +&pm8916_bms { + status = "ok"; + qcom,battery-data = <&mtp_batterydata>; +}; + +&spmi_bus { + qcom,pm8916@0 { + qcom,leds@a100 { + status = "okay"; + qcom,led_mpp_2 { + label = "mpp"; + linux,name = "button-backlight"; + linux,default-trigger = "none"; + qcom,default-state = "off"; + qcom,max-current = <40>; + qcom,current-setting = <5>; + qcom,id = <6>; + qcom,mode = "manual"; + qcom,source-sel = <1>; + qcom,mode-ctrl = <0x60>; + }; + }; + }; +}; + +&qcom_tzlog { + status = "okay"; +}; + +&qcom_rng { + status = "okay"; +}; + +&qcom_crypto { + status = "okay"; +}; + +&qcom_cedev { + status = "okay"; +}; + +&qcom_seecom { + status = "okay"; +}; + +/* CoreSight */ +&tpiu { + pinctrl-names = "sdcard", "trace", "swduart", + "swdtrc", "jtag", "spmi"; + /* NIDnT */ + pinctrl-0 = <&qdsd_clk_sdcard &qdsd_cmd_sdcard + &qdsd_data0_sdcard &qdsd_data1_sdcard + &qdsd_data2_sdcard &qdsd_data3_sdcard>; + pinctrl-1 = <&qdsd_clk_trace &qdsd_cmd_trace + &qdsd_data0_trace &qdsd_data1_trace + &qdsd_data2_trace &qdsd_data3_trace>; + pinctrl-2 = <&qdsd_cmd_swduart &qdsd_data0_swduart + &qdsd_data1_swduart &qdsd_data2_swduart + &qdsd_data3_swduart>; + pinctrl-3 = <&qdsd_clk_swdtrc &qdsd_cmd_swdtrc + &qdsd_data0_swdtrc &qdsd_data1_swdtrc + &qdsd_data2_swdtrc &qdsd_data3_swdtrc>; + pinctrl-4 = <&qdsd_cmd_jtag &qdsd_data0_jtag + &qdsd_data1_jtag &qdsd_data2_jtag + &qdsd_data3_jtag>; + pinctrl-5 = <&qdsd_clk_spmi &qdsd_cmd_spmi + &qdsd_data0_spmi &qdsd_data3_spmi>; +}; + +&spmi_bus { + qcom,pm8916@1 { + qcom,vibrator@c000 { + status = "okay"; + qcom,vib-timeout-ms = <15000>; + qcom,vib-vtg-level-mV = <3100>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi new file mode 100644 index 00000000000..1fe709e8624 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi @@ -0,0 +1,1568 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&msm_gpio { + ext-cdc-tlmm-lines { + ext_cdc_tlmm_lines_act: tlmm_lines_on { + pinmux_pri { + function = "pri_mi2s"; + pins = "gpio116"; + }; + pinmux_sec { + function = "sec_mi2s"; + pins = "gpio112", "gpio117", "gpio118", + "gpio119"; + }; + pinconf { + pins = "gpio112", "gpio116", "gpio117", + "gpio118", "gpio119"; + drive-strength = <8>; + bias-pull-none; + }; + }; + ext_cdc_tlmm_lines_sus: tlmm_lines_off { + pinmux_pri { + function = "pri_mi2s"; + pins = "gpio116"; + }; + pinmux_sec { + function = "sec_mi2s"; + pins = "gpio112", "gpio117", "gpio118", + "gpio119"; + }; + pinconf { + pins = "gpio112", "gpio116", "gpio117", + "gpio118", "gpio119"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + ext-codec-lines { + ext_codec_lines_act: lines_on { + pinmux { + function = "gpio"; + pins = "gpio67"; + }; + pinconf { + pins = "gpio67"; + drive-strength = <8>; + bias-disable; + output-high; + }; + }; + ext_codec_lines_sus: lines_off { + pinmux { + function = "gpio"; + pins = "gpio67"; + }; + pinconf { + pins = "gpio67"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-pdm-lines { + cdc_pdm_lines_act: pdm_lines_on { + pinmux { + function = "cdc_pdm0"; + pins = "gpio63", "gpio64", "gpio65", "gpio66", + "gpio67", "gpio68"; + }; + pinconf { + pins = "gpio63", "gpio64", "gpio65", "gpio66", + "gpio67", "gpio68"; + drive-strength = <8>; + bias-pull-none; + }; + }; + cdc_pdm_lines_sus: pdm_lines_off { + pinmux { + function = "cdc_pdm0"; + pins = "gpio63", "gpio64", "gpio65", "gpio66", + "gpio67", "gpio68"; + }; + pinconf { + pins = "gpio63", "gpio64", "gpio65", "gpio66", + "gpio67", "gpio68"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-ext-pa-lines { + cdc_ext_pa_act: ext_pa_on { + pinmux { + function = "pri_mi2s"; + pins = "gpio113", "gpio114", "gpio115", + "gpio116"; + }; + pinconf { + pins = "gpio113", "gpio114", "gpio115", + "gpio116"; + drive-strength = <8>; + bias-pull-none; + }; + }; + cdc_ext_pa_sus: ext_pa_off { + pinmux { + function = "pri_mi2s"; + pins = "gpio113", "gpio114", "gpio115", + "gpio116"; + }; + pinconf { + pins = "gpio113", "gpio114", "gpio115", + "gpio116"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-ext-pa-ws-line { + cdc_ext_pa_ws_act: ext_pa_on { + pinmux { + function = "pri_mi2s_ws"; + pins = "gpio110"; + }; + pinconf { + pins = "gpio110"; + drive-strength = <8>; + bias-pull-none; + }; + }; + cdc_ext_pa_ws_sus: ext_pa_off { + pinmux { + function = "pri_mi2s_ws"; + pins = "gpio110"; + }; + pinconf { + pins = "gpio110"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-dmic-lines { + cdc_dmic_lines_act: dmic_lines_on { + pinmux_dmic0_clk { + function = "dmic0_clk"; + pins = "gpio0"; + }; + pinmux_dmic0_data { + function = "dmic0_data"; + pins = "gpio1"; + }; + pinconf { + pins = "gpio0", "gpio1"; + drive-strength = <8>; + }; + }; + cdc_dmic_lines_sus: dmic_lines_off { + pinconf { + pins = "gpio0", "gpio1"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cross-conn-det { + cross_conn_det_act: lines_on { + pinmux { + function = "gpio"; + pins = "gpio120"; + }; + pinconf { + pins = "gpio120"; + drive-strength = <8>; + output-low; + bias-pull-down; + }; + }; + cross_conn_det_sus: lines_off { + pinmux { + function = "gpio"; + pins = "gpio120"; + }; + pinconf { + pins = "gpio120"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pmx-uartconsole { + uart_console_default: default { + pinmux { + function = "blsp_uart2"; + pins = "gpio4", "gpio5"; + }; + pinconf { + pins = "gpio4", "gpio5"; + drive-strength = <16>; + bias-disable; + }; + }; + uart_console_sleep: uart-console { + pinmux { + function = "blsp_uart2"; + pins = "gpio4", "gpio5"; + }; + pinconf { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + blsp1_uart1_active { + hsuart_active: default { + pinmux { + function = "blsp_uart1"; + pins = "gpio0", "gpio1", "gpio2", "gpio3"; + }; + pinconf { + pins = "gpio0", "gpio1", "gpio2", "gpio3"; + drive-strength = <16>; + bias-disable; + }; + }; + }; + + blsp1_uart1_sleep { + hsuart_sleep: sleep { + pinmux { + function = "blsp_uart1"; + pins = "gpio0", "gpio1", "gpio2", "gpio3"; + }; + pinconf { + pins = "gpio0", "gpio1", "gpio2", "gpio3"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + sdhc2_cd_pin { + sdc2_cd_on: cd_on { + pinmux { + function = "gpio"; + pins = "gpio38"; + }; + pinconf { + pins = "gpio38"; + drive-strength = <2>; + bias-pull-up; + }; + }; + sdc2_cd_off: cd_off { + pinmux { + function = "gpio"; + pins = "gpio38"; + }; + pinconf { + pins = "gpio38"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pmx_sdc1_clk { + sdc1_clk_on: clk_on { + pinmux { + pins = "sdc1_clk"; + }; + pinconf { + pins = "sdc1_clk"; + bias-disable; + drive-strength = <16>; + }; + }; + sdc1_clk_off: clk_off { + pinmux { + pins = "sdc1_clk"; + }; + pinconf { + pins = "sdc1_clk"; + bias-disable; + drive-strength = <2>; + }; + }; + }; + + pmx_sdc1_cmd { + sdc1_cmd_on: cmd_on { + pinmux { + pins = "sdc1_cmd"; + }; + pinconf { + pins = "sdc1_cmd"; + bias-pull-up; + drive-strength = <10>; + }; + }; + sdc1_cmd_off: cmd_off { + pinmux { + pins = "sdc1_cmd"; + }; + pinconf { + pins = "sdc1_cmd"; + bias-pull-up; + drive-strength = <2>; + }; + }; + }; + + pmx_sdc1_data { + sdc1_data_on: data_on { + pinmux { + pins = "sdc1_data"; + }; + pinconf { + pins = "sdc1_data"; + bias-pull-up; + drive-strength = <10>; + }; + }; + sdc1_data_off: data_off { + pinmux { + pins = "sdc1_data"; + }; + pinconf { + pins = "sdc1_data"; + bias-pull-up; + drive-strength = <2>; + }; + }; + }; + + pmx_sdc2_clk { + sdc2_clk_on: clk_on { + pinmux { + pins = "sdc2_clk"; + }; + pinconf { + pins = "sdc2_clk"; + bias-disable; + drive-strength = <16>; + }; + }; + sdc2_clk_off: clk_off { + pinmux { + pins = "sdc2_clk"; + }; + pinconf { + pins = "sdc2_clk"; + bias-disable; + drive-strength = <2>; + }; + }; + }; + + pmx_sdc2_cmd { + sdc2_cmd_on: cmd_on { + pinmux { + pins = "sdc2_cmd"; + }; + pinconf { + pins = "sdc2_cmd"; + bias-pull-up; + drive-strength = <10>; + }; + }; + sdc2_cmd_off: cmd_off { + pinmux { + pins = "sdc2_cmd"; + }; + pinconf { + pins = "sdc2_cmd"; + bias-pull-up; + drive-strength = <2>; + }; + }; + }; + + pmx_sdc2_data { + sdc2_data_on: data_on { + pinmux { + pins = "sdc2_data"; + }; + pinconf { + pins = "sdc2_data"; + bias-pull-up; + drive-strength = <10>; + }; + }; + sdc2_data_off: data_off { + pinmux { + pins = "sdc2_data"; + }; + pinconf { + pins = "sdc2_data"; + bias-pull-up; + drive-strength = <2>; + }; + }; + }; + + usb-id-pin { + usbid_default: default { + pinmux { + function = "gpio"; + pins = "gpio110"; + }; + pinconf { + pins = "gpio110"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + spi0 { + /* MOSI, MISO, CLK */ + spi0_default: default { + pinmux { + function = "blsp_spi3"; + pins = "gpio8", "gpio9", "gpio11"; + }; + pinconf { + pins = "gpio8", "gpio9", "gpio11"; + drive-strength = <12>; + bias-disable = <0>; + }; + }; + + spi0_sleep: sleep { + pinmux { + function = "gpio"; + pins = "gpio8", "gpio9", "gpio11"; + }; + pinconf { + pins = "gpio8", "gpio9", "gpio11"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + /* CS */ + spi0_cs0_active: cs0_active { + pinmux { + function = "blsp_spi3"; + pins = "gpio10"; + }; + pinconf { + pins = "gpio10"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + spi0_cs0_sleep: cs0_sleep { + pinmux { + function = "gpio"; + pins = "gpio10"; + }; + pinconf { + pins = "gpio10"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + ice40-spi-usb-pins { + ice40_default: default { + pinmux { + function = "gpio"; + pins = "gpio0", "gpio1", "gpio3", "gpio114"; + }; + pinconf { + pins = "gpio0", "gpio1", "gpio3", "gpio114"; + drive-strength = <8>; + bias-disable; + }; + }; + + ice40_sleep: sleep { + pinmux { + function = "gpio"; + pins = "gpio0", "gpio1", "gpio3", "gpio114"; + }; + pinconf { + pins = "gpio0", "gpio1", "gpio3", "gpio114"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + i2c_0 { + /* CLK, DATA */ + i2c_0_active: i2c_0_active { + pinmux { + function = "blsp_i2c2"; + pins = "gpio6", "gpio7"; + }; + pinconf { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_0_sleep: i2c_0_sleep { + pinmux { + function = "blsp_i2c2"; + pins = "gpio6", "gpio7"; + }; + pinconf { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + i2c_5 { + /* CLK, DATA */ + i2c_5_active: i2c_5_active { + pinmux { + function = "blsp_i2c5"; + pins = "gpio18", "gpio19"; + }; + pinconf { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + i2c_5_sleep: i2c_5_sleep { + pinmux { + function = "blsp_i2c5"; + pins = "gpio18", "gpio19"; + }; + pinconf { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + pmx_qdsd_clk { + qdsd_clk_sdcard: clk_sdcard { + pinmux { + pins = "qdsd_clk"; + }; + pinconf { + pins = "qdsd_clk"; + bias-disable; + drive-strength = <7>; + }; + }; + qdsd_clk_trace: clk_trace { + pinmux { + pins = "qdsd_clk"; + }; + pinconf { + pins = "qdsd_clk"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_clk_swdtrc: clk_swdtrc { + pinmux { + pins = "qdsd_clk"; + }; + pinconf { + pins = "qdsd_clk"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_clk_spmi: clk_spmi { + pinmux { + pins = "qdsd_clk"; + }; + pinconf { + pins = "qdsd_clk"; + bias-pull-down; + drive-strength = <0>; + }; + }; + }; + + pmx_qdsd_cmd { + qdsd_cmd_sdcard: cmd_sdcard { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_cmd_trace: cmd_trace { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_cmd_swduart: cmd_uart { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_cmd_swdtrc: cmd_swdtrc { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_cmd_jtag: cmd_jtag { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-disable; + drive-strength = <3>; + }; + }; + qdsd_cmd_spmi: cmd_spmi { + pinmux { + pins = "qdsd_cmd"; + }; + pinconf { + pins = "qdsd_cmd"; + bias-pull-down; + drive-strength = <4>; + }; + }; + }; + + pmx_qdsd_data0 { + qdsd_data0_sdcard: data0_sdcard { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data0_trace: data0_trace { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data0_swduart: data0_uart { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data0_swdtrc: data0_swdtrc { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data0_jtag: data0_jtag { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_data0_spmi: data0_spmi { + pinmux { + pins = "qdsd_data0"; + }; + pinconf { + pins = "qdsd_data0"; + bias-pull-down; + drive-strength = <0>; + }; + }; + }; + + pmx_qdsd_data1 { + qdsd_data1_sdcard: data1_sdcard { + pinmux { + pins = "qdsd_data1"; + }; + pinconf { + pins = "qdsd_data1"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data1_trace: data1_trace { + pinmux { + pins = "qdsd_data1"; + }; + pinconf { + pins = "qdsd_data1"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data1_swduart: data1_uart { + pinmux { + pins = "qdsd_data1"; + }; + pinconf { + pins = "qdsd_data1"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data1_swdtrc: data1_swdtrc { + pinmux { + pins = "qdsd_data1"; + }; + pinconf { + pins = "qdsd_data1"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data1_jtag: data1_jtag { + pinmux { + pins = "qdsd_data1"; + }; + pinconf { + pins = "qdsd_data1"; + bias-pull-down; + drive-strength = <0>; + }; + }; + }; + + pmx_qdsd_data2 { + qdsd_data2_sdcard: data2_sdcard { + pinmux { + pins = "qdsd_data2"; + }; + pinconf { + pins = "qdsd_data2"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data2_trace: data2_trace { + pinmux { + pins = "qdsd_data2"; + }; + pinconf { + pins = "qdsd_data2"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data2_swduart: data2_uart { + pinmux { + pins = "qdsd_data2"; + }; + pinconf { + pins = "qdsd_data2"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data2_swdtrc: data2_swdtrc { + pinmux { + pins = "qdsd_data2"; + }; + pinconf { + pins = "qdsd_data2"; + bias-pull-down; + drive-strength = <0>; + }; + }; + qdsd_data2_jtag: data2_jtag { + pinmux { + pins = "qdsd_data2"; + }; + pinconf { + pins = "qdsd_data2"; + bias-pull-up; + drive-strength = <3>; + }; + }; + }; + + pmx_qdsd_data3 { + qdsd_data3_sdcard: data3_sdcard { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data3_trace: data3_trace { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-down; + drive-strength = <3>; + }; + }; + qdsd_data3_swduart: data3_uart { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_data3_swdtrc: data3_swdtrc { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_data3_jtag: data3_jtag { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-up; + drive-strength = <0>; + }; + }; + qdsd_data3_spmi: data3_spmi { + pinmux { + pins = "qdsd_data3"; + }; + pinconf { + pins = "qdsd_data3"; + bias-pull-down; + drive-strength = <3>; + }; + }; + }; + + pmx_mdss { + mdss_dsi_active: active { + pinconf { + drive-strength = <8>; + bias-disable = <0>; + output-high; + }; + }; + mdss_dsi_suspend: suspend { + pinconf { + drive-strength = <2>; + bias-pull-down; + output-low; + }; + }; + }; + + wcnss_pmux_5wire: wcnss_pmux_5wire { + wcnss_default: wcnss_default { + pinmux2 { + function = "wcss_wlan2"; + pins = "gpio40"; + }; + pinmux1 { + function = "wcss_wlan1"; + pins = "gpio41"; + }; + pinmux0 { + function = "wcss_wlan0"; + pins = "gpio42"; + }; + pinmux { + function = "wcss_wlan"; + pins = "gpio43", "gpio44"; + }; + pinconf { + pins = "gpio40", "gpio41", "gpio42", "gpio43", + "gpio44"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + wcnss_sleep: wcnss_sleep { + pinmux2 { + function = "wcss_wlan2"; + pins = "gpio40"; + }; + pinmux1 { + function = "wcss_wlan1"; + pins = "gpio41"; + }; + pinmux0 { + function = "wcss_wlan0"; + pins = "gpio42"; + }; + pinmux { + function = "wcss_wlan"; + pins = "gpio43", "gpio44"; + }; + pinconf { + pins = "gpio40", "gpio41", "gpio42", "gpio43", + "gpio44"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + wcnss_pmux_gpio: wcnss_pmux_gpio { + wcnss_gpio_default: wcnss_gpio_default { + pinmux { + function = "gpio"; + pins = "gpio40", "gpio41", "gpio42", "gpio43", + "gpio44"; + }; + pinconf { + pins = "gpio40", "gpio41", "gpio42", "gpio43", + "gpio44"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; + + pmx_i2c_6 { + /* CLK, DATA */ + i2c_6_active: i2c_6_active{ + pinmux { + function = "blsp_i2c6"; + pins = "gpio22", "gpio23"; + }; + pinconf { + pins = "gpio22", "gpio23"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_6_sleep: i2c_6_sleep { + pinmux { + function = "blsp_i2c6"; + pins = "gpio22", "gpio23"; + }; + pinconf { + pins = "gpio22", "gpio23"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pmx_rd_nfc_int{ + nfc_int_active: active { + pinmux { + function = "gpio"; + pins = "gpio21"; + }; + pinconf { + pins = "gpio21"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + nfc_int_suspend: suspend { + pinmux { + function = "gpio"; + pins = "gpio21"; + }; + pinconf { + pins = "gpio21"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; + + pmx_nfc_reset{ + nfc_disable_active: active { + pinmux { + function = "gpio"; + pins = "gpio20"; + }; + pinconf { + pins = "gpio20"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + nfc_disable_suspend: suspend { + pinmux { + function = "gpio"; + pins = "gpio20"; + }; + pinconf { + pins = "gpio20"; + drive-strength = <6>; + bias-disable; + }; + }; + }; + + pmx_mdss_te: pmx_mdss_te { + mdss_te_active: active { + pinmux { + function = "mdp_vsync"; + pins = "gpio24"; + }; + pinconf { + pins = "gpio24"; + drive-strength = <2>; + bias-pull-down; + input-debounce = <0>; + }; + }; + + mdss_te_suspend: suspend { + pinmux { + function = "mdp_vsync"; + pins = "gpio24"; + }; + pinconf { + pins = "gpio24"; + drive-strength = <2>; + bias-pull-down; + input-debounce = <0>; + }; + }; + }; + + /* CoreSight */ + tpiu_seta: seta { + pinmux_data { + function = "qdss_tracedata_a"; + pins = "gpio8", "gpio9", "gpio10", "gpio39", "gpio40", + "gpio41", "gpio42", "gpio43", "gpio47", "gpio48", + "gpio62", "gpio69", "gpio112", "gpio113", "gpio114", + "gpio115"; + }; + pinmux_ctl { + function = "qdss_tracectl_a"; + pins = "gpio45"; + }; + pinmux_clk { + function = "qdss_traceclk_a"; + pins = "gpio46"; + }; + pinconf { + pins = "gpio8", "gpio9", "gpio10", "gpio39", "gpio40", + "gpio41", "gpio42", "gpio43", "gpio45", "gpio46", + "gpio47", "gpio48", "gpio62", "gpio69", "gpio112", + "gpio113", "gpio114", "gpio115"; + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb: setb { + pinmux_data { + function = "qdss_tracedata_b"; + pins = "gpio26", "gpio27", "gpio28", "gpio29", "gpio30", + "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", + "gpio36", "gpio37", "gpio110", "gpio111", "gpio120", + "gpio121"; + }; + pinmux_ctl { + function = "qdss_tracectl_b"; + pins = "gpio4"; + }; + pinmux_clk { + function = "qdss_traceclk_b"; + pins = "gpio5"; + }; + pinconf { + pins = "gpio4", "gpio5", "gpio26", "gpio27", "gpio28", + "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", + "gpio34", "gpio35", "gpio36", "gpio37", "gpio110", + "gpio111", "gpio120", "gpio121"; + drive-strength = <16>; + bias-disable; + }; + }; + + tlmm_gpio_key { + gpio_key_active: gpio_key_active { + pinmux { + function = "gpio"; + pins = "gpio107", "gpio108", "gpio109"; + }; + pinconf { + pins = "gpio107", "gpio108", "gpio109"; + drive-strength = <2>; + bias-pull-up; + }; + }; + gpio_key_suspend: gpio_key_suspend { + pinmux { + function = "gpio"; + pins = "gpio107", "gpio108", "gpio109"; + }; + pinconf { + pins = "gpio107", "gpio108", "gpio109"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + gpio_led_pins { + gpio_led_off: led_off { + pinmux { + function = "gpio"; + pins = "gpio8", "gpio9", "gpio10"; + }; + pinconf { + pins = "gpio8", "gpio9", "gpio10"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + }; + + /* add pingrp for touchscreen */ + pmx_ts_int_active { + ts_int_active: ts_int_active { + pinmux { + function = "gpio"; + pins = "gpio13"; + }; + pinconf { + pins = "gpio13"; + drive-strength = <16>; + bias-pull-up; + }; + }; + }; + + pmx_ts_int_suspend { + ts_int_suspend: ts_int_suspend { + pinmux { + function = "gpio"; + pins = "gpio13"; + }; + pinconf { + pins = "gpio13"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_reset_active { + ts_reset_active: ts_reset_active { + pinmux { + finction = "gpio"; + pins = "gpio12"; + }; + pinconf { + pins = "gpio12"; + drive-strength = <16>; + bias-pull-up; + }; + }; + }; + + pmx_ts_reset_suspend { + ts_reset_suspend: ts_reset_suspend { + pinmux { + function = "gpio"; + pins = "gpio12"; + }; + pinconf { + pins = "gpio12"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_release { + ts_release: ts_release { + pinmux { + function = "gpio"; + pins = "gpio12", "gpio13"; + }; + pinconf { + pins = "gpio12", "gpio13"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + cci0_pinmux { + /* CLK, DATA */ + cci0_default: default { + pinmux { + function = "cci_i2c"; + pins = "gpio29", "gpio30"; + }; + pinconf { + pins = "gpio29", "gpio30"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + cci0_sleep: sleep { + pinmux { + function = "cci_i2c"; + pins = "gpio29", "gpio30"; + }; + pinconf { + pins = "gpio29", "gpio30"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + cam_sensor_mclk0 { + /* MCLK */ + cam_sensor_mclk0_default: default { + pinmux { + function = "cam_mclk"; + pins = "gpio26"; + }; + pinconf { + pins = "gpio26"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + cam_sensor_mclk0_sleep { + /* MCLK */ + cam_sensor_mclk0_sleep: sleep { + pinmux { + function = "cam_mclk"; + pins = "gpio26"; + }; + pinconf { + pins = "gpio26"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + cam_sensor_mclk1 { + /* MCLK */ + cam_sensor_mclk1_default: default { + pinmux { + function = "cam_mclk"; + pins = "gpio27"; + }; + pinconf { + pins = "gpio27"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + cam_sensor_mclk1_sleep { + /* MCLK */ + cam_sensor_mclk1_sleep: sleep { + pinmux { + function = "cam_mclk"; + pins = "gpio27"; + }; + pinconf { + pins = "gpio27"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + cam_sensor_rear { + /* RESET, STANDBY */ + cam_sensor_rear_default: default { + pinmux { + function = "gpio"; + pins = "gpio34", "gpio35"; + }; + pinconf { + pins = "gpio34", "gpio35"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + cam_sensor_rear_sleep { + /* RESET, STANDBY */ + cam_sensor_rear_sleep: sleep { + pinmux { + function = "gpio"; + pins = "gpio34", "gpio35"; + }; + pinconf { + pins = "gpio34", "gpio35"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + cam_sensor_front { + /* RESET, STANDBY */ + cam_sensor_front_default: default { + pinmux { + function = "gpio"; + pins = "gpio28", "gpio33"; + }; + pinconf { + pins = "gpio28", "gpio33"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + cam_sensor_front_sleep { + /* RESET, STANDBY */ + cam_sensor_front_sleep: sleep { + pinmux { + function = "gpio"; + pins = "gpio28", "gpio33"; + }; + pinconf { + pins = "gpio28", "gpio33"; + drive-strength = <2>; + bias-pull-down = <0>; + }; + }; + }; + + cam_sensor_flash { + /* FLASH_RESET,FLASH_EN,FLASH_NOW */ + cam_sensor_flash_default: default { + pinmux { + function = "gpio"; + pins = "gpio31", "gpio32", "gpio36"; + }; + pinconf { + pins = "gpio31", "gpio32", "gpio36"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + cam_sensor_flash_sleep: sleep { + pinmux { + function = "gpio"; + pins = "gpio31", "gpio32", "gpio36"; + }; + pinconf { + pins = "gpio31", "gpio32", "gpio36"; + drive-strength = <2>; + bias-pull-down = <0>; + }; + }; + }; + + pmx_i2c_4 { + /* CLK, DATA */ + i2c_4_active: i2c_4_active { + pinmux { + function = "blsp_i2c4"; + pins = "gpio14", "gpio15"; + }; + pinconf { + pins = "gpio14", "gpio15"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + i2c_4_sleep: i2c_4_sleep { + pinmux { + function = "blsp_i2c4"; + pins = "gpio14", "gpio15"; + }; + pinconf { + pins = "gpio14", "gpio15"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + smb_int_pin { + smb_int_default: smb_int_default { + pinmux { + function = "gpio"; + pins = "gpio62"; + }; + pinconf { + pins = "gpio62"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + button_backlight_pin { + button_backlight_off: button_backlight_off { + pinmux { + function = "gpio"; + pins = "gpio119"; + }; + pinconf { + pins = "gpio119"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + }; + + mpu6050_int_pin { + mpu6050_default: mpu6050_default { + pinmux { + function = "gpio"; + pins = "gpio115"; + }; + pinconf { + pins = "gpio115"; + drive-strength = <6>; + bias-pull-up; + }; + }; + mpu6050_sleep: mpu6050_sleep { + pinmux { + function = "gpio"; + pins = "gpio115"; + }; + pinconf { + pins = "gpio115"; + drive-strength = <2>; + }; + }; + }; + + apds99xx_int_pin { + apds99xx_default: apds99xx_default { + pinmux { + function = "gpio"; + pins = "gpio113"; + }; + pinconf { + pins = "gpio113"; + drive-strength = <6>; + bias-pull-up; + }; + }; + apds99xx_sleep: apds99xx_sleep { + pinmux { + function = "gpio"; + pins = "gpio113"; + }; + pinconf { + pins = "gpio113"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + ak8963_int_pin { + ak8963_default: ak8963_default { + pinmux { + function = "gpio"; + pins = "gpio69"; + }; + pinconf { + pins = "gpio69"; + drive-strength = <6>; + bias-pull-up; + }; + }; + ak8963_sleep: ak8963_sleep { + pinmux { + function = "gpio"; + pins = "gpio69"; + }; + pinconf { + pins = "gpio69"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-pm.dtsi b/arch/arm64/boot/dts/qcom/msm8916-pm.dtsi new file mode 100644 index 00000000000..815aaf4e8e5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-pm.dtsi @@ -0,0 +1,354 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,spm@b089000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb089000 0x1000>; + qcom,name = "core0"; + qcom,core-id = <0>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly= <0x3C102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-spm-cmd-wfi = [60 03 60 0B 0f]; + qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3B 76 76 0B + 94 5B 80 10 26 30 0f]; + }; + + qcom,spm@b099000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb099000 0x1000>; + qcom,name = "core1"; + qcom,core-id = <1>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly= <0x3c102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-spm-cmd-wfi = [60 03 60 0B 0f]; + qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3B 76 76 0B + 94 5B 80 10 26 30 0f]; + }; + + qcom,spm@b0a9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb0a9000 0x1000>; + qcom,name = "core2"; + qcom,core-id = <2>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly= <0x3c102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-spm-cmd-wfi = [60 03 60 0B 0f]; + qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3B 76 76 0B + 94 5B 80 10 26 30 0f]; + }; + + qcom,spm@b0b9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb0b9000 0x1000>; + qcom,name = "core3"; + qcom,core-id = <3>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly= <0x3c102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-spm-cmd-wfi = [60 03 60 0B 0f]; + qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3B 76 76 0B + 94 5B 80 10 26 30 0f]; + }; + + qcom,spm@b012000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb012000 0x1000>; + qcom,name = "system-l2"; + qcom,core-id = <0xffff>; /* L2/APCS SAW */ + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x1F>; + qcom,saw2-spm-dly= <0x3C102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-pmic-data0 = <0x05030080>; + qcom,saw2-pmic-data1 = <0x00030000>; + qcom,saw2-pmic-data4 = <0x00010080>; + qcom,saw2-pmic-data5 = <0x00010000>; + qcom,vctl-timeout-us = <50>; + qcom,vctl-port = <0x0>; + qcom,phase-port = <0x1>; + qcom,pfm-port = <0x2>; + qcom,cpu-vctl-mask = <0xf>; + qcom,supports-rpm-hs; + qcom,saw2-spm-cmd-ret = [00 03 00 0f]; + qcom,saw2-spm-cmd-gdhs = [00 20 32 6B C0 E0 D0 42 F0 03 50 4E + 02 02 D0 E0 C0 22 6B 02 32 52 F0 0F]; + qcom,saw2-spm-cmd-pc = [00 32 B0 10 E0 D0 6B C0 42 51 11 03 01 41 + B0 50 4E 02 02 C0 D0 12 E0 6B 02 32 50 0F]; + }; + + + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cluster@0{ + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "system"; + qcom,spm-device-names = "l2"; + qcom,default-level = <0>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "l2-cache-active"; + qcom,spm-l2-mode = "active"; + qcom,latency-us = <10>; + qcom,ss-power = <3000>; + qcom,energy-overhead = <60000>; + qcom,time-overhead = <110>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "l2-gdhs"; + qcom,spm-l2-mode = "gdhs"; + qcom,latency-us = <240>; + qcom,ss-power = <530>; + qcom,energy-overhead = <210000>; + qcom,time-overhead = <350>; + qcom,min-child-idx = <1>; + }; + + qcom,pm-cluster-level@2{ + reg = <2>; + label = "l2-pc"; + qcom,spm-l2-mode = "pc"; + qcom,latency-us = <11030>; + qcom,ss-power = <490>; + qcom,energy-overhead = <972390>; + qcom,time-overhead = <1580>; + qcom,min-child-idx = <2>; + qcom,notify-rpm; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + qcom,pm-cpu-level@0 { + reg = <0>; + qcom,spm-cpu-mode = "wfi"; + qcom,latency-us = <1>; + qcom,ss-power = <560>; + qcom,energy-overhead = <12000>; + qcom,time-overhead = <20>; + }; + + qcom,pm-cpu-level@1 { + reg = <1>; + qcom,spm-cpu-mode = "standalone_pc"; + qcom,latency-us = <180>; + qcom,ss-power = <550>; + qcom,energy-overhead = <160000>; + qcom,time-overhead = <280>; + qcom,use-broadcast-timer; + }; + + qcom,pm-cpu-level@2 { + reg = <2>; + qcom,spm-cpu-mode = "pc"; + qcom,latency-us = <230>; + qcom,ss-power = <535>; + qcom,energy-overhead = <200000>; + qcom,time-overhead = <330>; + qcom,use-broadcast-timer; + }; + }; + }; + }; + + qcom,mpm@601d0 { + compatible = "qcom,mpm-v2"; + reg = <0x601d0 0x1000>, /* MSM_RPM_MPM_BASE 4K */ + <0xb011008 0x4>; + reg-names = "vmpm", "ipc"; + interrupts = <0 171 1>; + clocks = <&clock_rpm clk_xo_lpm_clk>; + clock-names = "xo"; + + qcom,ipc-bit-offset = <1>; + + qcom,gic-parent = <&intc>; + qcom,gic-map = <2 216>, /* tsens_upper_lower_int */ + <50 172>, /* usb1_hs_async_wakeup_irq */ + <53 104>, /* mdss_irq */ + <62 222>, /* ee0_krait_hlos_spmi_periph_irq */ + <0xff 18>, /* APC_qgicQTmrSecPhysIrptReq */ + <0xff 19>, /* APC_qgicQTmrNonSecPhysIrptReq */ + <0xff 20>, /* qgicQTmrVirtIrptReq */ + <0xff 35>, /* WDT_barkInt */ + <0xff 39>, /* arch_mem_timer */ + <0xff 40>, /* qtmr_phy_irq[0] */ + <0xff 47>, /* rbif_irq[0] */ + <0xff 56>, /* q6_wdog_expired_irq */ + <0xff 57>, /* mss_to_apps_irq(0) */ + <0xff 58>, /* mss_to_apps_irq(1) */ + <0xff 59>, /* mss_to_apps_irq(2) */ + <0xff 60>, /* mss_to_apps_irq(3) */ + <0xff 61>, /* mss_a2_bam_irq */ + <0xff 65>, /* o_gc_sys_irq[0] */ + <0xff 74>, /* smmu_bus_intr[2] */ + <0xff 75>, /* smmu_bus_intr[3] */ + <0xff 78>, /* smmu_bus_intr[5] */ + <0xff 79>, /* smmu_bus_intr[6] */ + <0xff 97>, /* smmu_bus_intr[10] */ + <0xff 102>, /* smmu_bus_intr[14] */ + <0xff 131>, /* qup_irq */ + <0xff 140>, /* uart_dm_intr */ + <0xff 155>, /* sdc1_irq(0) */ + <0xff 157>, /* sdc2_irq(0) */ + <0xff 166>, /* usb_hs_irq */ + <0xff 170>, /* sdc1_pwr_cmd_irq */ + <0xff 173>, /* o_wcss_apss_smd_hi */ + <0xff 174>, /* o_wcss_apss_smd_med */ + <0xff 175>, /* o_wcss_apss_smd_low */ + <0xff 176>, /* o_wcss_apss_smsm_irq */ + <0xff 177>, /* o_wcss_apss_wlan_data_xfer_done */ + <0xff 178>, /* o_wcss_apss_wlan_rx_data_avail */ + <0xff 179>, /* o_wcss_apss_asic_intr */ + <0xff 181>, /* o_wcss_apss_wdog_bite_and_reset_rdy */ + + <0xff 188>, /* lpass_irq_out_apcs(0) */ + <0xff 189>, /* lpass_irq_out_apcs(1) */ + <0xff 190>, /* lpass_irq_out_apcs(2) */ + <0xff 191>, /* lpass_irq_out_apcs(3) */ + <0xff 192>, /* lpass_irq_out_apcs(4) */ + <0xff 193>, /* lpass_irq_out_apcs(5) */ + <0xff 194>, /* lpass_irq_out_apcs(6) */ + <0xff 195>, /* lpass_irq_out_apcs(7) */ + <0xff 196>, /* lpass_irq_out_apcs(8) */ + <0xff 197>, /* lpass_irq_out_apcs(9) */ + <0xff 198>, /* coresight-tmc-etr interrupt */ + <0xff 200>, /* rpm_ipc(4) */ + <0xff 201>, /* rpm_ipc(5) */ + <0xff 202>, /* rpm_ipc(6) */ + <0xff 203>, /* rpm_ipc(7) */ + <0xff 204>, /* rpm_ipc(24) */ + <0xff 205>, /* rpm_ipc(25) */ + <0xff 206>, /* rpm_ipc(26) */ + <0xff 207>, /* rpm_ipc(27) */ + <0xff 239>, /* crypto_bam_irq[1]*/ + <0xff 240>, /* summary_irq_kpss */ + <0xff 253>, /* sdc2_pwr_cmd_irq */ + <0xff 269>, /* rpm_wdog_expired_irq */ + <0xff 270>, /* blsp1_bam_irq[0] */ + <0xff 275>, /* rpm_ipc(30) */ + <0xff 276>; /* rpm_ipc(31) */ + + qcom,gpio-parent = <&msm_gpio>; + qcom,gpio-map = <3 108 >, + <4 1 >, + <5 5 >, + <6 9 >, + <7 107>, + <8 98>, + <9 97>, + <10 11>, + <11 69>, + <12 12>, + <13 13>, + <14 20>, + <15 62>, + <16 54>, + <17 21>, + <18 52>, + <19 25>, + <20 51>, + <21 50>, + <22 28>, + <23 31>, + <24 34>, + <25 35>, + <26 36>, + <27 37>, + <28 38>, + <29 49>, + <30 109>, + <31 110>, + <32 111>, + <33 112>, + <34 113>, + <35 114>, + <36 115>, + <37 117>, + <38 118>, + <39 120>, + <40 121>, + <50 66>, + <51 68>; + }; + + qcom,pm@8600664 { + compatible = "qcom,pm"; + reg = <0x8600664 0x40>; + qcom,pc-mode = "tz_l2_int"; + qcom,use-sync-timer; + qcom,synced-clocks; + }; + + qcom,cpu-sleep-status@b088008{ + compatible = "qcom,cpu-sleep-status"; + reg = <0xb088008 0x100>; + qcom,cpu-alias-addr = <0x10000>; + qcom,sleep-status-mask= <0x40000>; + }; + + qcom,rpm-log@29dc00 { + compatible = "qcom,rpm-log"; + reg = <0x29dc00 0x4000>; + qcom,rpm-addr-phys = <0x200000>; + qcom,offset-version = <4>; + qcom,offset-page-buffer-addr = <36>; + qcom,offset-log-len = <40>; + qcom,offset-log-len-mask = <44>; + qcom,offset-page-indices = <56>; + }; + + qcom,rpm-stats@29dba0 { + compatible = "qcom,rpm-stats"; + reg = <0x29dba0 0x1000>; + reg-names = "phys_addr_base"; + qcom,sleep-stats-version = <2>; + }; + + qcom,rpm-master-stats@60150 { + compatible = "qcom,rpm-master-stats"; + reg = <0x60150 0x2030>; + qcom,masters = "APSS", "MPSS", "PRONTO"; + qcom,master-stats-version = <2>; + qcom,master-offset = <4096>; + }; + qcom,rpm-rbcpr-stats@0x29daa0 { + compatible = "qcom,rpmrbcpr-stats"; + reg = <0x29daa0 0x1a0000>; + qcom,start-offset = <0x190010>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dts b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dts new file mode 100644 index 00000000000..32cd316c78f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dts @@ -0,0 +1,41 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuh.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUH"; + compatible = "qcom,msm8916-qrd-skuh", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x1000b 0>, <0x1000b 4>, + <0x1010b 0>, <0x1010b 4>, + <0x2010b 0>, <0x2010b 4>; +}; + +&soc { + + sound { + qcom,msm-hs-micbias-type = "external"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS External2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS External2", + "AMIC3", "MIC BIAS External"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dtsi b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dtsi new file mode 100644 index 00000000000..f8c1c178709 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuh.dtsi @@ -0,0 +1,371 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-qrd.dtsi" +#include "dsi-panel-innolux-720p-video.dtsi" +#include "msm8916-camera-sensor-qrd.dtsi" + +&msm_gpio { + akm_reset_pin { + akm_default: akm_default { + pinmux { + function = "gpio"; + pins = "gpio36"; + }; + pinconf { + pins = "gpio36"; + drive-strength = <6>; + bias-pull-up; + }; + }; + akm_sleep: akm_sleep { + pinmux { + function = "gpio"; + pins = "gpio36"; + }; + pinconf { + pins = "gpio36"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + lis3dh_int1_pin { + lis3dh_int1_default: int1_default { + pinmux { + function = "gpio"; + pins = "gpio115"; + }; + pinconf { + pins = "gpio115"; + drive-strength = <6>; + bias-pull-down; + }; + }; + lis3dh_int1_sleep: int1_sleep { + pinmux { + function = "gpio"; + pins = "gpio115"; + }; + pinconf { + pins = "gpio115"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + tps65132-en-pin { + tps65132_en_default: en-default { + pinmux { + function = "gpio"; + pins = "gpio32", "gpio97"; + }; + pinconf { + pins = "gpio32", "gpio97"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; +}; + +&i2c_0 { /* BLSP1 QUP2 */ + akm@c { + compatible = "ak,ak09911"; + reg = <0x0c>; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&akm_default>; + pinctrl-1 = <&akm_sleep>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + akm,layout = <0x3>; + akm,gpio_rstn = <&msm_gpio 36 0x0>; + akm,auto-report; + }; + + avago@39 { + compatible = "avago,apds9930"; + reg = <0x39>; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&apds99xx_default>; + pinctrl-1 = <&apds99xx_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <113 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + avago,irq-gpio = <&msm_gpio 113 0x2002>; + avago,ps-threshold = <600>; + avago,ps-hysteresis-threshold = <500>; + avago,ps-pulse = <8>; + avago,ps-pgain = <0>; + avago,als-B = <186>; + avago,als-C = <75>; + avago,als-D = <129>; + avago,ga-value = <313>; + }; + + st@18 { + compatible = "st,lis3dh"; + reg = <0x18>; + pinctrl-names = "lis3dh_default","lis3dh_sleep"; + pinctrl-0 = <&lis3dh_int1_default>; + pinctrl-1 = <&lis3dh_int1_sleep>; + interrupt-parent = <&msm_gpio>; + vdd-supply = <&pm8916_l17>; + vddio-supply = <&pm8916_l6>; + st,min-interval = <5>; + st,init-interval = <200>; + st,axis-map-x = <0>; + st,axis-map-y = <1>; + st,axis-map-z = <2>; + st,g-range = <2>; + st,gpio-int1 = <&msm_gpio 115 0x2002>; + st,negate-x; + st,negate-y; + }; + + tps65132@3e { + compatible = "ti,tps65132"; + reg = <0x3e>; + i2c-pwr-supply = <&pm8916_l6>; + ti,en-gpio-lpm; + pinctrl-names = "default"; + pinctrl-0 = <&tps65132_en_default>; + + regulators { + tps65132_pos: pos-boost { + regulator-name = "tps65132-pos"; + regulator-min-microvolt = <5400000>; + regulator-max-microvolt = <5400000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <200000>; + ti,en-gpio = <&msm_gpio 97 0>; + }; + + tps65132_neg: neg-boost { + regulator-name = "tps65132-neg"; + regulator-min-microvolt = <5400000>; + regulator-max-microvolt = <5400000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <40000>; + ti,en-gpio = <&msm_gpio 32 0>; + }; + }; + }; + +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi_active { + pinmux { + function = "gpio"; + pins = "gpio25"; + }; + pinconf { + pins = "gpio25"; + }; +}; + +&mdss_dsi_suspend { + pinmux { + function = "gpio"; + pins = "gpio25"; + }; + pinconf { + pins = "gpio25"; + }; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_innolux_720p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&msm_gpio 25 0>; + + vsp-supply = <&tps65132_pos>; + vsn-supply = <&tps65132_neg>; + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vsp"; + qcom,supply-min-voltage = <5400000>; + qcom,supply-max-voltage = <5400000>; + qcom,supply-enable-load = <200>; + qcom,supply-disable-load = <0>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "vsn"; + qcom,supply-min-voltage = <5400000>; + qcom,supply-max-voltage = <5400000>; + qcom,supply-enable-load = <40>; + qcom,supply-disable-load = <0>; + }; + }; +}; + +&dsi_innolux_720p_video { + qcom,cont-splash-enabled; + qcom,esd-check-enabled; +}; + +&soc { + spi_0 { + status = "disabled"; + }; + + gpio-leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_off>; + + red { + gpios = <&msm_gpio 8 0>; + label = "red"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + green { + gpios = <&msm_gpio 9 0>; + label = "green"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + gpios = <&msm_gpio 10 0>; + label = "blue"; + linux,default-trigger = "none"; + default-state = "off"; + }; + }; + + sound { + compatible = "qcom,msm8x16-audio-codec"; + qcom,model = "msm8x16-skuh-snd-card"; + qcom,msm-snd-card-id = <0>; + qcom,msm-ext-pa = "primary"; + qcom,msm-codec-type = "internal"; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <0>; + pinctrl-names = "cdc_lines_act", + "cdc_lines_sus"; + pinctrl-0 = <&cdc_pdm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus>; + }; + + i2c@78b9000 { /* BLSP1 QUP5 */ + synaptics@70 { + compatible = "synaptics,rmi4"; + reg = <0x70>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + vdd-supply = <&vdd_vreg>; + vcc_i2c-supply = <&pm8916_l16>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_suspend"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + synaptics,display-coords = <0 0 1100 1756>; + synaptics,panel-coords = <0 0 1100 1899>; + synaptics,irq-gpio = <&msm_gpio 13 0x2008>; + synaptics,reset-gpio = <&msm_gpio 12 0x0>; + synaptics,i2c-pull-up; + synaptics,power-down; + synaptics,disable-gpios; + synaptics,fw-image-name = "PR1601177-s3207_8916_qrd_00430000.img"; + }; + }; + + vdd_vreg: vdd_vreg { + compatible = "regulator-fixed"; + status = "ok"; + regulator-name = "vdd_vreg"; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_rmi4_i2c"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <1385>; + qcom,key-codes = <158 172 139>; + }; +}; + +&pm8916_vadc { + chan@30 { + qcom,scale-function = <10>; + }; +}; + +&pm8916_adc_tm { + chan@30 { + qcom,scale-function = <6>; + }; +}; + +&pm8916_chg { + qcom,vddmax-mv = <4350>; + qcom,vddsafe-mv = <4380>; + qcom,vinmin-mv = <4470>; + qcom,batt-hot-percentage = <35>; + qcom,batt-cold-percentage = <70>; + qcom,tchg-mins = <360>; + status = "okay"; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,rpull-up-kohm = <68>; + qcom,vref-batt-therm = <1800000>; + + #include "batterydata-qrd-skuh-4v35-2000mah.dtsi" + }; +}; + +&pm8916_bms { + status = "ok"; + qcom,battery-data = <&qrd_batterydata>; +}; + +&sdc2_cd_on { + /delete-property/ bias-pull-up; + bias-disable; +}; + +&sdhc_2 { + qcom,vdd-always-on; + qcom,vdd-lpm-sup; + + qcom,vdd-current-level = <4000 400000>; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuhf.dts b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuhf.dts new file mode 100644 index 00000000000..35bd4f77954 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuhf.dts @@ -0,0 +1,63 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuh.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUHF"; + compatible = "qcom,msm8916-qrd-skuhf", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x11000b 0> , <0x11000b 4>, + <0x11010b 0>, <0x11010b 4>, + <0x12010b 0>, <0x12010b 4>; +}; + +&soc { + gpio-leds { + status = "disabled"; + }; + + i2c@78b9000 { /* BLSP1 QUP5 */ + synaptics@70 { + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + }; + }; + + sound { + qcom,model = "msm8x16-skuhf-snd-card"; + qcom,msm-hs-micbias-type = "internal"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS Internal1", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS Internal1", "Secondary Mic", + "AMIC1", "MIC BIAS Internal1", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS Internal1"; + }; +}; + +#include "dsi-panel-otm1283a-720p-video.dtsi" + +&dsi_otm1283a_720p_video { + qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>; + qcom,cont-splash-enabled; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_otm1283a_720p_video>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dts b/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dts new file mode 100644 index 00000000000..28ac5e477a9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dts @@ -0,0 +1,108 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skui.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUI"; + compatible = "qcom,msm8916-qrd-skui", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x1000b 5> , <0x1010b 5> , <0x3010b 5>; +}; + +&soc { + i2c@78b8000 { + smb1360_otg_supply: smb1360-chg-fg@14 { + compatible = "qcom,smb1360-chg-fg"; + reg = <0x14>; + interrupt-parent = <&msm_gpio>; + interrupts = <62 8>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + qcom,chg-inhibit-disabled; + qcom,float-voltage-mv = <4350>; + qcom,iterm-ma = <200>; + qcom,recharge-thresh-mv = <100>; + qcom,thermal-mitigation = <1500 700 600 0>; + qcom,fg-auto-recharge-soc = <99>; + regulator-name = "smb1360_otg_vreg"; + }; + }; + + i2c@78b9000 { /* BLSP1 QUP5 */ + focaltech@38 { + compatible = "focaltech,5x06"; + reg = <0x38>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "ft6436"; + focaltech,family-id = <0x36>; + focaltech,reset-gpio = <&msm_gpio 12 0x0>; + focaltech,irq-gpio = <&msm_gpio 13 0x2008>; + focaltech,display-coords = <0 0 480 854>; + focaltech,panel-coords = <0 0 480 950>; + focaltech,button-map= <139 102 158>; + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <20>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <5>; + focaltech,fw-delay-aa-ms = <30>; + focaltech,fw-delay-55-ms = <30>; + focaltech,fw-upgrade-id1 = <0x79>; + focaltech,fw-upgrade-id2 = <0x18>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,ignore-id-check; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "ft5x06_ts"; + qcom,disp-maxx = <480>; + qcom,disp-maxy = <854>; + qcom,panel-maxx = <480>; + qcom,panel-maxy = <946>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; +}; + +&pm8916_chg { + status = "ok"; + qcom,use-external-charger; +}; + +&pm8916_bms { + status = "ok"; + qcom,disable-bms; +}; + +&usb_otg { + qcom,hsusb-otg-mode = <3>; + qcom,usbid-gpio = <&msm_gpio 110 0>; + pinctrl-names = "default"; + pinctrl-0 = <&usbid_default>; + vbus_otg-supply = <&smb1360_otg_supply>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dtsi b/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dtsi new file mode 100644 index 00000000000..4709a78ab08 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skui.dtsi @@ -0,0 +1,214 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-qrd.dtsi" +#include "dsi-panel-otm8019a-fwvga-video.dtsi" +#include "msm8916-camera-sensor-qrd-skui.dtsi" + +&soc { + gpio-leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&button_backlight_off>; + + keypad-backlight { + gpios = <&msm_gpio 119 0>; + label = "button-backlight"; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "qcom,msm8x16-audio-codec"; + qcom,model = "msm8x16-skui-snd-card"; + qcom,msm-snd-card-id = <0>; + qcom,msm-ext-pa = "primary"; + qcom,msm-codec-type = "internal"; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,msm-hs-micbias-type = "internal"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS Internal1", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS Internal1", "Secondary Mic", + "AMIC1", "MIC BIAS Internal1", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS Internal1"; + pinctrl-names = "cdc_lines_act", + "cdc_lines_sus"; + pinctrl-0 = <&cdc_pdm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus>; + }; +}; + +&pm8916_mpps { + mpp@a300 { /* MPP 4 */ + /* Backlight PWM */ + qcom,mode = <1>; /* Digital output */ + qcom,invert = <0>; /* Disable invert */ + qcom,src-sel = <4>; /* DTEST1 */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,master-en = <1>; /* Enable MPP */ + }; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi_active { + pinmux { + function = "gpio"; + pins = "gpio25"; + }; + pinconf { + pins = "gpio25"; + }; +}; + +&mdss_dsi_suspend { + pinmux { + function = "gpio"; + pins = "gpio25"; + }; + pinconf { + pins = "gpio25"; + }; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_otm8019a_fwvga_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&msm_gpio 25 0>; +}; + +&dsi_otm8019a_fwvga_video { + qcom,cont-splash-enabled; +}; + +&msm_gpio { + bma2x2_int1_pin { + bma2x2_int1_default: int1_default { + pinmux { + function = "gpio"; + pins = "gpio112"; + }; + pinconf { + pins = "gpio112"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; + + bma2x2_int2_pin { + bma2x2_int2_default: int2_default { + pinmux { + function = "gpio"; + pins = "gpio114"; + }; + pinconf { + pins = "gpio114"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; +}; + +&i2c_0 { /* BLSP1 QUP2 */ + avago@39 { /* Ambient light and proximity sensor */ + compatible = "avago,apds9930"; + reg = <0x39>; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&apds99xx_default>; + pinctrl-1 = <&apds99xx_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <113 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + avago,irq-gpio = <&msm_gpio 113 0x2002>; + avago,ps-threshold = <600>; + avago,ps-hysteresis-threshold = <500>; + avago,ps-pulse = <8>; + avago,ps-pgain = <0>; + avago,als-B = <186>; + avago,als-C = <75>; + avago,als-D = <129>; + avago,ga-value = <768>; + }; + + bosch@18 { /* Accelerometer sensor */ + compatible = "bosch,bma2x2"; + reg = <0x18>; + pinctrl-names = "default"; + pinctrl-0 = <&bma2x2_int1_default &bma2x2_int2_default>; + interrupt-parent = <&msm_gpio>; + interrupts = <112 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + bosch,init-interval = <200>; + bosch,place = <2>; + bosch,gpio-int1 = <&msm_gpio 112 0x2002>; + bosch,gpio-int2 = <&msm_gpio 114 0x2002>; + }; + + memsic@30 { /* Magnetic field sensor */ + compatible = "memsic,mmc3416x"; + reg = <0x30>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + memsic,dir = "obverse-x-axis-forward"; + memsic,auto-report; + }; + + mpu6050@68 { + compatible = "invn,mpu6050"; + reg = <0x68>; + pinctrl-names = "mpu_default","mpu_sleep"; + pinctrl-0 = <&mpu6050_default>; + pinctrl-1 = <&mpu6050_sleep>; + interrupt-parent = <&msm_gpio>; + interrupts = <115 0x2>; + vdd-supply = <&pm8916_l17>; + vlogic-supply = <&pm8916_l16>; + vi2c-supply = <&pm8916_l6>; + invn,gpio-int = <&msm_gpio 115 0x2>; + invn,place = "Portrait Up Back Side"; + }; +}; + +&sdc2_cd_on { + /delete-property/ bias-pull-up; + bias-pull-down; +}; + +&sdc2_cd_off { + /delete-property/ bias-disable; + bias-pull-down; +}; + +&sdhc_2 { + interrupts = <0 1>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + /delete-property/ cd-gpios; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dts b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dts new file mode 100644 index 00000000000..9c15f575520 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dts @@ -0,0 +1,22 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuic.dtsi" +#include "msm8916-512mb-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUIC"; + compatible = "qcom,msm8916-qrd-skuic", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x11010b 0x105>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dtsi b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dtsi new file mode 100644 index 00000000000..b96f3cdcb0a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuic.dtsi @@ -0,0 +1,101 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-qrd-skui.dtsi" +#include "dsi-panel-hx8379a-fwvga-video.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUIC"; + compatible = "qcom,msm8916-qrd-skuic", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; +}; + + +&soc { + i2c@78b9000 { /* BLSP1 QUP5 */ + mstar@26 { + compatible = "mstar,msg21xx"; + reg = <0x26>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + mstar,irq-gpio = <&msm_gpio 13 0x00000001>; + mstar,reset-gpio = <&msm_gpio 12 0x0>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + mstar,display-coords = <0 0 480 854>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + mstar,button-map = <172 139 158>; + mstar,ic-type = <2>; + mstar,num-max-touches = <2>; + mstar,hard-reset-delay-ms = <100>; + mstar,post-hard-reset-delay-ms = <100>; + }; + }; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8379a_fwvga_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&msm_gpio 25 0>; +}; + +&dsi_hx8379a_fwvga_video { + qcom,cont-splash-enabled; +}; + +&pm8916_chg { + qcom,vddmax-mv = <4350>; + qcom,vddsafe-mv = <4380>; + qcom,vinmin-mv = <4470>; + qcom,batt-hot-percentage = <35>; + qcom,batt-cold-percentage = <70>; + qcom,tchg-mins = <360>; + qcom,disable-vbatdet-based-recharge; + status = "okay"; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,rpull-up-kohm = <100>; + qcom,vref-batt-therm = <1800000>; + + #include "batterydata-qrd-skuic-4v35-1850mah.dtsi" + }; +}; + +&pm8916_bms { + status = "okay"; + qcom,force-bms-active-on-charger; + qcom,battery-data = <&qrd_batterydata>; +}; + +&i2c_0 { /* BLSP1 QUP2 */ + bosch@18 { /* Accelerometer sensor */ + compatible = "bosch,bma2x2"; + reg = <0x18>; + pinctrl-names = "default"; + pinctrl-0 = <&bma2x2_int1_default &bma2x2_int2_default>; + interrupt-parent = <&msm_gpio>; + interrupts = <112 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + bosch,init-interval = <200>; + bosch,place = <4>; + bosch,gpio-int1 = <&msm_gpio 112 0x2002>; + bosch,gpio-int2 = <&msm_gpio 114 0x2002>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dts b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dts new file mode 100644 index 00000000000..1ff8c360bca --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dts @@ -0,0 +1,22 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8916-qrd-skuid.dtsi" +#include "msm8916-memory.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUID"; + compatible = "qcom,msm8916-qrd-skuid", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; + qcom,board-id = <0x21010b 5>, <0x22010b 5>, <0x23010b 5>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dtsi b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dtsi new file mode 100644 index 00000000000..692b357a49e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd-skuid.dtsi @@ -0,0 +1,100 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916-qrd-skui.dtsi" +#include "dsi-panel-hx8379a-fwvga-video.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8916 QRD SKUID"; + compatible = "qcom,msm8916-qrd-skuid", "qcom,msm8916-qrd", "qcom,msm8916", "qcom,qrd"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8379a_fwvga_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&msm_gpio 25 0>; +}; + +&dsi_hx8379a_fwvga_video { + qcom,cont-splash-enabled; +}; + +&soc { + i2c@78b9000 { /* BLSP1 QUP5 */ + mstar@26 { + compatible = "mstar,msg21xx"; + reg = <0x26>; + interrupt-parent = <&msm_gpio>; + interrupts = <13 0x2008>; + mstar,irq-gpio = <&msm_gpio 13 0x00000001>; + mstar,reset-gpio = <&msm_gpio 12 0x0>; + vdd-supply = <&pm8916_l17>; + vcc_i2c-supply = <&pm8916_l6>; + mstar,display-coords = <0 0 480 854>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + mstar,button-map = <172 139 158>; + mstar,ic-type = <2>; + mstar,num-max-touches = <2>; + mstar,hard-reset-delay-ms = <100>; + mstar,post-hard-reset-delay-ms = <100>; + }; + }; +}; + +&pm8916_chg { + qcom,vddmax-mv = <4350>; + qcom,vddsafe-mv = <4380>; + qcom,vinmin-mv = <4470>; + qcom,batt-hot-percentage = <35>; + qcom,batt-cold-percentage = <70>; + qcom,tchg-mins = <360>; + qcom,disable-vbatdet-based-recharge; + status = "okay"; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,rpull-up-kohm = <100>; + qcom,vref-batt-therm = <1800000>; + + #include "batterydata-qrd-skuic-4v35-1850mah.dtsi" + }; +}; + +&pm8916_bms { + status = "okay"; + qcom,force-bms-active-on-charger; + qcom,battery-data = <&qrd_batterydata>; +}; + +&i2c_0 { /* BLSP1 QUP2 */ + bosch@18 { /* Accelerometer sensor */ + compatible = "bosch,bma2x2"; + reg = <0x18>; + pinctrl-names = "default"; + pinctrl-0 = <&bma2x2_int1_default &bma2x2_int2_default>; + interrupt-parent = <&msm_gpio>; + interrupts = <112 0x2002>; + vdd-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; + bosch,init-interval = <200>; + bosch,place = <0>; + bosch,gpio-int1 = <&msm_gpio 112 0x2002>; + bosch,gpio-int2 = <&msm_gpio 114 0x2002>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-qrd.dtsi b/arch/arm64/boot/dts/qcom/msm8916-qrd.dtsi new file mode 100644 index 00000000000..500b8391d1a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-qrd.dtsi @@ -0,0 +1,205 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8916.dtsi" +#include "msm8916-pinctrl.dtsi" + +/ { + aliases { + serial0 = &blsp1_uart2; + }; +}; + +&soc { + i2c@78ba000 { /* BLSP1 QUP6 */ + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 21 0x00>; + qcom,dis-gpio = <&msm_gpio 20 0x00>; + qcom,clk-src = "BBCLK2"; + qcom,clk-en-gpio = <&msm_gpio 0 0x00>; + interrupt-parent = <&msm_gpio>; + interrupts = <21 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8916_gpios 2 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + +}; + +&android_usb { + qcom,android-usb-cdrom; +}; + +&blsp1_uart2 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_sleep>; +}; + +&mdss_dsi0 { + qcom,regulator-ldo-mode; + qcom,platform-regulator-settings = [00 01 01 00 20 07 00]; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + vol_up { + label = "volume_up"; + gpios = <&msm_gpio 107 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; +}; + +&pm8916_gpios { + gpio@c000 { /* GPIO 1 */ + /* Battery UICC Alarm */ + status = "disabled"; + }; + + gpio@c100 { /* GPIO 2 */ + /* NFC_CLK_REQ */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c200 { /* GPIO 3 */ + /* External regulator control for WTR */ + status = "disabled"; + }; + + gpio@c300 { /* GPIO 4 */ + /* External regulator control for APC */ + status = "disabled"; + }; +}; + +&sdhc_1 { + vdd-supply = <&pm8916_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 400000>; + + vdd-io-supply = <&pm8916_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 60000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; + + qcom,nonremovable; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8916_l11>; + qcom,vdd-voltage-level = <2800000 2950000>; + qcom,vdd-current-level = <15000 400000>; + + vdd-io-supply = <&pm8916_l12>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 50000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &msm_gpio 38 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&msm_gpio 38 0x0>; + + status = "ok"; +}; + +&spmi_bus { + qcom,pm8916@1 { + qcom,vibrator@c000 { + status = "okay"; + qcom,vib-timeout-ms = <15000>; + qcom,vib-vtg-level-mV = <3100>; + }; + }; +}; + +&qcom_tzlog { + status = "okay"; +}; + +&qcom_rng { + status = "okay"; +}; + +&qcom_crypto { + status = "okay"; +}; + +&qcom_cedev { + status = "okay"; +}; + +&qcom_seecom { + status = "okay"; +}; + +/* CoreSight */ +&tpiu { + pinctrl-names = "sdcard", "trace", "swduart", + "swdtrc", "jtag", "spmi"; + /* NIDnT */ + pinctrl-0 = <&qdsd_clk_sdcard &qdsd_cmd_sdcard + &qdsd_data0_sdcard &qdsd_data1_sdcard + &qdsd_data2_sdcard &qdsd_data3_sdcard>; + pinctrl-1 = <&qdsd_clk_trace &qdsd_cmd_trace + &qdsd_data0_trace &qdsd_data1_trace + &qdsd_data2_trace &qdsd_data3_trace>; + pinctrl-2 = <&qdsd_cmd_swduart &qdsd_data0_swduart + &qdsd_data1_swduart &qdsd_data2_swduart + &qdsd_data3_swduart>; + pinctrl-3 = <&qdsd_clk_swdtrc &qdsd_cmd_swdtrc + &qdsd_data0_swdtrc &qdsd_data1_swdtrc + &qdsd_data2_swdtrc &qdsd_data3_swdtrc>; + pinctrl-4 = <&qdsd_cmd_jtag &qdsd_data0_jtag + &qdsd_data1_jtag &qdsd_data2_jtag + &qdsd_data3_jtag>; + pinctrl-5 = <&qdsd_clk_spmi &qdsd_cmd_spmi + &qdsd_data0_spmi &qdsd_data3_spmi>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm8916-regulator.dtsi new file mode 100644 index 00000000000..464425fc7fa --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-regulator.dtsi @@ -0,0 +1,377 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* SPM controlled regulators */ +&spmi_bus { + qcom,pm8916@1 { + pm8916_s2: spm-regulator@1700 { + compatible = "qcom,spm-regulator"; + regulator-name = "8916_s2"; + reg = <0x1700 0x100>; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + }; + }; +}; + +/* CPR controlled regulator */ + +&soc { + mem_acc_vreg_corner: regulator@1946000 { + compatible = "qcom,mem-acc-regulator"; + reg = <0x1946000 0x4>, <0x1946000 0x4>, <0x58000 0x1000>; + reg-names = "acc-sel-l1", "acc-sel-l2", "efuse_addr"; + regulator-name = "mem_acc_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <3>; + + qcom,acc-sel-l1-bit-pos = <0>; + qcom,acc-sel-l2-bit-pos = <8>; + qcom,corner-acc-map = <0 1 1>; + qcom,l1-config-skip-fuse-sel = <0 52 1 1 0>; + }; + + apc_vreg_corner: regulator@b018000 { + compatible = "qcom,cpr-regulator"; + reg = <0xb018000 0x1000>, <0xb011064 4>, <0x58000 0x1000>; + reg-names = "rbcpr", "rbcpr_clk", "efuse_addr"; + interrupts = <0 15 0>; + regulator-name = "apc_corner"; + qcom,cpr-fuse-corners = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <8>; + + qcom,cpr-voltage-ceiling = <1050000 1150000 1350000>; + qcom,cpr-voltage-floor = <1050000 1050000 1162500>; + vdd-apc-supply = <&pm8916_s2>; + + qcom,vdd-mx-corner-map = <4 5 7>; + qcom,vdd-mx-vmin-method = <4>; + vdd-mx-supply = <&pm8916_l3_corner_ao>; + qcom,vdd-mx-vmax = <7>; + + mem-acc-supply = <&mem_acc_vreg_corner>; + + qcom,cpr-ref-clk = <19200>; + qcom,cpr-timer-delay = <5000>; + qcom,cpr-timer-cons-up = <0>; + qcom,cpr-timer-cons-down = <2>; + qcom,cpr-irq-line = <0>; + qcom,cpr-step-quotient = <26>; + qcom,cpr-up-threshold = <0>; + qcom,cpr-down-threshold = <2>; + qcom,cpr-idle-clocks = <15>; + qcom,cpr-gcnt-time = <1>; + qcom,vdd-apc-step-up-limit = <1>; + qcom,vdd-apc-step-down-limit = <1>; + qcom,cpr-apc-volt-step = <12500>; + + qcom,cpr-fuse-row = <27 0>; + qcom,cpr-fuse-target-quot = <42 24 6>; + qcom,cpr-fuse-ro-sel = <54 54 54>; + qcom,cpr-fuse-bp-cpr-disable = <57>; + qcom,cpr-fuse-init-voltage = + <27 36 6 0>, + <27 18 6 0>, + <27 0 6 0>; + qcom,cpr-init-voltage-ref = <1050000 1150000 1350000>; + qcom,cpr-init-voltage-step = <10000>; + qcom,cpr-corner-map = <1 1 2 2 3 3 3 3>; + qcom,cpr-corner-frequency-map = + <1 200000000>, + <2 400000000>, + <3 533330000>, + <4 800000000>, + <5 998400000>, + <6 1094400000>, + <7 1152000000>, + <8 1209600000>; + qcom,speed-bin-fuse-sel = <0 55 2 0>; + qcom,cpr-speed-bin-max-corners = + <0 0 2 4 8>, + <1 0 2 4 7>; + qcom,cpr-quot-adjust-scaling-factor-max = <650>; + qcom,cpr-enable; + }; +}; + + +/* RPM controlled regulators */ +&rpm_bus { + + /* PM8916 S1 VDD_CX supply */ + rpm-regulator-smpa1 { + status = "okay"; + pm8916_s1_corner: regulator-s1-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s1_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + pm8916_s1_corner_ao: regulator-s1-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s1_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + pm8916_s1_floor_corner: regulator-s1-floor-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_s1_floor_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-floor-corner; + qcom,always-send-voltage; + }; + }; + + rpm-regulator-smpa3 { + status = "okay"; + pm8916_s3: regulator-s3 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1300000>; + qcom,init-voltage = <1200000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa4 { + status = "okay"; + pm8916_s4: regulator-s4 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa1 { + status = "okay"; + pm8916_l1: regulator-l1 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1225000>; + qcom,init-voltage = <1225000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa2 { + status = "okay"; + pm8916_l2: regulator-l2 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; + }; + }; + + /* PM8916 L3 VDD_MX supply */ + rpm-regulator-ldoa3 { + status = "okay"; + pm8916_l3: regulator-l3 { + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1287500>; + status = "okay"; + }; + + pm8916_l3_corner_ao: regulator-l3-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l3_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8916_l3_corner_so: regulator-l3-corner-so { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l3_corner_so"; + qcom,set = <2>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + qcom,init-voltage = <1>; + }; + }; + + rpm-regulator-ldoa4 { + status = "okay"; + pm8916_l4: regulator-l4 { + regulator-min-microvolt = <2050000>; + regulator-max-microvolt = <2050000>; + qcom,init-voltage = <2050000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa5 { + status = "okay"; + pm8916_l5: regulator-l5 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa6 { + status = "okay"; + pm8916_l6: regulator-l6 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa7 { + status = "okay"; + pm8916_l7: regulator-l7 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + + pm8916_l7_ao: regulator-l7-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l7_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + }; + + pm8916_l7_so: regulator-l7-so { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l7_so"; + qcom,set = <2>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-enable = <0>; + }; + }; + + rpm-regulator-ldoa8 { + status = "okay"; + pm8916_l8: regulator-l8 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2900000>; + qcom,init-voltage = <2850000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa9 { + status = "okay"; + pm8916_l9: regulator-l9 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <3300000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa10 { + status = "okay"; + pm8916_l10: regulator-l10 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2700000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa11 { + status = "okay"; + pm8916_l11: regulator-l11 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa12 { + status = "okay"; + pm8916_l12: regulator-l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa13 { + status = "okay"; + pm8916_l13: regulator-l13 { + regulator-min-microvolt = <3075000>; + regulator-max-microvolt = <3075000>; + qcom,init-voltage = <3075000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa14 { + status = "okay"; + pm8916_l14: regulator-l14 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa15 { + status = "okay"; + pm8916_l15: regulator-l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa16 { + status = "okay"; + pm8916_l16: regulator-l16 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa17 { + status = "okay"; + pm8916_l17: regulator-l17 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + qcom,init-voltage = <2850000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa18 { + status = "okay"; + pm8916_l18: regulator-l18 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + qcom,init-voltage = <2700000>; + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916-smp2p.dtsi b/arch/arm64/boot/dts/qcom/msm8916-smp2p.dtsi new file mode 100644 index 00000000000..58a1928fb21 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-smp2p.dtsi @@ -0,0 +1,163 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +&soc { + qcom,smp2p-modem { + compatible = "qcom,smp2p"; + reg = <0x0b011008 0x4>; + qcom,remote-pid = <1>; + qcom,irq-bitmask = <0x4000>; + interrupts = <0 27 1>; + }; + + qcom,smp2p-wcnss { + compatible = "qcom,smp2p"; + reg = <0x0b011008 0x4>; + qcom,remote-pid = <4>; + qcom,irq-bitmask = <0x40000>; + interrupts = <0 143 1>; + }; + + smp2pgpio_smp2p_7_in: qcom,smp2pgpio-smp2p-7-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <7>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_7_in { + compatible = "qcom,smp2pgpio_test_smp2p_7_in"; + gpios = <&smp2pgpio_smp2p_7_in 0 0>; + }; + + smp2pgpio_smp2p_7_out: qcom,smp2pgpio-smp2p-7-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <7>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_7_out { + compatible = "qcom,smp2pgpio_test_smp2p_7_out"; + gpios = <&smp2pgpio_smp2p_7_out 0 0>; + }; + + smp2pgpio_smp2p_1_in: qcom,smp2pgpio-smp2p-1-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <1>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_1_in { + compatible = "qcom,smp2pgpio_test_smp2p_1_in"; + gpios = <&smp2pgpio_smp2p_1_in 0 0>; + }; + + smp2pgpio_smp2p_1_out: qcom,smp2pgpio-smp2p-1-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <1>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_1_out { + compatible = "qcom,smp2pgpio_test_smp2p_1_out"; + gpios = <&smp2pgpio_smp2p_1_out 0 0>; + }; + + smp2pgpio_ssr_smp2p_1_in: qcom,smp2pgpio-ssr-smp2p-1-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "slave-kernel"; + qcom,remote-pid = <1>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + smp2pgpio_ssr_smp2p_1_out: qcom,smp2pgpio-ssr-smp2p-1-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "master-kernel"; + qcom,remote-pid = <1>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + smp2pgpio_smp2p_4_in: qcom,smp2pgpio-smp2p-4-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <4>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_4_in { + compatible = "qcom,smp2pgpio_test_smp2p_4_in"; + gpios = <&smp2pgpio_smp2p_4_in 0 0>; + }; + + smp2pgpio_smp2p_4_out: qcom,smp2pgpio-smp2p-4-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <4>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_4_out { + compatible = "qcom,smp2pgpio_test_smp2p_4_out"; + gpios = <&smp2pgpio_smp2p_4_out 0 0>; + }; + + smp2pgpio_ssr_smp2p_4_in: qcom,smp2pgpio-ssr-smp2p-4-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "slave-kernel"; + qcom,remote-pid = <4>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + smp2pgpio_ssr_smp2p_4_out: qcom,smp2pgpio-ssr-smp2p-4-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "master-kernel"; + qcom,remote-pid = <4>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi new file mode 100644 index 00000000000..808d020a3cc --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -0,0 +1,1977 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "skeleton.dtsi" +#include <dt-bindings/clock/msm-clocks-8916.h> +#include <dt-bindings/clock/qcom,gcc-msm8916.h> + +/ { + model = "Qualcomm Technologies, Inc. MSM8916"; + compatible = "qcom,msm8916"; + qcom,msm-id = <206 0>, + <248 0>, + <249 0>, + <250 0>; + + interrupt-parent = <&intc>; + + chosen { + bootargs = "sched_enable_hmp=1"; + }; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + sdhc2 = &sdhc_2; /* SDC2 SD card slot */ + + /* smdtty devices */ + smd1 = &smdtty_apps_fm; + smd2 = &smdtty_apps_riva_bt_acl; + smd3 = &smdtty_apps_riva_bt_cmd; + smd4 = &smdtty_mbalbridge; + smd5 = &smdtty_apps_riva_ant_cmd; + smd6 = &smdtty_apps_riva_ant_data; + smd7 = &smdtty_data1; + smd8 = &smdtty_data4; + smd11 = &smdtty_data11; + smd21 = &smdtty_data21; + smd36 = &smdtty_loopback; + + spi0 = &spi_0; /* SPI0 controller device */ + i2c0 = &i2c_0; /* I2C0 controller device */ + i2c5 = &i2c_5; /* I2C5 controller device */ + i2c6 = &i2c_6; /* I2C6 NFC qup6 device */ + i2c4 = &i2c_4; /* I2C4 controller device */ + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + CPU0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0>; + enable-method = "qcom,arm-cortex-acc"; + qcom,acc = <&acc0>; + next-level-cache = <&L2_0>; + L2_0: l2-cache { + compatible = "arm,arch-cache"; + cache-level = <2>; + power-domain = <&l2ccc_0>; + }; + }; + + CPU1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x1>; + enable-method = "qcom,arm-cortex-acc"; + qcom,acc = <&acc1>; + next-level-cache = <&L2_0>; + }; + + CPU2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x2>; + enable-method = "qcom,arm-cortex-acc"; + qcom,acc = <&acc2>; + next-level-cache = <&L2_0>; + }; + + CPU3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x3>; + enable-method = "qcom,arm-cortex-acc"; + qcom,acc = <&acc3>; + next-level-cache = <&L2_0>; + }; + }; + + soc: soc { }; +}; + +#include "msm8916-coresight.dtsi" +#include "msm8916-smp2p.dtsi" +#include "msm8916-camera.dtsi" +#include "msm8916-ipcrouter.dtsi" +#include "msm-gdsc-8916.dtsi" +#include "msm8916-iommu.dtsi" +#include "msm8916-gpu.dtsi" +#include "msm8916-mdss.dtsi" +#include "msm8916-mdss-pll.dtsi" +#include "msm8916-iommu-domains.dtsi" +#include "msm8916-bus.dtsi" +#include "msm8916-camera.dtsi" + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + l2ccc_0: clock-controller@b011000 { + compatible = "qcom,8916-l2ccc"; + reg = <0x0b011000 0x1000>; + }; + + acc0:clock-controller@b088000 { + compatible = "qcom,arm-cortex-acc"; + reg = <0x0b088000 0x1000>, + <0x0b008000 0x1000>; + }; + + acc1:clock-controller@b098000 { + compatible = "qcom,arm-cortex-acc"; + reg = <0x0b098000 0x1000>, + <0x0b008000 0x1000>; + }; + + acc2:clock-controller@b0a8000 { + compatible = "qcom,arm-cortex-acc"; + reg = <0x0b0a8000 0x1000>, + <0x0b008000 0x1000>; + }; + + acc3:clock-controller@b0b8000 { + compatible = "qcom,arm-cortex-acc"; + reg = <0x0b0b8000 0x1000>, + <0x0b008000 0x1000>; + }; + + intc: interrupt-controller@b000000 { + compatible = "qcom,msm-qgic2"; + interrupt-controller; + #interrupt-cells = <3>; + reg = <0x0b000000 0x1000>, + <0x0b002000 0x1000>; + }; + + msm_gpio: pinctrl@1000000 { + compatible = "qcom,msm8916-pinctrl"; + reg = <0x1000000 0x300000>; + interrupts = <0 208 0>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + wcd9xxx_intc: wcd9xxx_irq { + compatible = "qcom,wcd9xxx-irq"; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&intc>; + interrupts = <0 68 0>; + interrupt-names = "cdc-int"; + }; + + restart@4ab000 { + compatible = "qcom,pshold"; + reg = <0x4ab000 0x4>; + }; + + qcom,mpm2-sleep-counter@4a3000 { + compatible = "qcom,mpm2-sleep-counter"; + reg = <0x4a3000 0x1000>; + clock-frequency = <32768>; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts = <1 2 0xf08>, + <1 3 0xf08>, + <1 4 0xf08>, + <1 1 0xf08>; + clock-frequency = <19200000>; + }; + + timer@b020000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0xb020000 0x1000>; + clock-frequency = <19200000>; + + frame@b021000 { + frame-number = <0>; + interrupts = <0 8 0x4>, + <0 7 0x4>; + reg = <0xb021000 0x1000>, + <0xb022000 0x1000>; + }; + + frame@b023000 { + frame-number = <1>; + interrupts = <0 9 0x4>; + reg = <0xb023000 0x1000>; + status = "disabled"; + }; + + frame@b024000 { + frame-number = <2>; + interrupts = <0 10 0x4>; + reg = <0xb024000 0x1000>; + status = "disabled"; + }; + + frame@b025000 { + frame-number = <3>; + interrupts = <0 11 0x4>; + reg = <0xb025000 0x1000>; + status = "disabled"; + }; + + frame@b026000 { + frame-number = <4>; + interrupts = <0 12 0x4>; + reg = <0xb026000 0x1000>; + status = "disabled"; + }; + + frame@b027000 { + frame-number = <5>; + interrupts = <0 13 0x4>; + reg = <0xb027000 0x1000>; + status = "disabled"; + }; + + frame@b028000 { + frame-number = <6>; + interrupts = <0 14 0x4>; + reg = <0xb028000 0x1000>; + status = "disabled"; + }; + }; + + clock_rpm: qcom,rpmcc@1800000 { + compatible = "qcom,rpmcc-8916"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + #clock-cells = <1>; + + }; + + clock_gcc: qcom,gcc@1800000 { + compatible = "qcom,gcc-msm8916"; + #clock-cells = <1>; + #reset-cells = <1>; + reg = <0x1800000 0x80000>; + vdd_dig-supply = <&pm8916_s1_corner>; + vdd_sr2_dig-supply = <&pm8916_s1_corner_ao>; + vdd_sr2_pll-supply = <&pm8916_l7_ao>; + //clocks = <&clock_rpm clk_xo_clk_src>, + // <&clock_rpm clk_xo_a_clk_src>; + //clock-names = "xo", "xo_a"; + }; + + clock_gcc_mdss: qcom,gcc-mdss@1a98300 { + compatible = "qcom,gcc-mdss-8916"; + clocks = <&mdss_dsi0_pll clk_pixel_clk_src>, + <&mdss_dsi0_pll clk_byte_clk_src>; + clock-names = "pixel_src", "byte_src"; + #clock-cells = <1>; + }; + + clock_debug: qcom,cc-debug@1874000 { + compatible = "qcom,cc-debug-8916"; + reg = <0x1874000 0x4>, + <0xb01101c 0x8>; + reg-names = "cc_base", "meas"; + clocks = <&clock_rpm clk_rpm_debug_mux>; + clock-names = "rpm_debug_mux"; + #clock-cells = <1>; + }; + + tsens: tsens@4a8000 { + compatible = "qcom,msm8916-tsens"; + reg = <0x4a8000 0x2000>, + <0x5c000 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>; + interrupt-names = "tsens-upper-lower"; + qcom,sensors = <5>; + qcom,slope = <3200 3200 3200 3200 3200>; + qcom,sensor-id = <0 1 2 4 5>; + }; + + qcom,clock-a7@0b011050 { + compatible = "qcom,clock-a53-8916"; + reg = <0x0b011050 0x8>, + <0x0005c004 0x8>; + reg-names = "rcg-base", "efuse1"; + qcom,safe-freq = < 400000000 >; + cpu-vdd-supply = <&apc_vreg_corner>; + clocks = <&clock_gcc clk_gpll0_ao_clk_src>, + <&clock_gcc clk_a53sspll>; + clock-names = "clk-4", "clk-5"; + qcom,speed0-bin-v0 = + < 0 0>, + < 200000000 1>, + < 400000000 2>, + < 533333000 3>, + < 800000000 4>, + < 998400000 5>, + < 1094400000 6>, + < 1152000000 7>, + < 1209600000 8>; + + qcom,speed1-bin-v0 = + < 0 0>, + < 200000000 1>, + < 400000000 2>, + < 533333000 3>, + < 800000000 4>, + < 998400000 5>, + < 1094400000 6>, + < 1152000000 7>; + }; + + cpubw: qcom,cpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 762 /* 100 MHz */>, + < 1525 /* 200 MHz */>, + < 3051 /* 400 MHz */>, + < 4066 /* 533 MHz */>; + qcom,ab-percent = < 30 >; + }; + + qcom,armbw-pm { + compatible = "qcom,armbw-pm"; + interrupts = <1 7 0xF1>; + qcom,bytes-per-beat = <16>; + }; + + devfreq-cpufreq { + cpubw-cpufreq { + target-dev = <&cpubw>; + cpu-to-dev-map = + < 400000 762>, + < 800000 1525>, + < 1094400 3051>, + < 1152000 4066>; + }; + }; + + qcom,msm-cpufreq@0 { + reg = <0 4>; + compatible = "qcom,msm-cpufreq"; + qcom,cpufreq-table = + < 200000 >, + < 400000 >, + < 533330 >, + < 800000 >, + < 998400 >, + < 1094400 >, + < 1152000 >, + < 1209600 >; + }; + + qcom,sps { + compatible = "qcom,msm_sps_4k"; + qcom,device-type = <3>; + qcom,pipe-attr-ee; + }; + + blsp1_uart1: uart@78af000 { + compatible = "qcom,msm-hsuart-v14"; + reg = <0x78af000 0x200>, + <0x7884000 0x23000>; + reg-names = "core_mem", "bam_mem"; + interrupt-names = "core_irq", "bam_irq", "wakeup_irq"; + #address-cells = <0>; + interrupt-parent = <&blsp1_uart1>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 107 0 + 1 &intc 0 238 0 + 2 &msm_gpio 1 0>; + + qcom,bam-tx-ep-pipe-index = <0>; + qcom,bam-rx-ep-pipe-index = <1>; + qcom,master-id = <86>; + + clocks = <&clock_gcc clk_gcc_blsp1_uart1_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + + qcom,msm-bus,name = "blsp1_uart1"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <86 512 0 0>, + <86 512 500 800>; + pinctrl-names = "sleep", "default"; + pinctrl-0 = <&hsuart_sleep>; + pinctrl-1 = <&hsuart_active>; + status = "disabled"; + }; + + blsp1_uart2: serial@78b0000 { + compatible = "qcom,msm-lsuart-v14", "qcom,msm-uartdm-v1.4", + "qcom,msm-uartdm"; + reg = <0x78b0000 0x200>; + interrupts = <0 108 0>; + status = "disabled"; + //clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + // <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>, <&clock_gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; + }; + + qcom,usbbam@78c4000 { + compatible = "qcom,usb-bam-msm"; + reg = <0x78c4000 0x15000>; + reg-names = "hsusb"; + interrupts = <0 135 0>; + interrupt-names = "hsusb"; + qcom,usb-bam-num-pipes = <2>; + qcom,usb-bam-fifo-baseaddr = <0x08603800>; + qcom,ignore-core-reset-ack; + qcom,disable-clk-gating; + + qcom,pipe0 { + label = "hsusb-qdss-in-0"; + qcom,usb-bam-mem-type = <3>; + qcom,bam-type = <1>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,src-bam-physical-address = <0x884000>; + qcom,src-bam-pipe-index = <0>; + qcom,dst-bam-physical-address = <0x78c4000>; + qcom,dst-bam-pipe-index = <0>; + qcom,data-fifo-offset = <0x0>; + qcom,data-fifo-size = <0x600>; + qcom,descriptor-fifo-offset = <0x600>; + qcom,descriptor-fifo-size = <0x200>; + qcom,reset-bam-on-connect; + }; + }; + + usb_otg: usb@78d9000 { + compatible = "qcom,hsusb-otg"; + + reg = <0x78d9000 0x400>; + reg-names = "core"; + interrupts = <0 134 0>,<0 140 0>; + interrupt-names = "core_irq", "async_irq"; + + hsusb_vdd_dig-supply = <&pm8916_s1_corner>; + HSUSB_1p8-supply = <&pm8916_l7>; + HSUSB_3p3-supply = <&pm8916_l13>; + qcom,vdd-voltage-level = <1 5 7>; + + qcom,hsusb-otg-phy-init-seq = + <0x44 0x80 0x6B 0x81 0x24 0x82 0x13 0x83 0xffffffff>; + qcom,hsusb-otg-phy-type = <2>; + qcom,hsusb-otg-mode = <1>; + qcom,hsusb-otg-otg-control = <2>; + qcom,dp-manual-pullup; + qcom,hsusb-otg-mpm-dpsehv-int = <49>; + qcom,hsusb-otg-mpm-dmsehv-int = <58>; + + qcom,msm-bus,name = "usb2"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <87 512 0 0>, + <87 512 80000 0>, + <87 512 6000 6000>; + clocks = <&clock_gcc GCC_USB_HS_AHB_CLK>, + <&clock_gcc GCC_USB_HS_SYSTEM_CLK>, + <&clock_gcc GCC_USB2A_PHY_SLEEP_CLK>, + <&clock_rpm clk_bimc_usb_a_clk>, + <&clock_rpm clk_snoc_usb_a_clk>, + <&clock_rpm clk_pcnoc_usb_a_clk>, + <&clock_rpm clk_xo_otg_clk>; + clock-names = "iface_clk", "core_clk", "sleep_clk", + "bimc_clk", "snoc_clk", "pcnoc_clk", + "xo"; + qcom,bus-clk-rate = <400000000 200000000 100000000>; + }; + + android_usb: android_usb@086000c8 { + compatible = "qcom,android-usb"; + reg = <0x086000c8 0xc8>; + qcom,pm-qos-latency = <2 1001 12701>; + qcom,streaming-func = "mtp"; + qcom,android-usb-uicc-nluns = /bits/ 8 <1>; + }; + + qcom,rmtfs_sharedmem@8e580000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x86700000 0xe0000>; + reg-names = "rmtfs"; + qcom,client-id = <0x00000001>; + }; + + qcom,dsp_sharedmem@8e6e0000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x867e0000 0x20000>; + reg-names = "rfsa_dsp"; + qcom,client-id = <0x011013ec>; + }; + + qcom,mdm_sharedmem@8e6e0000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x867e0000 0x20000>; + reg-names = "rfsa_mdm"; + qcom,client-id = <0x011013ed>; + }; + + jtag_fuse: jtagfuse@5e01c { + compatible = "qcom,jtag-fuse"; + reg = <0x5e01c 0x8>; + reg-names = "fuse-base"; + }; + + jtag_mm0: jtagmm@85c000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x85c000 0x1000>, + <0x850000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU0>; + }; + + jtag_mm1: jtagmm@85d000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x85d000 0x1000>, + <0x852000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU1>; + }; + + jtag_mm2: jtagmm@85e000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x85e000 0x1000>, + <0x854000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU2>; + }; + + jtag_mm3: jtagmm@85f000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x85f000 0x1000>, + <0x856000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU3>; + }; + + sdhc_1: sdhci@07824000 { + compatible = "qcom,sdhci-msm"; + reg = <0x07824900 0x11c>, <0x07824000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 123 0>, <0 138 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + qcom,bus-width = <8>; + + qcom,cpu-dma-latency-us = <701>; + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */ + <78 512 1600 3200>, /* 400 KB/s*/ + <78 512 80000 160000>, /* 20 MB/s */ + <78 512 100000 200000>, /* 25 MB/s */ + <78 512 200000 400000>, /* 50 MB/s */ + <78 512 400000 800000>, /* 100 MB/s */ + <78 512 400000 800000>, /* 200 MB/s */ + <78 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + clocks = <&clock_gcc GCC_SDCC1_AHB_CLK>, + <&clock_gcc GCC_SDCC1_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + + qcom,clk-rates = <400000 25000000 50000000 100000000 177770000>; + qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v"; + + status = "disabled"; + }; + + sdhc_2: sdhci@07864000 { + compatible = "qcom,sdhci-msm"; + reg = <0x07864900 0x11c>, <0x07864000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 125 0>, <0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + qcom,bus-width = <4>; + + qcom,cpu-dma-latency-us = <701>; + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */ + <81 512 1600 3200>, /* 400 KB/s*/ + <81 512 80000 160000>, /* 20 MB/s */ + <81 512 100000 200000>, /* 25 MB/s */ + <81 512 200000 400000>, /* 50 MB/s */ + <81 512 400000 800000>, /* 100 MB/s */ + <81 512 400000 800000>, /* 200 MB/s */ + <81 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + clocks = <&clock_gcc GCC_SDCC2_AHB_CLK>, + <&clock_gcc GCC_SDCC2_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + + qcom,clk-rates = <400000 25000000 50000000 100000000 200000000>; + + status = "disabled"; + }; + + qcom,ipc-spinlock@1905000 { + compatible = "qcom,ipc-spinlock-sfpb"; + reg = <0x1905000 0x8000>; + qcom,num-locks = <8>; + }; + + qcom,msm-adsp-loader { + compatible = "qcom,adsp-loader"; + qcom,adsp-state = <0>; + qcom,proc-img-to-load = "modem"; + }; + + qcom_crypto: qcrypto@720000 { + compatible = "qcom,qcrypto"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <2>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,msm-bus,name = "qcrypto-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 3936000 393600>; + clocks = <&clock_gcc CRYPTO_CLK_SRC>, + <&clock_gcc GCC_CRYPTO_CLK>, + <&clock_gcc GCC_CRYPTO_AHB_CLK>, + <&clock_gcc GCC_CRYPTO_AXI_CLK>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,use-sw-aes-cbc-ecb-ctr-algo; + qcom,use-sw-aes-xts-algo; + qcom,use-sw-aes-ccm-algo; + qcom,use-sw-ahash-algo; + status = "disabled"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_cedev: qcedev@720000 { + compatible = "qcom,qcedev"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <1>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,msm-bus,name = "qcedev-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 3936000 393600>; + clocks = <&clock_gcc CRYPTO_CLK_SRC>, + <&clock_gcc GCC_CRYPTO_CLK>, + <&clock_gcc GCC_CRYPTO_AHB_CLK>, + <&clock_gcc GCC_CRYPTO_AXI_CLK>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + status = "disabled"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_seecom: qseecom@86000000 { + compatible = "qcom,qseecom"; + reg = <0x86000000 0x300000>; + reg-names = "secapp-region"; + qcom,disk-encrypt-pipe-pair = <2>; + qcom,hlos-ce-hw-instance = <0>; + qcom,qsee-ce-hw-instance = <0>; + qcom,msm-bus,name = "qseecom-noc"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,support-bus-scaling; + qcom,support-fde; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 0 0>, + <55 512 120000 1200000>, + <55 512 393600 3936000>; + clocks = <&clock_gcc CRYPTO_CLK_SRC>, + <&clock_gcc GCC_CRYPTO_CLK>, + <&clock_gcc GCC_CRYPTO_AHB_CLK>, + <&clock_gcc GCC_CRYPTO_AXI_CLK>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + status = "disabled"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom,wdt@b017000 { + compatible = "qcom,msm-watchdog"; + reg = <0xb017000 0x1000>; + reg-names = "wdt-base"; + interrupts = <0 3 0>, <0 4 0>; + qcom,bark-time = <11000>; + qcom,pet-time = <10000>; + qcom,ipi-ping; + }; + + qcom,msm-rtb { + compatible = "qcom,msm-rtb"; + qcom,rtb-size = <0x100000>; + }; + + qcom,smem@86300000 { + compatible = "qcom,smem"; + reg = <0x86300000 0x100000>, + <0x0b011008 0x4>, + <0x60000 0x8000>, + <0x193D000 0x8>; + reg-names = "smem", "irq-reg-base", "aux-mem1", "smem_targ_info_reg"; + qcom,mpu-enabled; + + qcom,smd-modem { + compatible = "qcom,smd"; + qcom,smd-edge = <0>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1000>; + interrupts = <0 25 1>; + label = "modem"; + }; + + qcom,smsm-modem { + compatible = "qcom,smsm"; + qcom,smsm-edge = <0>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x2000>; + interrupts = <0 26 1>; + }; + + qcom,smd-wcnss { + compatible = "qcom,smd"; + qcom,smd-edge = <6>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x20000>; + interrupts = <0 142 1>; + label = "wcnss"; + }; + + qcom,smsm-wcnss { + compatible = "qcom,smsm"; + qcom,smsm-edge = <6>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x80000>; + interrupts = <0 144 1>; + }; + + qcom,smd-rpm { + compatible = "qcom,smd"; + qcom,smd-edge = <15>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1>; + interrupts = <0 168 1>; + label = "rpm"; + qcom,irq-no-suspend; + qcom,not-loadable; + }; + }; + + rpm_bus: qcom,rpm-smd { + compatible = "qcom,rpm-smd"; + rpm-channel-name = "rpm_requests"; + rpm-channel-type = <15>; /* SMD_APPS_RPM */ + }; + + qcom,bam_dmux@4044000 { + compatible = "qcom,bam_dmux"; + reg = <0x4044000 0x19000>; + interrupts = <0 29 1>; + qcom,rx-ring-size = <32>; + qcom,max-rx-mtu = <4096>; + }; + + qcom_tzlog: tz-log@8600720 { + compatible = "qcom,tz-log"; + reg = <0x08600720 0x1000>; + status = "disabled"; + }; + + qcom_rng: qrng@22000 { + compatible = "qcom,msm-rng"; + reg = <0x22000 0x200>; + qcom,msm-rng-iface-clk; + qcom,msm-bus,name = "msm-rng-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <1 618 0 0>, /* No vote */ + <1 618 0 800>; /* 100 MB/s */ + clocks = <&clock_gcc GCC_PRNG_AHB_CLK>; + clock-names = "iface_clk"; + status = "disabled"; + }; + + qcom,msm-pcm { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <0>; + }; + + qcom,msm-pcm-routing { + compatible = "qcom,msm-pcm-routing"; + }; + + qcom,msm-pcm-low-latency { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <1>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "ultra"; + }; + + qcom,msm-pcm-lpa { + compatible = "qcom,msm-pcm-lpa"; + }; + + qcom,msm-compress-dsp { + compatible = "qcom,msm-compress-dsp"; + }; + + qcom,msm-voip-dsp { + compatible = "qcom,msm-voip-dsp"; + }; + + qcom,msm-pcm-voice { + compatible = "qcom,msm-pcm-voice"; + qcom,destroy-cvd; + qcom,vote-bms; + }; + + qcom,msm-stub-codec { + compatible = "qcom,msm-stub-codec"; + }; + + qcom,msm-dai-fe { + compatible = "qcom,msm-dai-fe"; + }; + + qcom,msm-pcm-afe { + compatible = "qcom,msm-pcm-afe"; + }; + + qcom,msm-voice-svc { + compatible = "qcom,msm-voice-svc"; + }; + + qcom,msm-pcm-loopback { + compatible = "qcom,msm-pcm-loopback"; + }; + + qcom,msm-dai-mi2s { + compatible = "qcom,msm-dai-mi2s"; + qcom,msm-dai-q6-mi2s-prim { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <0>; + qcom,msm-mi2s-rx-lines = <3>; + qcom,msm-mi2s-tx-lines = <0>; + }; + + qcom,msm-dai-q6-mi2s-sec { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <1>; + qcom,msm-mi2s-rx-lines = <1>; + qcom,msm-mi2s-tx-lines = <0>; + }; + + qcom,msm-dai-q6-mi2s-quat { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <3>; + qcom,msm-mi2s-rx-lines = <1>; + qcom,msm-mi2s-tx-lines = <2>; + }; + + qcom,msm-dai-q6-mi2s-tert { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <2>; + qcom,msm-mi2s-rx-lines = <0>; + qcom,msm-mi2s-tx-lines = <3>; + }; + }; + + qcom,msm-dai-q6-hdmi { + compatible = "qcom,msm-dai-q6-hdmi"; + qcom,msm-dai-q6-dev-id = <8>; + }; + + qcom,msm-lsm-client { + compatible = "qcom,msm-lsm-client"; + }; + + qcom,msm-dai-q6 { + compatible = "qcom,msm-dai-q6"; + qcom,msm-dai-q6-sb-0-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16384>; + }; + + qcom,msm-dai-q6-sb-0-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16385>; + }; + + qcom,msm-dai-q6-sb-1-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16386>; + }; + + qcom,msm-dai-q6-sb-1-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16387>; + }; + + qcom,msm-dai-q6-sb-3-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16390>; + }; + + qcom,msm-dai-q6-sb-3-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16391>; + }; + + qcom,msm-dai-q6-sb-4-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16392>; + }; + + qcom,msm-dai-q6-sb-4-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16393>; + }; + + qcom,msm-dai-q6-bt-sco-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12288>; + }; + + qcom,msm-dai-q6-bt-sco-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12289>; + }; + + qcom,msm-dai-q6-int-fm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12292>; + }; + + qcom,msm-dai-q6-int-fm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12293>; + }; + + qcom,msm-dai-q6-be-afe-pcm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <224>; + }; + + qcom,msm-dai-q6-be-afe-pcm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <225>; + }; + + qcom,msm-dai-q6-afe-proxy-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <241>; + }; + + qcom,msm-dai-q6-afe-proxy-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <240>; + }; + + qcom,msm-dai-q6-incall-record-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32771>; + }; + + qcom,msm-dai-q6-incall-record-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32772>; + }; + + qcom,msm-dai-q6-incall-music-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32773>; + }; + + qcom,msm-dai-q6-incall-music-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32770>; + }; + }; + + qcom,msm-pcm-hostless { + compatible = "qcom,msm-pcm-hostless"; + }; + + qcom,msm-pri-auxpcm { + compatible = "qcom,msm-auxpcm-dev"; + qcom,msm-cpudai-auxpcm-mode = <0>, <0>; + qcom,msm-cpudai-auxpcm-sync = <1>, <1>; + qcom,msm-cpudai-auxpcm-frame = <5>, <4>; + qcom,msm-cpudai-auxpcm-quant = <2>, <2>; + qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>; + qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>; + qcom,msm-cpudai-auxpcm-data = <0>, <0>; + qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; + qcom,msm-auxpcm-interface = "primary"; + }; + + qcom,msm-audio-ion { + compatible = "qcom,msm-audio-ion"; + }; + + qcom,smdtty { + compatible = "qcom,smdtty"; + + smdtty_apps_fm: qcom,smdtty-apps-fm { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_FM"; + }; + + smdtty_apps_riva_bt_acl: smdtty-apps-riva-bt-acl { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_ACL"; + }; + + smdtty_apps_riva_bt_cmd: qcom,smdtty-apps-riva-bt-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_CMD"; + }; + + smdtty_mbalbridge: qcom,smdtty-mbalbridge { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "MBALBRIDGE"; + }; + + smdtty_apps_riva_ant_cmd: smdtty-apps-riva-ant-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_CMD"; + }; + + smdtty_apps_riva_ant_data: smdtty-apps-riva-ant-data { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_DATA"; + }; + + smdtty_data1: qcom,smdtty-data1 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA1"; + }; + + smdtty_data4: qcom,smdtty-data4 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA4"; + }; + + smdtty_data11: qcom,smdtty-data11 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA11"; + }; + + smdtty_data21: qcom,smdtty-data21 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA21"; + }; + + smdtty_loopback: smdtty-loopback { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "LOOPBACK"; + qcom,smdtty-dev-name = "LOOPBACK_TTY"; + }; + }; + + qcom,smdpkt { + compatible = "qcom,smdpkt"; + + qcom,smdpkt-data5-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA5_CNTL"; + qcom,smdpkt-dev-name = "smdcntl0"; + }; + + qcom,smdpkt-data6-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA6_CNTL"; + qcom,smdpkt-dev-name = "smdcntl1"; + }; + + qcom,smdpkt-data7-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA7_CNTL"; + qcom,smdpkt-dev-name = "smdcntl2"; + }; + + qcom,smdpkt-data8-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA8_CNTL"; + qcom,smdpkt-dev-name = "smdcntl3"; + }; + + qcom,smdpkt-data9-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA9_CNTL"; + qcom,smdpkt-dev-name = "smdcntl4"; + }; + + qcom,smdpkt-data12-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA12_CNTL"; + qcom,smdpkt-dev-name = "smdcntl5"; + }; + + qcom,smdpkt-data13-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA13_CNTL"; + qcom,smdpkt-dev-name = "smdcntl6"; + }; + + qcom,smdpkt-data14-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA14_CNTL"; + qcom,smdpkt-dev-name = "smdcntl7"; + }; + + qcom,smdpkt-data15-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA15_CNTL"; + qcom,smdpkt-dev-name = "smdcntl9"; + }; + + qcom,smdpkt-data16-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA16_CNTL"; + qcom,smdpkt-dev-name = "smdcntl10"; + }; + + qcom,smdpkt-data17-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA17_CNTL"; + qcom,smdpkt-dev-name = "smdcntl11"; + }; + + qcom,smdpkt-data22 { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA22"; + qcom,smdpkt-dev-name = "smd22"; + }; + + qcom,smdpkt-data23-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA23_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev0"; + }; + + qcom,smdpkt-data24-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA24_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev1"; + }; + + qcom,smdpkt-data25-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA25_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev2"; + }; + + qcom,smdpkt-data26-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA26_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev3"; + }; + + qcom,smdpkt-data27-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA27_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev4"; + }; + + qcom,smdpkt-data28-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA28_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev5"; + }; + + qcom,smdpkt-data29-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA29_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev6"; + }; + + qcom,smdpkt-data30-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA30_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev7"; + }; + + qcom,smdpkt-data31-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA31_CNTL"; + qcom,smdpkt-dev-name = "smdcnt_rev8"; + }; + + qcom,smdpkt-data40-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA40_CNTL"; + qcom,smdpkt-dev-name = "smdcntl8"; + }; + + qcom,smdpkt-apr-apps2 { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "apr_apps2"; + qcom,smdpkt-dev-name = "apr_apps2"; + }; + + qcom,smdpkt-loopback { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "LOOPBACK"; + qcom,smdpkt-dev-name = "smd_pkt_loopback"; + }; + }; + + qcom,iris-fm { + compatible = "qcom,iris_fm"; + }; + + qcom,wcnss-wlan@0a000000 { + compatible = "qcom,wcnss_wlan"; + reg = <0x0a000000 0x280000>, + <0xb011008 0x04>, + <0x0a21b000 0x3000>, + <0x03204000 0x00000100>, + <0x03200800 0x00000200>, + <0x0A100400 0x00000200>, + <0x0A205050 0x00000200>, + <0x0A219000 0x00000020>, + <0x0A080488 0x00000008>, + <0x0A080fb0 0x00000008>, + <0x0A08040c 0x00000008>, + <0x0A0120a8 0x00000008>, + <0x0A012448 0x00000008>, + <0x0A080c00 0x00000001>; + + reg-names = "wcnss_mmio", "wcnss_fiq", + "pronto_phy_base", "riva_phy_base", + "riva_ccu_base", "pronto_a2xb_base", + "pronto_ccpu_base", "pronto_saw2_base", + "wlan_tx_phy_aborts","wlan_brdg_err_source", + "wlan_tx_status", "alarms_txctl", + "alarms_tactl", "pronto_mcu_base"; + + interrupts = <0 145 0 0 146 0>; + interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq"; + + qcom,pronto-vddmx-supply = <&pm8916_l3>; + qcom,pronto-vddcx-supply = <&pm8916_s1_corner>; + qcom,pronto-vddpx-supply = <&pm8916_l7>; + qcom,iris-vddxo-supply = <&pm8916_l7>; + qcom,iris-vddrfa-supply = <&pm8916_s3>; + qcom,iris-vddpa-supply = <&pm8916_l9>; + qcom,iris-vdddig-supply = <&pm8916_l5>; + + pinctrl-names = "wcnss_default", "wcnss_sleep", + "wcnss_gpio_default"; + pinctrl-0 = <&wcnss_default>; + pinctrl-1 = <&wcnss_sleep>; + pinctrl-2 = <&wcnss_gpio_default>; + + gpios = <&msm_gpio 40 0>, <&msm_gpio 41 0>, <&msm_gpio 42 0>, + <&msm_gpio 43 0>, <&msm_gpio 44 0>; + + clocks = <&clock_rpm clk_xo_wlan_clk>, + <&clock_rpm clk_rf_clk2>, + <&clock_debug clk_gcc_debug_mux>, + <&clock_gcc clk_wcnss_m_clk>; + clock-names = "xo", "rf_clk", "measure", "wcnss_debug"; + + qcom,has-autodetect-xo; + qcom,wlan-rx-buff-count = <512>; + qcom,is-pronto-vt; + qcom,has-pronto-hw; + qcom,wcnss-adc_tm = <&pm8916_adc_tm>; + }; + + spi_0: spi@78b7000 { /* BLSP1 QUP3 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x78b7000 0x600>, + <0x7884000 0x23000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 97 0>, <0 238 0>; + spi-max-frequency = <50000000>; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi0_default &spi0_cs0_active>; + pinctrl-1 = <&spi0_sleep &spi0_cs0_sleep>; + clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>, + <&clock_gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <8>; + qcom,bam-producer-pipe-index = <9>; + qcom,master-id = <86>; + + lattice,spi-usb@0 { + compatible = "lattice,ice40-spi-usb"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-cpol = <1>; + spi-cpha = <1>; + core-vcc-supply = <&pm8916_l2>; + spi-vcc-supply = <&pm8916_l5>; + qcom,pm-qos-latency = <2>; + lattice,reset-gpio = <&msm_gpio 3 0>; + lattice,config-done-gpio = <&msm_gpio 1 0>; + lattice,vcc-en-gpio = <&msm_gpio 114 0>; + lattice,clk-en-gpio = <&msm_gpio 0 0>; + + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "xo"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&ice40_default>; + pinctrl-1 = <&ice40_sleep>; + }; + }; + + i2c_0: i2c@78b6000 { /* BLSP1 QUP2 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0x78b6000 0x600>, + <0x7884000 0x23000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 96 0>, <0 238 0>; + clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>, + <&clock_gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + qcom,clk-freq-out = <100000>; + qcom,clk-freq-in = <19200000>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_0_active>; + pinctrl-1 = <&i2c_0_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <6>; + qcom,bam-pipe-idx-prod = <7>; + qcom,master-id = <86>; + }; + + i2c_5: i2c@78b9000 { /* BLSP1 QUP5 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0x78b9000 0x600>, + <0x7884000 0x23000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 99 0>, <0 238 0>; + clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>, + <&clock_gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + qcom,clk-freq-out = <100000>; + qcom,clk-freq-in = <19200000>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_5_active>; + pinctrl-1 = <&i2c_5_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <12>; + qcom,bam-pipe-idx-prod = <13>; + qcom,master-id = <86>; + }; + + i2c_6: i2c@78ba000 { /* BLSP1 QUP6 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells=<1>; + #size-cells=<0>; + cell-index = <6>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0x78ba000 0x1000>, + <0x7884000 0x23000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 100 0>, <0 238 0>; + clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>, + <&clock_gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; + clock-names = "iface_clk", "core_clk"; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_6_active>; + pinctrl-1 = <&i2c_6_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <14>; + qcom,bam-pipe-idx-prod = <15>; + qcom,master-id = <86>; + }; + + i2c_4: i2c@78b8000 { /* BLSP1 QUP4 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0x78b8000 0x1000>, + <0x7884000 0x23f00>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 98 0>, <0 238 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>, + <&clock_gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; + qcom,use-pinctrl; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_4_active>; + pinctrl-1 = <&i2c_4_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <10>; + qcom,bam-pipe-idx-prod = <11>; + qcom,master-id = <86>; + }; + + spmi_bus: qcom,spmi@200f000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0x200f000 0x1000>, + <0x2400000 0x400000>, + <0x2c00000 0x400000>, + <0x3800000 0x200000>, + <0x200a000 0x2100>; + reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupts = <0 190 0>; + qcom,pmic-arb-channel = <0>; + qcom,pmic-arb-ee = <0>; + #interrupt-cells = <3>; + interrupt-controller; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + }; + + qcom,msm-imem@8600000 { + compatible = "qcom,msm-imem"; + reg = <0x08600000 0x1000>; /* Address and size of IMEM */ + ranges = <0x0 0x08600000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + mem_dump_table@10 { + compatible = "qcom,msm-imem-mem_dump_table"; + reg = <0x10 8>; + }; + + restart_reason@65c { + compatible = "qcom,msm-imem-restart_reason"; + reg = <0x65c 4>; + }; + + boot_stats@6b0 { + compatible = "qcom,msm-imem-boot_stats"; + reg = <0x6b0 32>; + }; + + pil@94c { + compatible = "qcom,msm-imem-pil"; + reg = <0x94c 200>; + }; + }; + + qcom,venus@1de0000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x1de0000 0x4000>; + + vdd-supply = <&gdsc_venus>; + qcom,proxy-reg-names = "vdd"; + clocks = <&clock_gcc GCC_VENUS0_VCODEC0_CLK>, + <&clock_gcc GCC_VENUS0_AHB_CLK>, + <&clock_gcc GCC_VENUS0_AXI_CLK>, + <&clock_gcc GCC_CRYPTO_CLK>, + <&clock_gcc GCC_CRYPTO_AHB_CLK>, + <&clock_gcc GCC_CRYPTO_AXI_CLK>, + <&clock_gcc CRYPTO_CLK_SRC>; + + clock-names = "core_clk", "iface_clk", + "bus_clk", "scm_core_clk", + "scm_iface_clk", "scm_bus_clk", + "scm_core_clk_src"; + qcom,proxy-clock-names = "core_clk", "iface_clk", + "bus_clk", "scm_core_clk", + "scm_iface_clk", "scm_bus_clk", + "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,pas-id = <9>; + qcom,proxy-timeout-ms = <5000>; + qcom,firmware-name = "venus"; + memory-region = <&venus_qseecom_mem>; + }; + + qcom,msm-thermal { + compatible = "qcom,msm-thermal"; + qcom,sensor-id = <5>; + qcom,poll-ms = <250>; + qcom,limit-temp = <60>; + qcom,temp-hysteresis = <10>; + qcom,freq-step = <2>; + qcom,freq-control-mask = <0xf>; + qcom,core-limit-temp = <80>; + qcom,core-temp-hysteresis = <10>; + qcom,core-control-mask = <0xe>; + qcom,hotplug-temp = <82>; + qcom,hotplug-temp-hysteresis = <15>; + qcom,cpu-sensors = "tsens_tz_sensor5", "tsens_tz_sensor5", + "tsens_tz_sensor4", "tsens_tz_sensor4"; + qcom,freq-mitigation-temp = <82>; + qcom,freq-mitigation-temp-hysteresis = <10>; + qcom,freq-mitigation-value = <400000>; + qcom,freq-mitigation-control-mask = <0x01>; + qcom,online-hotplug-core; + qcom,vdd-restriction-temp = <5>; + qcom,vdd-restriction-temp-hysteresis = <10>; + vdd-dig-supply = <&pm8916_s1_floor_corner>; + + qcom,vdd-dig-rstr{ + qcom,vdd-rstr-reg = "vdd-dig"; + qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + qcom,vdd-apps-rstr{ + qcom,vdd-rstr-reg = "vdd-apps"; + qcom,levels = <533330 800000 998400>; + qcom,freq-req; + }; + }; + + qcom,memshare { + compatible = "qcom,memshare"; + + qcom,client_1 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <2097152>; + label = "modem"; + }; + }; + + qcom,mss@4080000 { + compatible = "qcom,pil-q6v56-mss"; + reg = <0x04080000 0x100>, + <0x04020000 0x040>, + <0x01810000 0x004>, + <0x0194f000 0x010>, + <0x01950000 0x008>, + <0x01951000 0x008>; + reg-names = "qdsp6_base", "rmb_base", "restart_reg_sec", + "halt_q6", "halt_modem", "halt_nc"; + + interrupts = <0 24 1>; + vdd_cx-supply = <&pm8916_s1_corner>; + vdd_mx-supply = <&pm8916_l3>; + vdd_mx-uV = <1050000>; + vdd_pll-supply = <&pm8916_l7>; + qcom,vdd_pll = <1800000>; + + clocks = <&clock_rpm clk_xo_pil_mss_clk>, + <&clock_gcc GCC_MSS_CFG_AHB_CLK>, + <&clock_gcc GCC_MSS_Q6_BIMC_AXI_CLK>, + <&clock_gcc GCC_BOOT_ROM_AHB_CLK>; + clock-names = "xo", "iface_clk", "bus_clk", "mem_clk"; + qcom,proxy-clock-names = "xo"; + qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk"; + + qcom,is-loadable; + qcom,firmware-name = "modem"; + qcom,pil-self-auth; + qcom,sysmon-id = <0>; + qcom,ssctl-instance-id = <0x12>; + + /* GPIO inputs from mss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>; + qcom,gpio-ramdump-disable = <&smp2pgpio_ssr_smp2p_1_in 15 0>; + + /* GPIO output to mss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; + memory-region = <&modem_adsp_mem>; + }; + + qcom,vidc@1d00000 { + compatible = "qcom,msm-vidc"; + reg = <0x01d00000 0xff000>; + interrupts = <0 44 0>; + venus-supply = <&gdsc_venus>; + clocks = <&clock_gcc GCC_VENUS0_VCODEC0_CLK>, + <&clock_gcc GCC_VENUS0_AHB_CLK>, + <&clock_gcc GCC_VENUS0_AXI_CLK>; + clock-names = "core_clk", "iface_clk", "bus_clk"; + qcom,clock-configs = <0x1 0x0 0x0>; + qcom,sw-power-collapse; + qcom,load-freq-tbl = <352800 228570000 0xffffffff>, + <352800 228570000 0x55555555>, + <244800 160000000 0xffffffff>, + <244800 160000000 0x55555555>, + <108000 100000000 0xffffffff>, + <108000 100000000 0x55555555>; + qcom,hfi = "venus"; + qcom,reg-presets = <0xE0020 0x05555556>, + <0xE0024 0x05555556>, + <0x80124 0x00000003>; + qcom,qdss-presets = <0x826000 0x1000>, + <0x827000 0x1000>, + <0x822000 0x1000>, + <0x803000 0x1000>, + <0x9180000 0x1000>, + <0x9181000 0x1000>; + qcom,max-hw-load = <352800>; /* 720p @ 30 + 1080p @ 30 */ + qcom,enable-idle-indicator; + qcom,vidc-iommu-domains { + qcom,domain-ns { + qcom,vidc-domain-phandle = <&venus_domain_ns>; + qcom,vidc-partition-buffer-types = <0x7ff>, + <0x800>; + }; + qcom,domain-sec-bs { + qcom,vidc-domain-phandle = <&venus_domain_sec_bitstream>; + qcom,vidc-partition-buffer-types = <0x241>; + }; + qcom,domain-sec-px { + qcom,vidc-domain-phandle = <&venus_domain_sec_pixel>; + qcom,vidc-partition-buffer-types = <0x106>; + }; + qcom,domain-sec-np { + qcom,vidc-domain-phandle = <&venus_domain_sec_non_pixel>; + qcom,vidc-partition-buffer-types = <0x480>; + }; + }; + qcom,msm-bus-clients { + qcom,msm-bus-client@0 { + qcom,msm-bus,name = "venc-ddr"; + qcom,msm-bus,num-cases = <6>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 133600 674400>, /* VGA 30 fps */ + <63 512 400900 1079000>, /* VGA 60 fps */ + <63 512 400900 1079000>, /* 720p 30 fps */ + <63 512 908600 1537600>, /* 720p 60 fps */ + <63 512 908600 1537600>; /* 1080p 30 fps */ + qcom,bus-configs = <0x01000414>; + }; + + qcom,msm-bus-client@1 { + qcom,msm-bus,name = "vdec-ddr"; + qcom,msm-bus,num-cases = <6>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 99600 831900>, /* VGA 30 fps */ + <63 512 298900 831900>, /* VGA 60 fps */ + <63 512 298900 831900>, /* 720p 30 fps */ + <63 512 677600 1331000>, /* 720p 60 fps */ + <63 512 677600 1331000>; /* 1080p 30 fps */ + qcom,bus-configs = <0x030fcfff>; + }; + }; + }; + + qcom,pronto@a21b000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x0a21b000 0x3000>; + interrupts = <0 149 1>; + + vdd_pronto_pll-supply = <&pm8916_l7>; + qcom,proxy-reg-names = "vdd_pronto_pll"; + qcom,vdd_pronto_pll-uV-uA = <1800000 18000>; + clocks = <&clock_rpm clk_xo_pil_pronto_clk>, + <&clock_gcc GCC_CRYPTO_CLK>, + <&clock_gcc GCC_CRYPTO_AHB_CLK>, + <&clock_gcc GCC_CRYPTO_AXI_CLK>, + <&clock_gcc CRYPTO_CLK_SRC>; + + clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,proxy-clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,pas-id = <6>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <422>; + qcom,sysmon-id = <6>; + qcom,ssctl-instance-id = <0x13>; + qcom,firmware-name = "wcnss"; + + /* GPIO inputs from wcnss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_4_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_4_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_4_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_4_in 3 0>; + + /* GPIO output to wcnss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_4_out 0 0>; + memory-region = <&peripheral_mem>; + }; + + cpu-pmu { + compatible = "arm,armv8-pmuv3"; + qcom,irq-is-percpu; + interrupts = <1 7 0xf00>; + }; + + bimc_sharedmem { + compatible = "qcom,sharedmem-uio"; + reg = <0x400000 0x80000>; + reg-names = "bimc"; + }; + + qcom,avtimer { + compatible = "qcom,avtimer"; + reg = <0x0770600C 0x4>, + <0x07706010 0x4>; + reg-names = "avtimer_lsb_addr", "avtimer_msb_addr"; + qcom,clk_div = <27>; + }; +}; + +&gdsc_venus { + status = "okay"; +}; + +&gdsc_mdss { + status = "okay"; +}; + +&gdsc_jpeg { + status = "okay"; +}; + +&gdsc_vfe { + status = "okay"; +}; + +&gdsc_oxili_gx { + clock-names = "core_root_clk"; + clocks = <&clock_gcc GCC_OXILI_GFX3D_CLK>; + qcom,enable-root-clk; + status = "okay"; +}; + +#include "msm8916-pinctrl.dtsi" +#include "msm-pm8916-rpm-regulator.dtsi" +#include "msm-pm8916.dtsi" +#include "msm8916-regulator.dtsi" +#include "msm8916-pm.dtsi" + +&pm8916_vadc { + chan@0 { + label = "usb_in"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <7>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@2 { + label = "ireg_fb"; + reg = <2>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <6>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@6 { + label = "vbat_sns"; + reg = <6>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@b { + label = "chg_temp"; + reg = <0xb>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <3>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@30 { + label = "batt_therm"; + reg = <0x30>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <1>; + qcom,hw-settle-time = <0xb>; + qcom,fast-avg-setup = <0>; + }; + + chan@31 { + label = "batt_id"; + reg = <0x31>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0xb>; + qcom,fast-avg-setup = <0>; + }; + + chan@36 { + label = "pa_therm0"; + reg = <0x36>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@32 { + label = "xo_therm"; + reg = <0x32>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@3c { + label = "xo_therm_buf"; + reg = <0x3c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8916_adc_tm { + /* Channel Node */ + chan@30 { + label = "batt_therm"; + reg = <0x30>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <1>; + qcom,hw-settle-time = <0xb>; + qcom,fast-avg-setup = <2>; + qcom,btm-channel-number = <0x48>; + }; + + chan@6 { + label = "vbat_sns"; + reg = <0x6>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0xb>; + qcom,fast-avg-setup = <2>; + qcom,btm-channel-number = <0x68>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-cdp.dtsi new file mode 100644 index 00000000000..38ba73eb3f4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-cdp.dtsi @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-led-flash { + cell-index = <0>; + compatible = "qcom,camera-led-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + }; +}; +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1050000 0 2700000>; + qcom,cam-vreg-max-voltage = <1050000 0 2700000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>; + gpios = <&msm_gpio 13 0>, + <&msm_gpio 92 0>, + <&msm_gpio 91 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8994_l3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2700000>; + qcom,cam-vreg-max-voltage = <1200000 0 2700000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_rear2_suspend>; + gpios = <&msm_gpio 14 0>, + <&msm_gpio 94 0>, + <&msm_gpio 93 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1", + "CAM_STANDBY1"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8994_l3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_front_suspend>; + gpios = <&msm_gpio 15 0>, + <&msm_gpio 104 0>, + <&msm_gpio 105 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-liquid.dtsi b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-liquid.dtsi new file mode 100644 index 00000000000..ce3eed84c9e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-liquid.dtsi @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <0>; + qcom,actuator-src = <&actuator0>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1050000 0 2700000>; + qcom,cam-vreg-max-voltage = <1050000 0 2700000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>; + gpios = <&msm_gpio 13 0>, + <&msm_gpio 92 0>, + <&msm_gpio 91 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l10>; + qcom,cam-vreg-name = "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <1 0>; + qcom,cam-vreg-min-voltage = <0 2850000>; + qcom,cam-vreg-max-voltage = <0 2850000>; + qcom,cam-vreg-op-mode = <0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_rear2_suspend>; + gpios = <&msm_gpio 14 0>, + <&msm_gpio 94 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_front_suspend>; + gpios = <&msm_gpio 15 0>, + <&msm_gpio 104 0>, + <&msm_gpio 105 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-mtp.dtsi new file mode 100644 index 00000000000..54aace1597c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-camera-sensor-mtp.dtsi @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-led-flash { + cell-index = <0>; + compatible = "qcom,camera-led-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + }; +}; +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-type = <0>; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <270>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1050000 0 2700000>; + qcom,cam-vreg-max-voltage = <1050000 0 2700000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>; + gpios = <&msm_gpio 13 0>, + <&msm_gpio 92 0>, + <&msm_gpio 91 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8994_l3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2700000>; + qcom,cam-vreg-max-voltage = <1200000 0 2700000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_rear2_suspend>; + gpios = <&msm_gpio 14 0>, + <&msm_gpio 94 0>, + <&msm_gpio 93 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1", + "CAM_STANDBY1"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8994_l3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_front_suspend>; + gpios = <&msm_gpio 15 0>, + <&msm_gpio 104 0>, + <&msm_gpio 105 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-camera.dtsi b/arch/arm64/boot/dts/qcom/msm8994-camera.dtsi new file mode 100644 index 00000000000..23708760dc3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-camera.dtsi @@ -0,0 +1,493 @@ +/* + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,msm-cam@fd8c0000 { + compatible = "qcom,msm-cam"; + reg = <0xfd8c0000 0x10000>; + reg-names = "msm-cam"; + }; + + qcom,csiphy@fda0ac00 { + cell-index = <0>; + compatible = "qcom,csiphy-v3.1.1", "qcom,csiphy"; + reg = <0xfda0ac00 0x200>, + <0xfda00030 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 78 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0_clk_src>, + <&clock_mmss clk_camss_csi0phy_clk>, + <&clock_mmss clk_csi0phytimer_clk_src>, + <&clock_mmss clk_camss_phy0_csi0phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", + "csi_phy_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 200000000 0 0>; + }; + + qcom,csiphy@fda0b000 { + cell-index = <1>; + compatible = "qcom,csiphy-v3.1.1", "qcom,csiphy"; + reg = <0xfda0b000 0x200>, + <0xfda00038 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 79 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi1_clk_src>, + <&clock_mmss clk_camss_csi1phy_clk>, + <&clock_mmss clk_csi1phytimer_clk_src>, + <&clock_mmss clk_camss_phy1_csi1phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", + "csi_phy_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 200000000 0 0>; + }; + + qcom,csiphy@fda0b400 { + cell-index = <2>; + compatible = "qcom,csiphy-v3.1.1", "qcom,csiphy"; + reg = <0xfda0b400 0x200>, + <0xfda00040 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 80 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi2_clk_src>, + <&clock_mmss clk_camss_csi2phy_clk>, + <&clock_mmss clk_csi2phytimer_clk_src>, + <&clock_mmss clk_camss_phy2_csi2phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", + "csi_phy_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 200000000 0 0>; + }; + + qcom,csid@fda08000 { + cell-index = <0>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0xfda08000 0x400>; + reg-names = "csid"; + interrupts = <0 51 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + qcom,gdscr-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0_clk_src>, + <&clock_mmss clk_camss_csi0_clk>, + <&clock_mmss clk_camss_csi0_ahb_clk>, + <&clock_mmss clk_camss_csi0rdi_clk>, + <&clock_mmss clk_camss_csi0pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_clk", "csi_ahb_clk", + "csi_src_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 0 0 0 0>; + }; + + qcom,csid@fda08400 { + cell-index = <1>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0xfda08400 0x400>; + reg-names = "csid"; + interrupts = <0 52 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + qcom,gdscr-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi1_clk_src>, + <&clock_mmss clk_camss_csi1_clk>, + <&clock_mmss clk_camss_csi1_ahb_clk>, + <&clock_mmss clk_camss_csi1rdi_clk>, + <&clock_mmss clk_camss_csi1pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_clk", "csi_ahb_clk", + "csi_src_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 0 0 0 0>; + }; + + qcom,csid@fda08800 { + cell-index = <2>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0xfda08800 0x400>; + reg-names = "csid"; + interrupts = <0 53 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + qcom,gdscr-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi2_clk_src>, + <&clock_mmss clk_camss_csi2_clk>, + <&clock_mmss clk_camss_csi2_ahb_clk>, + <&clock_mmss clk_camss_csi2rdi_clk>, + <&clock_mmss clk_camss_csi2pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_clk", "csi_ahb_clk", + "csi_src_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 0 0 0 0>; + }; + + qcom,csid@fda08c00 { + cell-index = <3>; + compatible = "qcom,csid-v3.1", "qcom,csid"; + reg = <0xfda08C00 0x100>; + reg-names = "csid"; + interrupts = <0 54 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + qcom,gdscr-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi3_clk_src>, + <&clock_mmss clk_camss_csi3_clk>, + <&clock_mmss clk_camss_csi3_ahb_clk>, + <&clock_mmss clk_camss_csi3rdi_clk>, + <&clock_mmss clk_camss_csi3pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_clk", "csi_ahb_clk", + "csi_src_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 240000000 0 0 0 0 0>; + }; + + qcom,ispif@fda0a000 { + cell-index = <0>; + compatible = "qcom,ispif-v3.0", "qcom,ispif"; + reg = <0xfda0A000 0x500>, + <0xfda00020 0x10>; + reg-names = "ispif", "csi_clk_mux"; + interrupts = <0 55 0>; + interrupt-names = "ispif"; + qcom,num-isps = <0x2>; + vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0_clk_src>, + <&clock_mmss clk_camss_csi0_clk>, + <&clock_mmss clk_camss_csi0rdi_clk>, + <&clock_mmss clk_camss_csi0pix_clk>, + <&clock_mmss clk_csi1_clk_src>, + <&clock_mmss clk_camss_csi1_clk>, + <&clock_mmss clk_camss_csi1rdi_clk>, + <&clock_mmss clk_camss_csi1pix_clk>, + <&clock_mmss clk_csi2_clk_src>, + <&clock_mmss clk_camss_csi2_clk>, + <&clock_mmss clk_camss_csi2rdi_clk>, + <&clock_mmss clk_camss_csi2pix_clk>, + <&clock_mmss clk_csi3_clk_src>, + <&clock_mmss clk_camss_csi3_clk>, + <&clock_mmss clk_camss_csi3rdi_clk>, + <&clock_mmss clk_camss_csi3pix_clk>, + <&clock_mmss clk_vfe0_clk_src>, + <&clock_mmss clk_camss_vfe_vfe0_clk>, + <&clock_mmss clk_camss_csi_vfe0_clk>, + <&clock_mmss clk_vfe1_clk_src>, + <&clock_mmss clk_camss_vfe_vfe1_clk>, + <&clock_mmss clk_camss_csi_vfe1_clk>; + clock-names = "ispif_ahb_clk", + "csi0_src_clk", "csi0_clk", + "csi0_pix_clk", "csi0_rdi_clk", + "csi1_src_clk", "csi1_clk", + "csi1_pix_clk", "csi1_rdi_clk", + "csi2_src_clk", "csi2_clk", + "csi2_pix_clk", "csi2_rdi_clk", + "csi3_src_clk", "csi3_clk", + "csi3_pix_clk", "csi3_rdi_clk", + "vfe0_clk_src", "camss_vfe_vfe0_clk", "camss_csi_vfe0_clk", + "vfe1_clk_src", "camss_vfe_vfe1_clk", "camss_csi_vfe1_clk"; + qcom,clock-rates = <0 + 240000000 0 0 0 + 240000000 0 0 0 + 240000000 0 0 0 + 240000000 0 0 0 + 320000000 0 0 + 320000000 0 0>; + }; + + qcom,vfe@fda10000 { + cell-index = <0>; + compatible = "qcom,vfe46"; + reg = <0xfda10000 0x1000>, + <0xfda40000 0x200>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 57 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_vfe0_clk_src>, + <&clock_mmss clk_camss_vfe_vfe0_clk>, + <&clock_mmss clk_camss_csi_vfe0_clk>, + <&clock_mmss clk_camss_vfe_vfe_ahb_clk>, + <&clock_mmss clk_camss_vfe_vfe_axi_clk>; + clock-names = "camss_top_ahb_clk" , "camss_ahb_clk", + "vfe_clk_src", "camss_vfe_vfe_clk", "camss_csi_vfe_clk", + "iface_clk", "bus_clk"; + qcom,clock-rates = <0 0 320000000 0 0 0 0>; + + }; + + qcom,vfe@fda14000 { + cell-index = <1>; + compatible = "qcom,vfe46"; + reg = <0xfda14000 0x1000>, + <0xfda40000 0x200>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 58 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_vfe1_clk_src>, + <&clock_mmss clk_camss_vfe_vfe1_clk>, + <&clock_mmss clk_camss_csi_vfe1_clk>, + <&clock_mmss clk_camss_vfe_vfe_ahb_clk>, + <&clock_mmss clk_camss_vfe_vfe_axi_clk>; + clock-names = "camss_top_ahb_clk" , "camss_ahb_clk", + "vfe_clk_src", "camss_vfe_vfe_clk", "camss_csi_vfe_clk", + "iface_clk", "bus_clk"; + qcom,clock-rates = <0 0 320000000 0 0 0 0>; + }; + + + qcom,jpeg@fda1c000 { + cell-index = <0>; + compatible = "qcom,jpeg"; + reg = <0xfda1c000 0x400>, + <0xfda60000 0xc30>; + reg-names = "jpeg"; + interrupts = <0 59 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + clock-names = "core_clk", "iface_clk", "bus_clk0", + "camss_top_ahb_clk", "camss_ahb_clk"; + clocks = <&clock_mmss clk_camss_jpeg_jpeg0_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>; + qcom,clock-rates = <320000000 0 0 0 0>; + }; + + qcom,jpeg@fda20000 { + cell-index = <1>; + compatible = "qcom,jpeg"; + reg = <0xfda20000 0x400>, + <0xfda60000 0xc30>; + reg-names = "jpeg"; + interrupts = <0 60 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + clock-names = "core_clk", "iface_clk", "bus_clk0", "camss_top_ahb_clk", "camss_ahb_clk"; + clocks = <&clock_mmss clk_camss_jpeg_jpeg1_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>; + qcom,clock-rates = <320000000 0 0 0 0>; + }; + + qcom,jpeg@fda24000 { + cell-index = <2>; + compatible = "qcom,jpeg"; + reg = <0xfda24000 0x400>, + <0xfda60000 0xc30>; + reg-names = "jpeg"; + interrupts = <0 61 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + clock-names = "core_clk", "iface_clk", "bus_clk0", "camss_top_ahb_clk", "camss_ahb_clk"; + clocks = <&clock_mmss clk_camss_jpeg_jpeg2_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>; + qcom,clock-rates = <266670000 0 0 0 0>; + }; + + qcom,jpeg@fdaa0000 { + cell-index = <3>; + compatible = "qcom,jpeg_dma"; + reg = <0xfdaa0000 0x400>, + <0xfda60000 0xc30>; + reg-names = "jpeg"; + interrupts = <0 304 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + clock-names = "core_clk", "iface_clk", "bus_clk0", "camss_top_ahb_clk", "camss_ahb_clk"; + clocks = <&clock_mmss clk_camss_jpeg_dma_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>; + qcom,clock-rates = <266670000 0 0 0 0>; + }; + + + qcom,irqrouter@fda00000 { + cell-index = <0>; + compatible = "qcom,irqrouter"; + reg = <0xfda00000 0x100>; + reg-names = "irqrouter"; + }; + + qcom,cpp@fda04000 { + cell-index = <0>; + compatible = "qcom,cpp"; + reg = <0xfda04000 0x100>, + <0xfda80000 0x200>, + <0xfda18000 0x008>; + reg-names = "cpp", "cpp_vbif", "cpp_hw"; + interrupts = <0 49 0>; + interrupt-names = "cpp"; + vdd-supply = <&gdsc_cpp>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_cpp_clk_src>, + <&clock_mmss clk_camss_vfe_cpp_ahb_clk>, + <&clock_mmss clk_camss_vfe_cpp_axi_clk>, + <&clock_mmss clk_camss_vfe_cpp_clk>, + <&clock_mmss clk_camss_micro_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "cpp_core_clk", + "camss_vfe_cpp_ahb_clk", "camss_vfe_cpp_axi_clk", + "camss_vfe_cpp_clk","micro_iface_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 465000000 0 0 465000000 0 0>; + }; + + qcom,fd@fd878000 { + cell-index = <0>; + compatible = "qcom,face-detection"; + reg = <0xfd878000 0x800>, + <0xfd87c000 0x800>, + <0xfd860000 0x1000>; + reg-names = "fd_core", "fd_misc", "fd_vbif"; + interrupts = <0 316 0>; + interrupt-names = "fd"; + vdd-supply = <&gdsc_fd>; + clocks = <&clock_mmss clk_fd_core_clk>, + <&clock_mmss clk_fd_core_uar_clk>, + <&clock_mmss clk_fd_axi_clk>, + <&clock_mmss clk_fd_ahb_clk>; + clock-names = "fd_core_clk", "fd_core_uar_clk", + "fd_axi_clk", "fd_ahb_clk"; + clock-rates = <400000000 400000000 333000000 800000000>; + }; + + cci: qcom,cci@fda0c000 { + cell-index = <0>; + compatible = "qcom,cci"; + reg = <0xfda0c000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "cci"; + interrupts = <0 50 0>; + interrupt-names = "cci"; + qcom,gdscr-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_cci_clk_src>, + <&clock_mmss clk_camss_cci_cci_ahb_clk>, + <&clock_mmss clk_camss_cci_cci_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "camss_top_ahb_clk", "cci_src_clk", + "cci_ahb_clk", "camss_cci_clk", + "camss_ahb_clk"; + qcom,clock-rates = <0 50000000 0 0 0 0>; + pinctrl-names = "cci_default", "cci_suspend"; + pinctrl-0 = <&cci0_active &cci1_active>; + pinctrl-1 = <&cci0_suspend &cci1_suspend>; + gpios = <&msm_gpio 19 0>, + <&msm_gpio 20 0>, + <&msm_gpio 21 0>, + <&msm_gpio 22 0>; + qcom,gpio-tbl-num = <0 1 2 3>; + qcom,gpio-tbl-flags = <1 1 1 1>; + qcom,gpio-tbl-label = "CCI_I2C_DATA0", + "CCI_I2C_CLK0", + "CCI_I2C_DATA1", + "CCI_I2C_CLK1"; + i2c_freq_100Khz: qcom,i2c_standard_mode { + status = "disabled"; + }; + i2c_freq_400Khz: qcom,i2c_fast_mode { + status = "disabled"; + }; + i2c_freq_custom: qcom,i2c_custom_mode { + status = "disabled"; + }; + }; +}; + +&i2c_freq_100Khz { + qcom,hw-thigh = <78>; + qcom,hw-tlow = <114>; + qcom,hw-tsu-sto = <28>; + qcom,hw-tsu-sta = <28>; + qcom,hw-thd-dat = <10>; + qcom,hw-thd-sta = <77>; + qcom,hw-tbuf = <118>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <1>; + status = "ok"; +}; + +&i2c_freq_400Khz { + qcom,hw-thigh = <20>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <25>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; + +&i2c_freq_custom { + qcom,hw-thigh = <15>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <25>; + qcom,hw-scl-stretch-en = <1>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-cdp.dts b/arch/arm64/boot/dts/qcom/msm8994-cdp.dts new file mode 100644 index 00000000000..9099b499e81 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-cdp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8994.dtsi" +#include "msm8994-pinctrl.dtsi" +#include "msm8994-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8994 CDP"; + compatible = "qcom,msm8994-cdp", "qcom,msm8994", "qcom,cdp"; + qcom,board-id = <1 0>; +};
\ No newline at end of file diff --git a/arch/arm64/boot/dts/qcom/msm8994-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8994-cdp.dtsi new file mode 100644 index 00000000000..f5961154e39 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-cdp.dtsi @@ -0,0 +1,675 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8994-pinctrl.dtsi" +#include "msm8994-camera-sensor-cdp.dtsi" + +/ { + bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-pa-supply = <&bt_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,nonremovable; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000 384000000>; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &pm8994_gpios 8 0x3>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&pm8994_gpios 8 0x1>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "dsi-panel-sharp-dualmipi0-wqxga-video.dtsi" +#include "dsi-panel-sharp-dualmipi1-wqxga-video.dtsi" +#include "dsi-panel-jdi-dualmipi0-video.dtsi" +#include "dsi-panel-jdi-dualmipi1-video.dtsi" +#include "dsi-panel-jdi-dualmipi0-cmd.dtsi" +#include "dsi-panel-jdi-dualmipi1-cmd.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&pmx_mdss { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 78>; +}; + +&pmx_mdss_te { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 10>; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video_0>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,dsi-panel-bias-vreg; + qcom,platform-reset-gpio = <&msm_gpio 78 0>; + + qcom,platform-enable-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video_1>; +}; + +&dsi_dual_sharp_video_0 { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; +}; + +&dsi_dual_jdi_video_0 { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; +}; + +&dsi_dual_jdi_cmd_0 { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; +}; + +&pmx_hdmi_cec { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 31>; +}; + +&pmx_hdmi_ddc { + qcom,num-grp-pins = <2>; + qcom,pins = <&gp 32>, <&gp 33>; +}; + +&pmx_hdmi_hpd { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 34>; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", + "hdmi_cec_active", "hdmi_active", + "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&soc { + i2c@f9924000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&msm_gpio>; + interrupts = <61 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&msm_gpio 60 0x00>; + synaptics,irq-gpio = <&msm_gpio 61 0x2008>; + synaptics,disable-gpios; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + i2c@f9928000 { /* BLSP1 QUP6 */ + status = "ok"; + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 29 0x00>; + qcom,dis-gpio = <&msm_gpio 30 0x00>; + qcom,clk-src = "BBCLK2"; + interrupt-parent = <&msm_gpio>; + interrupts = <29 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8994_gpios 10 0>; + qcom,pwr-req-gpio = <&pm8994_gpios 7 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 3 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + + }; + + sound { + qcom,model = "msm8994-tomtom-cdp-snd-card"; + qcom,cdc-micbias2-headset-only; + qcom,us-euro-gpios = <&pm8994_mpps 2 0>; + qcom,mbhc-audio-jack-type = "6-pole-jack"; + qcom,hdmi-audio-rx; + }; + + usb1_vreg: usb1_vreg { + compatible = "regulator-fixed"; + regulator-name = "usb1_vreg"; + startup-delay-us = <18000>; /* the on time of TPD4S214 */ + enable-active-high; + gpio = <&pmi8994_gpios 5 0>; + }; +}; + +&pm8994_gpios { + gpio@c200 { /* GPIO 3 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c600 { /* GPIO 7 */ + /* NFC pwr request */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c900 { /* GPIO 10 */ + /* NFC clk request */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c700 { /* GPIO 8 */ + qcom,mode = <0>; /* Digital in */ + qcom,pull = <0>; /* PULL up 30uA */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <2>; /* Logical 1 voltage value 1.8v */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@c800 { /* GPIO 9 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + }; + + gpio@d100 { /* GPIO 18 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@d200 { /* GPIO 19 */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + gpio@cd00 { /* GPIO 14 */ + qcom,mode = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <1>; /* sel = 1 is high */ + qcom,invert = <0>; /* need invert = 0 */ + qcom,master-en = <1>; + }; +}; + +&pm8994_mpps { + mpp@a000 { /* MPP 1 */ + }; + + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + }; +}; + +&pmi8994_mpps { + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; + qcom,master-en = <1>; + }; +}; + +&pmi8994_charger { + qcom,charging-disabled; +}; + +&slim_msm { + tomtom_codec { + cdc-vdd-spkdrv-supply = <&pmi8994_boost>; + qcom,cdc-vdd-spkdrv-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-current = <600000>; + + cdc-vdd-spkdrv-2-supply = <&pmi8994_boost>; + qcom,cdc-vdd-spkdrv-2-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-2-current = <600000>; + + qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv", + "cdc-vdd-spkdrv-2"; + }; +}; + +/* CoreSight */ +&tpiu { + pinctrl-names = "seta-pctrl", "setb-pctrl"; + pinctrl-0 = <&seta_1 &seta_2 &seta_3 &seta_4 &seta_5 &seta_6 &seta_7 + &seta_8 &seta_9 &seta_10 &seta_11 &seta_12 &seta_13 + &seta_14 &seta_15 &seta_16 &seta_17 &seta_18>; + pinctrl-1 = <&setb_1 &setb_2 &setb_3 &setb_4 &setb_5 &setb_6 &setb_7 + &setb_8 &setb_9 &setb_10 &setb_11 &setb_12 &setb_13 + &setb_14 &setb_15 &setb_16 &setb_17 &setb_18>; +}; + +&blsp2_uart2 { + status = "ok"; +}; + +&blsp1_uart2 { + status= "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_sleep>; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&usb3 { + status = "ok"; +}; + +&hsphy0 { + status = "ok"; +}; + +&ssphy0 { + status = "ok"; +}; + +&qcom_crypto { + status = "okay"; +}; + +&qcom_cedev { + status = "okay"; +}; + +&i2c_5 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_rst_suspend>; + silabs,reset-gpio = <&msm_gpio 62 0>; + silabs,int-gpio = <&msm_gpio 9 0>; + silabs,status-gpio = <&msm_gpio 11 0>; + interrupt-parent = <&msm_gpio>; + interrupts = <9 2>; + interrupt-names = "silabs_fm_int"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-coresight.dtsi b/arch/arm64/boot/dts/qcom/msm8994-coresight.dtsi new file mode 100644 index 00000000000..f5d040e775a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-coresight.dtsi @@ -0,0 +1,778 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tmc_etr: tmc@fc326000 { + compatible = "arm,coresight-tmc"; + reg = <0xfc326000 0x1000>, + <0xfc37c000 0x3000>; + reg-names = "tmc-base", "bam-base"; + interrupts = <0 270 0>; + interrupt-names = "byte-cntr-irq"; + + qcom,memory-size = <0x1400000>; + qcom,tmc-flush-powerdown; + + coresight-id = <0>; + coresight-name = "coresight-tmc-etr"; + coresight-nr-inports = <1>; + coresight-ctis = <&cti0 &cti8>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpiu: tpiu@fc320000 { + compatible = "arm,coresight-tpiu"; + reg = <0xfc320000 0x1000>, + <0xfd512000 0x1000>; + reg-names = "tpiu-base", "nidnt-base"; + + coresight-id = <1>; + coresight-name = "coresight-tpiu"; + coresight-nr-inports = <1>; + + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + qcom,nidntsw; + qcom,nidnt-swduart; + qcom,nidnt-swdtrc; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + replicator: replicator@fc324000 { + compatible = "qcom,coresight-replicator"; + reg = <0xfc324000 0x1000>; + reg-names = "replicator-base"; + + coresight-id = <2>; + coresight-name = "coresight-replicator"; + coresight-nr-inports = <1>; + coresight-outports = <0 1>; + coresight-child-list = <&tmc_etr &tpiu>; + coresight-child-ports = <0 0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tmc_etf: tmc@fc325000 { + compatible = "arm,coresight-tmc"; + reg = <0xfc325000 0x1000>; + reg-names = "tmc-base"; + + coresight-id = <3>; + coresight-name = "coresight-tmc-etf"; + coresight-nr-inports = <1>; + coresight-outports = <0>; + coresight-child-list = <&replicator>; + coresight-child-ports = <0>; + coresight-default-sink; + coresight-ctis = <&cti0 &cti8>; + + qcom,tmc-flush-powerdown; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_merg: funnel@fc323000 { + compatible = "arm,coresight-funnel"; + reg = <0xfc323000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <4>; + coresight-name = "coresight-funnel-merg"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&tmc_etf>; + coresight-child-ports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in0: funnel@fc321000 { + compatible = "arm,coresight-funnel"; + reg = <0xfc321000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <5>; + coresight-name = "coresight-funnel-in0"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in1: funnel@fc322000 { + compatible = "arm,coresight-funnel"; + reg = <0xfc322000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <6>; + coresight-name = "coresight-funnel-in1"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <1>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss: funnel@fbb60000 { + compatible = "arm,coresight-funnel"; + reg = <0xfbb60000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <7>; + coresight-name = "coresight-funnel-apss"; + coresight-nr-inports = <4>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <6>; + + qcom,funnel-save-restore; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_mmss: funnel@fc370000 { + compatible = "arm,coresight-funnel"; + reg = <0xfc370000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <8>; + coresight-name = "coresight-funnel-mmss"; + coresight-nr-inports = <4>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <2>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + stm: stm@fc302000 { + compatible = "arm,coresight-stm"; + reg = <0xfc302000 0x1000>, + <0xfa280000 0x180000>; + reg-names = "stm-base", "stm-data-base"; + + coresight-id = <9>; + coresight-name = "coresight-stm"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <7>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm0: etm@fb840000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfb840000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <10>; + coresight-name = "coresight-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm1: etm@fb940000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfb940000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <11>; + coresight-name = "coresight-etm1"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <1>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm2: etm@fba40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfba40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <12>; + coresight-name = "coresight-etm2"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <2>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm3: etm@fbb40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfbb40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <13>; + coresight-name = "coresight-etm3"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <3>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm4: etm@fbc40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfbc40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <14>; + coresight-name = "coresight-etm4"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <4>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm5: etm@fbd40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfbd40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <15>; + coresight-name = "coresight-etm5"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <5>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm6: etm@fbe40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfbe40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <16>; + coresight-name = "coresight-etm6"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <6>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm7: etm@fbf40000 { + compatible = "arm,coresight-etmv4"; + reg = <0xfbf40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <17>; + coresight-name = "coresight-etm7"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss>; + coresight-child-ports = <7>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + audio_etm0 { + compatible = "qcom,coresight-audio-etm"; + + coresight-id = <18>; + coresight-name = "coresight-audio-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <2>; + }; + + modem_etm0 { + compatible = "qcom,coresight-modem-etm"; + + coresight-id = <19>; + coresight-name = "coresight-modem-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <1>; + }; + + wcn_etm0 { + compatible = "qcom,coresight-wcn-etm"; + + coresight-id = <20>; + coresight-name = "coresight-wcn-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <0>; + }; + + rpm_etm0 { + compatible = "qcom,coresight-rpm-etm"; + + coresight-id = <21>; + coresight-name = "coresight-rpm-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <0>; + }; + + csr: csr@fc301000 { + compatible = "qcom,coresight-csr"; + reg = <0xfc301000 0x1000>; + reg-names = "csr-base"; + + coresight-id = <22>; + coresight-name = "coresight-csr"; + coresight-nr-inports = <0>; + + qcom,blk-size = <1>; + }; + + cti0: cti@fc310000 { + compatible = "arm,coresight-cti"; + reg = <0xfc310000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <23>; + coresight-name = "coresight-cti0"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti1: cti@fc311000 { + compatible = "arm,coresight-cti"; + reg = <0xfc311000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <24>; + coresight-name = "coresight-cti1"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti2: cti@fc312000 { + compatible = "arm,coresight-cti"; + reg = <0xfc312000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <25>; + coresight-name = "coresight-cti2"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti3: cti@fc313000 { + compatible = "arm,coresight-cti"; + reg = <0xfc313000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <26>; + coresight-name = "coresight-cti3"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti4: cti@fc314000 { + compatible = "arm,coresight-cti"; + reg = <0xfc314000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <27>; + coresight-name = "coresight-cti4"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti5: cti@fc315000 { + compatible = "arm,coresight-cti"; + reg = <0xfc315000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <28>; + coresight-name = "coresight-cti5"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti6: cti@fc316000 { + compatible = "arm,coresight-cti"; + reg = <0xfc316000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <29>; + coresight-name = "coresight-cti6"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-gpio-trigout = <2>; + pinctrl-names = "cti-trigout-pctrl"; + pinctrl-0 = <&trigout_a>; + }; + + cti7: cti@fc317000 { + compatible = "arm,coresight-cti"; + reg = <0xfc317000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <30>; + coresight-name = "coresight-cti7"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti8: cti@fc318000 { + compatible = "arm,coresight-cti"; + reg = <0xfc318000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <31>; + coresight-name = "coresight-cti8"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-gpio-trigout = <4>; + pinctrl-names = "cti-trigout-pctrl"; + pinctrl-0 = <&trigout_c>; + }; + + cti_cpu0: cti@fb820000 { + compatible = "arm,coresight-cti"; + reg = <0xfb820000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <32>; + coresight-name = "coresight-cti-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu1: cti@fb920000 { + compatible = "arm,coresight-cti"; + reg = <0xfb920000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <33>; + coresight-name = "coresight-cti-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu2: cti@fba20000 { + compatible = "arm,coresight-cti"; + reg = <0xfba20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <34>; + coresight-name = "coresight-cti-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu3: cti@fbb2000 { + compatible = "arm,coresight-cti"; + reg = <0xfbb20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <35>; + coresight-name = "coresight-cti-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu4: cti@fbc20000 { + compatible = "arm,coresight-cti"; + reg = <0xfbc20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <36>; + coresight-name = "coresight-cti-cpu4"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU4>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu5: cti@fbd20000 { + compatible = "arm,coresight-cti"; + reg = <0xfbd20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <37>; + coresight-name = "coresight-cti-cpu5"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU5>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu6: cti@fbe20000 { + compatible = "arm,coresight-cti"; + reg = <0xfbe20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <38>; + coresight-name = "coresight-cti-cpu6"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU6>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_cpu7: cti@fbf2000 { + compatible = "arm,coresight-cti"; + reg = <0xfbf20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <39>; + coresight-name = "coresight-cti-cpu7"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU7>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-ack-atomic; + qcom,cti-save; + }; + + cti_video_cpu0: cti@fc338000 { + compatible = "arm,coresight-cti"; + reg = <0xfc338000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <40>; + coresight-name = "coresight-cti-video-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_modem_cpu0: cti@fc33c000 { + compatible = "arm,coresight-cti"; + reg = <0xfc33c000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <41>; + coresight-name = "coresight-cti-modem-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_audio_cpu0: cti@fc360000 { + compatible = "arm,coresight-cti"; + reg = <0xfc360000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <42>; + coresight-name = "coresight-cti-audio-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_rpm_cpu0: cti@fc364000 { + compatible = "arm,coresight-cti"; + reg = <0xfc364000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <43>; + coresight-name = "coresight-cti-rpm-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + hwevent: hwevent@fd820018 { + compatible = "qcom,coresight-hwevent"; + reg = <0xfd828018 0x80>, + <0xf9112000 0x80>, + <0xf9112080 0x4>, + <0xf9112084 0x4>, + <0xf9112088 0x14>, + <0xf9112148 0x38>, + <0xfd4ab160 0x80>, + <0xfc401600 0x80>, + <0xfd4ab360 0x80>, + <0xfc596000 0x80>, + <0xfc520000 0x4>, + <0xfc520058 0x80>, + <0xfc528000 0x4>, + <0xfc528058 0x80>; + reg-names = "mmss-mux", "apcs-hwev", "apcs-spi", "apcs-ppi", + "apcs-cpu", "apcs-cci", "ppss-mux", "gcc-mux", + "tcsr-mux", "ufs-mux", "pcie0-sysctl", "pcie0-hwev", + "pcie1-sysctl", "pcie1-hwev"; + + coresight-id = <44>; + coresight-name = "coresight-hwevent"; + coresight-nr-inports = <0>; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>, + <&clock_gcc clk_gcc_ufs_ahb_clk>, + <&clock_gcc clk_gcc_ufs_axi_clk>; + clock-names = "core_clk", "core_a_clk", "core_mmss_clk", + "ufs_ahb_clk", "ufs_axi_clk"; + + qcom,hwevent-clks = "core_mmss_clk", "ufs_ahb_clk", + "ufs_axi_clk"; + qcom,hwevent-regs = "gdsc_ufs"; + }; + + fuse: fuse@fc4be024 { + compatible = "arm,coresight-fuse"; + reg = <0xfc4be024 0x8>; + reg-names = "fuse-base"; + + coresight-id = <45>; + coresight-name = "coresight-fuse"; + coresight-nr-inports = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-gpu.dtsi b/arch/arm64/boot/dts/qcom/msm8994-gpu.dtsi new file mode 100644 index 00000000000..af4d6463511 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-gpu.dtsi @@ -0,0 +1,117 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + msm_gpu: qcom,kgsl-3d0@fdb00000 { + label = "kgsl-3d0"; + compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d"; + reg = <0xfdb00000 0x20000 + 0xfdb20000 0x10000>; + reg-names = "kgsl_3d0_reg_memory" , "kgsl_3d0_shader_memory"; + interrupts = <0 33 0>; + interrupt-names = "kgsl_3d0_irq"; + qcom,id = <0>; + + qcom,chipid = <0x04030000>; + + qcom,initial-pwrlevel = <2>; + + qcom,idle-timeout = <8>; //<HZ/12> + qcom,strtstp-sleepwake; + + /* + * Clocks = KGSL_CLK_CORE | KGSL_CLK_IFACE + */ + qcom,clk-map = <0x00000006>; + + clocks = <&clock_mmss clk_oxili_gfx3d_clk>, + <&clock_mmss clk_oxilicx_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + + /* Bus Scale Settings */ + qcom,bus-control; + qcom,msm-bus,name = "grp3d"; + qcom,msm-bus,num-cases = <12>; + qcom,msm-bus,num-paths = <2>; + qcom,msm-bus,vectors-KBps = + <26 512 0 0>, <89 662 0 0>, + + <26 512 0 1200000>, <89 662 0 2880000>, // gpu=180 bus=150 + <26 512 0 2400000>, <89 662 0 2880000>, // gpu=180 bus=300 + <26 512 0 3200000>, <89 662 0 2880000>, // gpu=180 bus=400 + + <26 512 0 2400000>, <89 662 0 4800000>, // gpu=300 bus=300 + <26 512 0 4224000>, <89 662 0 4800000>, // gpu=300 bus=528 + <26 512 0 5376000>, <89 662 0 4800000>, // gpu=300 bus=672 + + <26 512 0 5376000>, <89 662 0 7200000>, // gpu=450 bus=672 + <26 512 0 6681600>, <89 662 0 7200000>, // gpu=450 bus=835.2 + <26 512 0 8448000>, <89 662 0 7200000>, // gpu=450 bus=1056 + + <26 512 0 8448000>, <89 662 0 9200000>, // gpu=575 bus=1056 + <26 512 0 12748800>, <89 662 0 9200000>; // gpu=575 bus=1593.6 + + /* GDSC oxili regulators */ + vddcx-supply = <&gdsc_oxili_cx>; + vdd-supply = <&gdsc_oxili_gx>; + + /* IOMMU Data */ + iommu = <&kgsl_iommu>; + + /* Trace bus */ + coresight-id = <67>; + coresight-name = "coresight-gfx"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <4>; + + /* Power levels */ + qcom,gpu-pwrlevels { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "qcom,gpu-pwrlevels"; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <575000000>; + qcom,bus-freq = <11>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <450000000>; + qcom,bus-freq = <8>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <300000000>; + qcom,bus-freq = <5>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <180000000>; + qcom,bus-freq = <2>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <27000000>; + qcom,bus-freq = <0>; + }; + }; + + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-iommu-domains.dtsi b/arch/arm64/boot/dts/qcom/msm8994-iommu-domains.dtsi new file mode 100644 index 00000000000..840818c2d7c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-iommu-domains.dtsi @@ -0,0 +1,45 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,iommu-domains { + compatible = "qcom,iommu-domains"; + + venus_domain_ns: qcom,iommu-domain1 { + label = "venus_ns"; + qcom,iommu-contexts = <&venus_ns>; + qcom,virtual-addr-pool = <0x5dc00000 0x7f000000 + 0xdcc00000 0x1000000>; + }; + + venus_domain_sec_bitstream: qcom,iommu-domain2 { + label = "venus_sec_bitstream"; + qcom,iommu-contexts = <&venus_sec_bitstream>; + qcom,virtual-addr-pool = <0x4b000000 0x12c00000>; + qcom,secure-domain; + }; + + venus_domain_sec_pixel: qcom,iommu-domain3 { + label = "venus_sec_pixel"; + qcom,iommu-contexts = <&venus_sec_pixel>; + qcom,virtual-addr-pool = <0x25800000 0x25800000>; + qcom,secure-domain; + }; + + venus_domain_sec_non_pixel: qcom,iommu-domain4 { + label = "venus_sec_non_pixel"; + qcom,iommu-contexts = <&venus_sec_non_pixel>; + qcom,virtual-addr-pool = <0x1000000 0x24800000>; + qcom,secure-domain; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-iommu.dtsi b/arch/arm64/boot/dts/qcom/msm8994-iommu.dtsi new file mode 100644 index 00000000000..2343cba52c0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-iommu.dtsi @@ -0,0 +1,429 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm-iommu-v1.dtsi" + +&soc { + mdp_iommu_8994: qcom,iommu@fd9cc000 { + compatible = "qcom,msm-smmu-v1"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfd9cc000 0x10000>; + reg-names = "iommu_base"; + interrupts = <0 73 0>, + <0 229 0>, <0 231 0>, + <0 230 0>, <0 232 0>; + interrupt-names = "pmon", + "global_cfg_NS_irq", "global_client_NS_irq", + "global_cfg_S_irq", "global_client_S_irq"; + qcom,iommu-secure-id = <1>; + label = "mdp_iommu"; + qcom,msm-bus,name = "mdp_ebi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, + <22 512 0 1000>; + + status = "ok"; + vdd-supply = <&gdsc_mdss>; + clocks = <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdss_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + + qcom,iommu-pmu-ngroups = <1>; + qcom,iommu-pmu-ncounters = <8>; + qcom,iommu-pmu-event-classes = <0x00 + 0x01 + 0x08 + 0x09 + 0x0A + 0x10 + 0x11 + 0x12 + 0x80 + 0x81 + 0x82 + 0x83 + 0x90 + 0x91 + 0x92 + 0xb0 + 0xb1>; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018>; + + qcom,iommu-bfb-data = <0x3 + 0x7fffff + 0x1777 + 0x0 + 0x4 + 0x10 + 0x5000 + 0x182c1 + 0x5a1d + 0x1822d + 0x0 + 0x0 + 0x28 + 0x68 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-ctx@fd9d4000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd9d4000 0x1000>; + interrupts = <0 47 0>; + qcom,iommu-ctx-sids = <0>; + label = "mdp_0"; + }; + + qcom,iommu-ctx@fd9d5000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd9d5000 0x1000>; + interrupts = <0 47 0>, <0 46 0>; + qcom,iommu-ctx-sids = <1>; + label = "mdp_1"; + qcom,secure-context; + }; + + qcom,iommu-ctx@fd9d6000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfd9d6000 0x1000>; + interrupts = <0 47 0>, <0 46 0>; + qcom,iommu-ctx-sids = <>; + label = "mdp_2"; + qcom,secure-context; + }; + }; +}; + +&venus_iommu { + status = "ok"; + vdd-supply = <&gdsc_venus>; + clocks = <&clock_mmss clk_venus0_axi_clk>, + <&clock_mmss clk_venus0_ahb_clk>, + <&clock_mmss clk_venus0_vcodec0_clk>; + clock-names = "core_clk", "iface_clk", "alt_core_clk"; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x200c + 0x2010 + 0x2014 + 0x2018 + 0x201c>; + + qcom,iommu-bfb-data = <0x3 + 0x7ffffff + 0x1555 + 0x0 + 0x4 + 0x8 + 0x13607 + 0x140a0 + 0x4000 + 0x14020 + 0x0 + 0x0 + 0x94 + 0x114 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0>; + + venus_ns: qcom,iommu-ctx@fdc8c000 { + qcom,iommu-ctx-sids = <0x00 0x21 0x45 0x47 0x48 0x49 0x4a + 0x4b 0x4c 0x65 0x67 0x69 0x6a 0x6b>; + qcom,iommu-sid-mask = <0x0 0xf 0x0 0x0 0x0 0x0 0x0 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0>; + }; + + venus_sec_bitstream: qcom,iommu-ctx@fdc8d000 { + qcom,iommu-ctx-sids = <0x400 0x421 0x422 0x423 0x424 0x448 + 0x44a 0x46a>; + label = "venus_sec_bitstream"; + }; + + venus_fw: qcom,iommu-ctx@fdc8e000 { + qcom,iommu-ctx-sids = <0x600 0x606>; + }; + + venus_sec_pixel: qcom,iommu-ctx@fdc8f000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdc8f000 0x1000>; + interrupts = <0 42 0>, <0 43 0>; + qcom,iommu-ctx-sids = <0x425 0x428 0x445 0x44c 0x465>; + label = "venus_sec_pixel"; + qcom,secure-context; + }; + + venus_sec_non_pixel: qcom,iommu-ctx@fdc90000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfdc90000 0x1000>; + interrupts = <0 42 0>, <0 43 0>; + qcom,iommu-ctx-sids = <0x427 0x447 0x449 0x44b 0x467 0x469 0x46b + 0x500>; + label = "venus_sec_non_pixel"; + qcom,secure-context; + }; +}; + +&jpeg_iommu { + status = "ok"; + vdd-supply = <&gdsc_jpeg>; + qcom,needs-alt-core-clk; + qcom,needs-alt-iface-clk; + clocks = <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_jpeg_jpeg_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>; + clock-names = "core_clk", "iface_clk", "alt_iface_clk", "alt_core_clk"; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x200c + 0x2010 + 0x2014>; + + qcom,iommu-bfb-data = <0x3 + 0x3ffff + 0x1555 + 0x0 + 0x4 + 0x4 + 0x2000 + 0xe673 + 0x2c00 + 0xe616 + 0x0 + 0x0 + 0x10 + 0x68 + 0x0 + 0x0 + 0x0 + 0x0>; + + qcom,iommu-ctx@fda6f000 { + compatible = "qcom,msm-smmu-v1-ctx"; + reg = <0xfda6f000 0x1000>; + interrupts = <0 70 0>; + qcom,iommu-ctx-sids = <3>; + label = "jpeg_dma"; + }; +}; + +&kgsl_iommu { + status = "ok"; + vdd-supply = <&gdsc_oxili_cx>; + qcom,alt-vdd-supply = <&gdsc_oxili_gx>; + qcom,iommu-secure-id = <18>; + clocks = <&clock_mmss clk_oxili_gfx3d_clk>, + <&clock_mmss clk_oxilicx_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x2600 + 0x2604 + 0x2608 + 0x260c + 0x2610 + 0x2614 + 0x2618 + 0x261c + 0x2620 + 0x2624 + 0x2628 + 0x262c>; + + qcom,iommu-bfb-data = <0x3 + 0x3 + 0x1555 + 0x0 + 0x8 + 0x10 + 0x0 + 0x120 + 0x0 + 0x20 + 0x0 + 0x0 + 0x1 + 0x101 + 0x0 + 0x7 + 0x4 + 0x20 + 0x8 + 0x14 + 0x0 + 0x0 + 0xc + 0x6c + 0x0 + 0x8 + 0x10>; + + qcom,iommu-ctx@fdb18000 { + qcom,iommu-ctx-sids = <0 1>; + }; + + qcom,iommu-ctx@fdb19000 { + qcom,iommu-ctx-sids = <>; + }; + + qcom,iommu-ctx@fdb1a000 { + qcom,iommu-ctx-sids = <2>; + interrupts = <0 241 0>, <0 240 0>; + qcom,secure-context; + }; +}; + +&vfe_iommu { + status = "ok"; + vdd-supply = <&gdsc_vfe>; + qcom,needs-alt-core-clk; + qcom,needs-alt-iface-clk; + clocks = <&clock_mmss clk_camss_vfe_vfe_axi_clk>, + <&clock_mmss clk_camss_vfe_vfe_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>; + clock-names = "core_clk", "iface_clk", "alt_iface_clk", "alt_core_clk"; + + qcom,iommu-bfb-regs = <0x2000 + 0x204c + 0x2060 + 0x2514 + 0x2540 + 0x256c + 0x20ac + 0x215c + 0x220c + 0x22bc + 0x2314 + 0x2394 + 0x2414 + 0x2494 + 0x2008 + 0x200c + 0x2010 + 0x2014>; + + qcom,iommu-bfb-data = <0x3 + 0xfffff + 0x1555 + 0x0 + 0x4 + 0x4 + 0x2400 + 0x8844 + 0x2400 + 0x8812 + 0x0 + 0x0 + 0x12 + 0x5a + 0x0 + 0x0 + 0x0 + 0x0>; +}; + +&fd_iommu { + status = "ok"; + vdd-supply = <&gdsc_fd>; + qcom,needs-alt-core-clk; + qcom,needs-alt-iface-clk; + clocks = <&clock_mmss clk_fd_axi_clk>, + <&clock_mmss clk_fd_ahb_clk>, + <&clock_mmss clk_fd_core_clk>, + <&clock_mmss clk_fd_core_uar_clk>; + clock-names = "core_clk", "iface_clk", "alt_core_clk", "alt_iface_clk"; +}; + +&cpp_iommu { + status = "ok"; + vdd-supply = <&gdsc_cpp>; + qcom,needs-alt-core-clk; + qcom,needs-alt-iface-clk; + clocks = <&clock_mmss clk_camss_vfe_cpp_axi_clk>, + <&clock_mmss clk_camss_vfe_cpp_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>; + clock-names = "core_clk", "iface_clk", "alt_iface_clk", "alt_core_clk"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-ion.dtsi b/arch/arm64/boot/dts/qcom/msm8994-ion.dtsi new file mode 100644 index 00000000000..eb0a8e70664 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-ion.dtsi @@ -0,0 +1,63 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,ion { + compatible = "qcom,msm-ion"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,ion-heap@25 { + reg = <25>; + qcom,ion-heap-type = "SYSTEM"; + }; + + qcom,ion-heap@21 { + reg = <21>; + qcom,ion-heap-type = "SYSTEM_CONTIG"; + }; + + qcom,ion-heap@8 { /* CP_MM HEAP */ + compatible = "qcom,msm-ion-reserve"; + reg = <8>; + qcom,heap-align = <0x1000>; + memory-region = <&secure_mem>; + qcom,ion-heap-type = "SECURE_DMA"; + qcom,default-prefetch-size = <0x6c00000>; + }; + + qcom,ion-heap@22 { /* adsp heap */ + reg = <22>; + memory-region = <&adsp_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@27 { /* QSECOM HEAP */ + reg = <27>; + memory-region = <&qsecom_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@28 { /* AUDIO HEAP */ + reg = <28>; + memory-region = <&audio_mem>; + qcom,ion-heap-type = "DMA"; + }; + + adsp_venus_heap: qcom,ion-heap@23 { + compatible = "qcom,msm-ion-reserve"; + reg = <23>; + memory-region = <&peripheral_mem>; + qcom,ion-heap-type = "DMA"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-ipcrouter.dtsi b/arch/arm64/boot/dts/qcom/msm8994-ipcrouter.dtsi new file mode 100644 index 00000000000..eee98403c47 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-ipcrouter.dtsi @@ -0,0 +1,36 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,ipc_router { + compatible = "qcom,ipc_router"; + qcom,node-id = <1>; + }; + + qcom,ipc_router_modem_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "modem"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_q6_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "adsp"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-liquid.dts b/arch/arm64/boot/dts/qcom/msm8994-liquid.dts new file mode 100644 index 00000000000..5063e876fe8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-liquid.dts @@ -0,0 +1,25 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8994.dtsi" +#include "msm8994-pinctrl.dtsi" +#include "msm8994-liquid.dtsi" +#include "msm8994-camera-sensor-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8994 LiQUID"; + compatible = "qcom,msm8994-liquid", "qcom,msm8994", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-liquid.dtsi b/arch/arm64/boot/dts/qcom/msm8994-liquid.dtsi new file mode 100644 index 00000000000..1ad39aedc48 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-liquid.dtsi @@ -0,0 +1,801 @@ + +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/ { + + bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-pa-supply = <&bt_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&blsp1_uart2 { /* SERIAL0 */ + status= "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_sleep>; +}; + +&blsp2_uart2 { /* BT QCA6174 */ + status = "ok"; +}; + +&tlmm_pinmux{ + pmx_ts { + qcom,pins = <&gp 59>, <&gp 60>, <&gp 61>; + qcom,num-grp-pins = <3>; + }; +}; + +&pmx_mdss { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 78>; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +#include "dsi-panel-jdi-4k-dualmipi0-video.dtsi" +#include "dsi-panel-jdi-4k-dualmipi1-video.dtsi" + +&dsi_dual_jdi_4k_video_0 { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pmi8994_mpps 1 0>; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_jdi_4k_video_0>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + vddio-supply = <&pm8994_s4>; + + qcom,platform-enable-gpio = <&pm8994_gpios 14 0>; + qcom,platform-reset-gpio = <&msm_gpio 78 0>; + qcom,platform-bklight-en-gpio = <&pmi8994_gpios 2 0>; + + qcom,dsi-panel-bias-vreg; + qcom,regulator-ldo-mode; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_jdi_4k_video_1>; + + vddio-supply = <&pm8994_s4>; + qcom,regulator-ldo-mode; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,nonremovable; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000>; + qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v"; + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &pm8994_gpios 8 0x3>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&pm8994_gpios 8 0x1>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +&soc { + + drv2667_vreg: drv2667_vdd_vreg { + compatible = "regulator-fixed"; + regulator-name = "vdd_drv2667"; + }; + + i2c@f9967000 { + ti-drv2667@59 { + compatible = "ti,drv2667"; + reg = <0x59>; + vdd-supply = <&drv2667_vreg>; + vdd-i2c-supply = <&pm8994_s4>; + ti,label = "vibrator"; + ti,gain = <2>; + ti,idle-timeout-ms = <20>; + ti,max-runtime-ms = <15000>; + ti,mode = <2>; + ti,wav-seq = [ + /* wave form id */ + 01 + /* header size, start and stop bytes */ + 05 80 06 00 09 + /* repeat, amp, freq, duration, envelope */ + 01 ff 19 02 00]; + }; + }; + + i2c@f9928000 { /* BLSP1 QUP6 */ + status = "ok"; + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 29 0x00>; + qcom,dis-gpio = <&msm_gpio 30 0x00>; + qcom,clk-src = "BBCLK2"; + interrupt-parent = <&msm_gpio>; + interrupts = <29 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8994_gpios 10 0>; + qcom,pwr-req-gpio = <&pm8994_gpios 7 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + home { + label = "home"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <102>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 3 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + qcom,mdss_wb_panel { + status = "disabled"; + }; + + ts_xvdd_vreg: ts_xvdd_vreg { + compatible = "regulator-fixed"; + regulator-name = "ts_xvdd_vreg"; + startup-delay-us = <2500>; + enable-active-high; + gpio = <&msm_gpio 109 0>; + status = "ok"; + }; + + wigig_vreg: wigig_vreg { + compatible = "regulator-fixed"; + regulator-name = "wigig_vreg"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&msm_gpio 38 0>; + status = "ok"; + }; + + /* + * vph_pwr_vreg represents the unregulated battery voltage supply + * VPH_PWR that is present whenever the device is powered on. + */ + vph_pwr_vreg: vph_pwr_vreg { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + status = "ok"; + regulator-always-on; + enable-active-high; + }; + + spk_ext_vreg: spk_ext_vreg { + compatible = "regulator-fixed"; + regulator-name = "spk_ext_vreg"; + gpio = <&pm8994_mpps 5 0>; + status = "ok"; + enable-active-high; + }; + + sound { + qcom,model = "msm8994-tomtom-liquid-snd-card"; + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "LDO_H", "MCLK", + "AIF4 MAD", "MCLK", + "ultrasound amp", "LINEOUT3", + "ultrasound amp", "LINEOUT4", + "AMIC2", "MIC BIAS2 External", + "MIC BIAS2 External", "Headset Mic", + "AMIC3", "MIC BIAS3 External", + "MIC BIAS2 External", "Analog Mic 7", + "AMIC4", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCRight Headset Mic", + "AMIC5", "MIC BIAS2 External", + "MIC BIAS3 External", "ANCLeft Headset Mic", + "AMIC6", "MIC BIAS3 External", + "MIC BIAS3 External", "Analog Mic 8", + "DMIC1", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic1", + "DMIC2", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic4", + "DMIC3", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic2", + "DMIC4", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic6", + "DMIC5", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic3", + "DMIC6", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic5"; + + qcom,cdc-micbias2-headset-only; + qcom,mbhc-audio-jack-type = "6-pole-jack"; + qcom,dock-plug-det-irq = <&pm8994_gpios 13 0x1>; + qcom,ext-ult-spk-amp-gpio = <&pmi8994_gpios 1 0>; + }; + + liquid_dock { + compatible = "qcom,liquid-dock"; + qcom,dock-detect-gpio = <&pm8994_gpios 5 0>; + qcom,dock-hub-reset-gpio = <&pm8994_gpios 1 0>; + qcom,dock-eth-reset-gpio = <&pm8994_mpps 6 0>; + qcom,usb-host = <&usb_ehci>; + }; +}; + +&pcie0 { + vreg-3.3-supply = <&wigig_vreg>; +}; + +&pcie1 { + vreg-3.3-supply = <&bt_vreg>; +}; + +&pmi8994_charger { + qcom,charging-disabled; +}; + +&slim_msm { + tomtom_codec { + cdc-vdd-spkdrv-supply = <&pmi8994_boost>; + qcom,cdc-vdd-spkdrv-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-current = <1300000>; + + cdc-vdd-spkdrv-2-supply = <&spk_ext_vreg>; + qcom,cdc-vdd-spkdrv-2-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-2-current = <1300000>; + + qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv", + "cdc-vdd-spkdrv-2"; + }; +}; + +&i2c_2 { + atmel_maxtouch_ts@4a { + compatible = "atmel,maxtouch-ts"; + reg = <0x4a>; + interrupt-parent = <&msm_gpio>; + interrupts = <61 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + xvdd-supply = <&ts_xvdd_vreg>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + atmel,panel-coords = <0 0 3840 2160>; + atmel,display-coords = <0 0 3840 2160>; + atmel,irq-gpio = <&msm_gpio 61 0x2008>; + atmel,reset-gpio = <&msm_gpio 60 0x00>; + atmel,i2cmode-gpio = <&msm_gpio 59 0x00>; + }; +}; + +&pm8994_gpios { + gpio@c000 { /* GPIO 1 HUB RESET*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* 1.8v */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@c200 { /* GPIO 3 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c300 { /* GPIO 4 SMB_SUSP */ + qcom,mode = <0>; /* INPUT */ + qcom,pull = <5>; /* No PULL */ + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c400 { /* GPIO 5 DOCK DET*/ + qcom,mode = <0>; /* DIGITAL IN */ + qcom,pull = <0>; /* PULL UP */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; + + gpio@c600 { /* GPIO 7 - NFC_PWR_REQ */ + qcom,mode = <0>; /* DIGITAL IN */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; + + gpio@c700 { /* GPIO 8 */ + qcom,mode = <0>; /* Digital in */ + qcom,pull = <5>; /* No PULL */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <2>; /* Logical 1 voltage value 1.8v */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@c800 { /* GPIO 9 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@c900 { /* GPIO 10 - NFC_CLK_REQ */ + qcom,mode = <0>; /* DIGITAL IN */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; + + gpio@cc00 { /* GPIO 13 docking station jack detect */ + qcom,mode = <0>; /* DIGITAL IN */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; + + gpio@cd00 { /* GPIO 14 */ + qcom,mode = <1>; + qcom,pull = <4>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + }; + + gpio@d200 { /* GPIO 19 */ + qcom,mode = <1>; /* Digital output */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@d300 { /* GPIO 20 - PMI_SPON */ + qcom,mode = <1>; /* Digital output */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + }; +}; + +&pm8994_mpps { + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + mpp@a400 { /* MPP 5 Ext Speaker Boost enable*/ + /* SPK_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + mpp@a500 { /* MPP 6 Ethernet RESET */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; +}; + +&pm8994_gpios { + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c200 { /* GPIO 3 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; +}; + +&pmi8994_gpios { + gpio@c000 { /* GPIO 1 Ultrasound PA EN */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; + + gpio@c100 { /* GPIO 2 */ + /* Backlight enable */ + qcom,mode = <1>; + qcom,pull = <4>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + }; +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + /* Backlight PWM */ + qcom,mode = <1>; /* Digital output */ + qcom,invert = <1>; /* Enable invert */ + qcom,src-sel = <0>; /* FUNC GPIO */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,master-en = <1>; /* Enable MPP */ + }; + + mpp@a100 { /* MPP 2 */ + }; + + mpp@a200 { /* MPP 3 */ + /* PMI_SPON */ + qcom,mode = <0>; /* DIGITAL IN */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE MPP */ + }; + + mpp@a300 { /* MPP 4 */ + }; +}; + +&pm8994_l19 { + status = "disabled"; +}; + +&pm8994_l25 { + status = "disabled"; +}; + +&pm8994_l10 { + status = "okay"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; +}; + +&pm8994_l22 { + status = "okay"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <3300000>; +}; + +&usb3 { + status = "ok"; +}; + +&hsphy0 { + status = "ok"; +}; + +&ssphy0 { + status = "ok"; +}; + +&usb_ehci { + status = "ok"; +}; + +&qusb_phy { + status = "ok"; +}; + +&spmi_bus { + qcom,pm8994@0 { + qcom,leds@a700 { + compatible = "qcom,leds-qpnp"; + reg = <0xa700 0x100>; + label = "mpp"; + status = "okay"; + mpp-power-supply = <&pm8994_l29>; + qcom,mpp-power-min-voltage = <2800000>; + qcom,mpp-power-max-voltage = <2800000>; + qcom,led_mpp_8 { + label = "mpp"; + linux,name = "privacy"; + qcom,max-current = <40>; + qcom,id = <6>; + qcom,source-sel = <1>; + qcom,mode-ctrl = <0x60>; + qcom,mode = "manual"; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-mdss-pll.dtsi b/arch/arm64/boot/dts/qcom/msm8994-mdss-pll.dtsi new file mode 100644 index 00000000000..9717f509755 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-mdss-pll.dtsi @@ -0,0 +1,112 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_dsi0_pll: qcom,mdss_dsi_pll@fd998300 { + compatible = "qcom,mdss_dsi_pll_8994"; + label = "MDSS DSI 0 PLL"; + cell-index = <0>; + #clock-cells = <1>; + + reg = <0xfd998300 0x500>; + reg-names = "pll_base"; + + gdsc-supply = <&gdsc_mdss>; + vddio-supply = <&pm8994_l12>; + vcca-supply = <&pm8994_l28>; + + clocks = <&clock_mmss clk_mdss_ahb_clk>; + clock-names = "iface_clk"; + clock-rate = <0>; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,platform-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <1000000>; + qcom,supply-max-voltage = <1000000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; + }; + + mdss_hdmi_pll: qcom,mdss_hdmi_pll@0xfd9a8600 { + compatible = "qcom,mdss_hdmi_pll_8994"; + label = "MDSS HDMI PLL"; + #clock-cells = <1>; + + reg = <0xfd9a8600 0xac4>, <0xfd9a9200 0x0C8>; + reg-names = "pll_base", "phy_base"; + + gdsc-supply = <&gdsc_mdss>; + vddio-supply = <&pm8994_l12>; + vcca-supply = <&pm8994_l28>; + + clocks = <&clock_mmss clk_mdss_ahb_clk>; + clock-names = "iface_clk"; + clock-rate = <0>; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,platform-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <1000000>; + qcom,supply-max-voltage = <1000000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-mdss.dtsi b/arch/arm64/boot/dts/qcom/msm8994-mdss.dtsi new file mode 100644 index 00000000000..515cfbd6a30 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-mdss.dtsi @@ -0,0 +1,404 @@ +/* Copyright (c) 2014 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_mdp: qcom,mdss_mdp@fd900000 { + compatible = "qcom,mdss_mdp"; + reg = <0xfd900000 0x90000>, + <0xfd9c8000 0x1000>; + reg-names = "mdp_phys", "vbif_phys"; + interrupts = <0 83 0>; + vdd-supply = <&gdsc_mdss>; + + /* Bus Scale Settings */ + qcom,msm-bus,name = "mdss_mdp"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <2>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, <23 512 0 0>, + <22 512 0 6400000>, <23 512 0 6400000>, + <22 512 0 6400000>, <23 512 0 6400000>; + + /* Fudge factors */ + qcom,mdss-ab-factor = <1 1>; /* 1 times (removes fudge factor) */ + qcom,mdss-ib-factor = <1 1>; /* 1 times (removes fudge factor) */ + qcom,mdss-clk-factor = <105 100>; /* 1.05 times */ + + qcom,max-mixer-width = <2048>; + + /* VBIF QoS remapper settings*/ + qcom,mdss-vbif-qos-rt-setting = <2 2 2 1>; + qcom,mdss-vbif-qos-nrt-setting = <1 1 1 1>; + + qcom,mdss-mdp-reg-offset = <0x00001000>; + qcom,max-bandwidth-low-kbps = <7300000>; + qcom,max-bandwidth-high-kbps = <7300000>; + qcom,max-bandwidth-per-pipe-kbps = <1800000>; + qcom,max-clk-rate = <400000000>; + + qcom,mdss-pipe-vig-off = <0x00005000 0x00007000 + 0x00009000 0x0000B000>; + qcom,mdss-pipe-rgb-off = <0x00015000 0x00017000 + 0x00019000 0x0001B000>; + qcom,mdss-pipe-dma-off = <0x00025000 0x00027000>; + qcom,mdss-pipe-cursor-off = <0x00035000 0x00037000>; + + qcom,mdss-pipe-vig-fetch-id = <1 4 7 19>; + qcom,mdss-pipe-rgb-fetch-id = <16 17 18 22>; + qcom,mdss-pipe-dma-fetch-id = <10 13>; + + qcom,mdss-pipe-vig-xin-id = <0 4 8 12>; + qcom,mdss-pipe-rgb-xin-id = <1 5 9 13>; + qcom,mdss-pipe-dma-xin-id = <2 10>; + qcom,mdss-pipe-cursor-xin-id = <7 7>; + + qcom,mdss-has-panic-ctrl; + qcom,mdss-pipe-vig-panic-ctrl-offsets = <0 1 2 3>; + qcom,mdss-pipe-rgb-panic-ctrl-offsets = <4 5 6 7>; + qcom,mdss-pipe-dma-panic-ctrl-offsets = <8 9>; + + qcom,mdss-pipe-rgb-fixed-mmb = <5 0 1 8 9 10>, + <5 2 3 11 12 13>, + <5 4 5 14 15 16>, + <5 6 7 17 18 19>; + qcom,mdss-pipe-vig-fixed-mmb = <1 20>, + <1 21>, + <1 22>, + <1 23>; + + /* These Offsets are relative to "mdp_phys + mdp-reg-offset" address */ + qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2AC 0 0>, + <0x2B4 0 0>, + <0x2BC 0 0>, + <0x2C4 0 0>; + qcom,mdss-pipe-rgb-clk-ctrl-offsets = <0x2AC 4 8>, + <0x2B4 4 8>, + <0x2BC 4 8>, + <0x2C4 4 8>; + qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2AC 8 12>, + <0x2B4 8 12>; + + qcom,mdss-pipe-sw-reset-off = <0x0028>; + qcom,mdss-pipe-vig-sw-reset-map = <5 6 7 8>; + qcom,mdss-pipe-rgb-sw-reset-map = <9 10 11 12>; + qcom,mdss-pipe-dma-sw-reset-map = <13 14>; + + qcom,mdss-smp-data = <44 8192>; + qcom,mdss-sspp-len = <0x00002000>; + + qcom,mdss-ctl-off = <0x00002000 0x00002200 0x00002400 + 0x00002600 0x00002800>; + qcom,mdss-mixer-intf-off = <0x00045000 0x00046000 + 0x00047000 0x0004A000>; + qcom,mdss-mixer-wb-off = <0x00048000 0x00049000>; + qcom,mdss-dspp-off = <0x00055000 0x00057000 0x00059000 + 0x0005B000>; + qcom,mdss-wb-off = <0x00065000 0x00065800 0x00066000 + 0x00066800 0x00067000>; + qcom,mdss-intf-off = <0x0006B000 0x0006B800 0x0006C000 + 0x0006C800 0x0006D000>; + qcom,mdss-pingpong-off = <0x00071000 0x00071800 0x00072000 + 0x00072800>; + qcom,mdss-ad-off = <0x0079000 0x00079800 0x0007A000>; + qcom,mdss-has-decimation; + qcom,mdss-wfd-mode = "intf"; + qcom,mdss-ctl-len = <0x00000200>; + + clocks = <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdp_clk_src>, + <&clock_mmss clk_mdss_mdp_clk>, + <&clock_mmss clk_mdss_vsync_clk>; + clock-names = "iface_clk", "bus_clk", "core_clk_src", + "core_clk", "vsync_clk"; + + /* These Offsets are relative to "mdp_phys" address */ + qcom,mdp-settings = <0x0117c 0x00005555>, + <0x01184 0xC000ff00>, + <0x011e4 0x00000000>, + <0x012ac 0xc0000ccc>, + <0x012b4 0xc0000ccc>, + <0x012bc 0x00cccccc>, + <0x012c4 0x000000cc>, + <0x013a8 0x0cccc0c0>, + <0x013b0 0xccccc0c0>, + <0x013b8 0xccccc0c0>, + <0x013d0 0x00ccc000>; + + /* buffer parameters to calculate prefill bandwidth */ + qcom,mdss-prefill-outstanding-buffer-bytes = <2048>; + qcom,mdss-prefill-y-buffer-bytes = <4096>; + qcom,mdss-prefill-scaler-buffer-lines-bilinear = <2>; + qcom,mdss-prefill-scaler-buffer-lines-caf = <4>; + qcom,mdss-prefill-post-scaler-buffer-pixels = <2048>; + qcom,mdss-prefill-pingpong-buffer-pixels = <5120>; + qcom,mdss-prefill-fbc-lines = <2>; + + mdss_fb0: qcom,mdss_fb_primary { + cell-index = <0>; + compatible = "qcom,mdss-fb"; + }; + + mdss_fb1: qcom,mdss_fb_external { + cell-index = <1>; + compatible = "qcom,mdss-fb"; + }; + + mdss_fb2: qcom,mdss_fb_wfd { + cell-index = <2>; + compatible = "qcom,mdss-fb"; + }; + }; + + mdss_dsi0: qcom,mdss_dsi@fd998000 { + compatible = "qcom,mdss-dsi-ctrl"; + label = "MDSS DSI CTRL->0"; + cell-index = <0>; + reg = <0xfd998000 0x260>, + <0xfd998500 0x2b0>, + <0xfd828000 0x108>; + reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys"; + gdsc-supply = <&gdsc_mdss>; + vdd-supply = <&pm8994_l14>; + vddio-supply = <&pm8994_l12>; + vdda-supply = <&pm8994_l2>; + vcca-supply = <&pm8994_l28>; + qcom,mdss-fb-map = <&mdss_fb0>; + qcom,mdss-mdp = <&mdss_mdp>; + clocks = <&clock_mmss clk_mdss_mdp_clk>, + <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdss_byte0_clk>, + <&clock_mmss clk_mdss_pclk0_clk>, + <&clock_mmss clk_mdss_esc0_clk>; + clock-names = "mdp_core_clk", "iface_clk", + "core_mmss_clk", "bus_clk", + "byte_clk", "pixel_clk", "core_clk"; + + qcom,platform-strength-ctrl = [77 06]; + qcom,platform-bist-ctrl = [00 00 b1 ff 00 00]; + qcom,platform-regulator-settings = [03 05 03 00 20 07 01]; + qcom,platform-lane-config = [02 00 00 00 20 00 00 01 88 + 02 00 00 00 40 00 00 01 88 + 02 00 00 40 20 00 00 01 88 + 02 00 00 40 00 00 00 01 88 + 00 00 00 80 00 00 00 01 88]; + + qcom,mmss-ulp-clamp-ctrl-offset = <0x14>; + qcom,mmss-phyreset-ctrl-offset = <0x108>; + + qcom,core-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,core-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + }; + + qcom,ctrl-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,ctrl-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdda"; + qcom,supply-min-voltage = <1250000>; + qcom,supply-max-voltage = <1250000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,ctrl-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <20>; + }; + + qcom,ctrl-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <1000000>; + qcom,supply-max-voltage = <1000000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <20>; + }; + }; + }; + + mdss_dsi1: qcom,mdss_dsi@fd9a0000 { + compatible = "qcom,mdss-dsi-ctrl"; + label = "MDSS DSI CTRL->1"; + cell-index = <1>; + reg = <0xfd9a0000 0x260>, + <0xfd9a0500 0x2b0>, + <0xfd828000 0x108>; + reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys"; + gdsc-supply = <&gdsc_mdss>; + vdd-supply = <&pm8994_l14>; + vddio-supply = <&pm8994_l12>; + vdda-supply = <&pm8994_l2>; + vcca-supply = <&pm8994_l28>; + qcom,mdss-fb-map = <&mdss_fb0>; + qcom,mdss-mdp = <&mdss_mdp>; + clocks = <&clock_mmss clk_mdss_mdp_clk>, + <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdss_byte1_clk>, + <&clock_mmss clk_mdss_pclk1_clk>, + <&clock_mmss clk_mdss_esc1_clk>; + clock-names = "mdp_core_clk", "iface_clk", + "core_mmss_clk", "bus_clk", + "byte_clk", "pixel_clk", "core_clk"; + + qcom,platform-strength-ctrl = [77 06]; + qcom,platform-bist-ctrl = [00 00 b1 ff 00 00]; + qcom,platform-regulator-settings = [03 05 03 00 20 07 01]; + qcom,platform-lane-config = [02 00 00 00 20 00 00 01 88 + 02 00 00 00 40 00 00 01 88 + 02 00 00 40 20 00 00 01 88 + 02 00 00 40 00 00 00 01 88 + 00 00 00 80 00 00 00 01 88]; + + qcom,mmss-ulp-clamp-ctrl-offset = <0x14>; + qcom,mmss-phyreset-ctrl-offset = <0x108>; + + qcom,core-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,core-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + }; + + qcom,ctrl-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,ctrl-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdda"; + qcom,supply-min-voltage = <1250000>; + qcom,supply-max-voltage = <1250000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,ctrl-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <20>; + }; + + qcom,ctrl-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <1000000>; + qcom,supply-max-voltage = <1000000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <20>; + }; + }; + }; + + qcom,mdss_wb_panel { + compatible = "qcom,mdss_wb"; + qcom,mdss_pan_res = <1920 1080>; + qcom,mdss_pan_bpp = <24>; + qcom,mdss-fb-map = <&mdss_fb2>; + }; + + mdss_hdmi_tx: qcom,hdmi_tx@fd9a8000{ + cell-index = <0>; + compatible = "qcom,hdmi-tx"; + + reg = <0xfd9a8000 0x38C>, + <0xfc4b8000 0x6fff>; + reg-names = "core_physical", "qfprom_physical"; + + hpd-gdsc-supply = <&gdsc_mdss>; + core-vdda-supply = <&pm8994_l12>; + core-vcc-supply = <&pm8994_s4>; + + qcom,supply-names = "hpd-gdsc", "core-vdda", "core-vcc"; + qcom,min-voltage-level = <0 1800000 1800000>; + qcom,max-voltage-level = <0 1800000 1800000>; + qcom,enable-load = <0 300000 0>; + qcom,disable-load = <0 0 0>; + + clocks = <&clock_mmss clk_mdss_mdp_clk>, + <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mdss_hdmi_clk>, + <&clock_mmss clk_mdss_hdmi_ahb_clk>, + <&clock_mmss clk_mdss_extpclk_clk>; + clock-names = "mdp_core_clk", "iface_clk", + "core_clk", "alt_iface_clk", "extp_clk"; + + qcom,hdmi-tx-hpd = <&pm8994_mpps 4 0>; + qcom,mdss-fb-map = <&mdss_fb1>; + + qcom,msm-hdmi-audio-rx { + compatible = "qcom,msm-hdmi-audio-codec-rx"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-mtp.dts b/arch/arm64/boot/dts/qcom/msm8994-mtp.dts new file mode 100644 index 00000000000..139e633df00 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-mtp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8994.dtsi" +#include "msm8994-pinctrl.dtsi" +#include "msm8994-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8994 MTP"; + compatible = "qcom,msm8994-mtp", "qcom,msm8994", "qcom,mtp"; + qcom,board-id = <8 0>; +};
\ No newline at end of file diff --git a/arch/arm64/boot/dts/qcom/msm8994-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8994-mtp.dtsi new file mode 100644 index 00000000000..0a866178279 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-mtp.dtsi @@ -0,0 +1,669 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8994-pinctrl.dtsi" +#include "msm8994-camera-sensor-mtp.dtsi" + +/ { + bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-pa-supply = <&bt_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,nonremovable; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000 384000000>; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &pm8994_gpios 8 0x3>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&pm8994_gpios 8 0x1>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "dsi-panel-sharp-dualmipi0-wqxga-video.dtsi" +#include "dsi-panel-sharp-dualmipi1-wqxga-video.dtsi" +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&pmx_mdss { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 78>; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video_0>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + qcom,dsi-panel-bias-vreg; + qcom,platform-reset-gpio = <&msm_gpio 78 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video_1>; +}; + +&dsi_dual_sharp_video_0 { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; +}; + +&pmx_hdmi_cec { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 31>; +}; + +&pmx_hdmi_ddc { + qcom,num-grp-pins = <2>; + qcom,pins = <&gp 32>, <&gp 33>; +}; + +&pmx_hdmi_hpd { + qcom,num-grp-pins = <1>; + qcom,pins = <&gp 34>; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", + "hdmi_cec_active", "hdmi_active", + "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&soc { + i2c@f9924000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&msm_gpio>; + interrupts = <61 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&msm_gpio 60 0x00>; + synaptics,irq-gpio = <&msm_gpio 61 0x2008>; + synaptics,disable-gpios; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + i2c@f9928000 { /* BLSP1 QUP6 */ + status = "ok"; + nfc-nci@e { + compatible = "qcom,nfc-nci"; + reg = <0x0e>; + qcom,irq-gpio = <&msm_gpio 29 0x00>; + qcom,dis-gpio = <&msm_gpio 30 0x00>; + qcom,clk-src = "BBCLK2"; + interrupt-parent = <&msm_gpio>; + interrupts = <29 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active","nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + qcom,clk-gpio = <&pm8994_gpios 10 0>; + qcom,pwr-req-gpio = <&pm8994_gpios 7 0>; + clocks = <&clock_rpm clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 3 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + + }; + + sound { + qcom,model = "msm8994-tomtom-mtp-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "LDO_H", "MCLK", + "AIF4 MAD", "MCLK", + "ultrasound amp", "LINEOUT1", + "ultrasound amp", "LINEOUT3", + "AMIC1", "MIC BIAS1 Internal1", + "MIC BIAS1 Internal1", "Handset Mic", + "AMIC2", "MIC BIAS2 External", + "MIC BIAS2 External", "Headset Mic", + "AMIC3", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCRight Headset Mic", + "AMIC4", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCLeft Headset Mic", + "AMIC6", "MIC BIAS4 External", + "MIC BIAS4 External", "Analog Mic6", + "DMIC1", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic1", + "DMIC2", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic2", + "DMIC3", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic3", + "DMIC4", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic4", + "DMIC5", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic5", + "DMIC6", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic6"; + + qcom,us-euro-gpios = <&pm8994_mpps 2 0>; + qcom,cdc-micbias2-headset-only; + qcom,mbhc-audio-jack-type = "6-pole-jack"; + qcom,ext-ult-spk-amp-gpio = <&pmi8994_gpios 1 0>; + qcom,hdmi-audio-rx; + }; +}; + +&pm8994_gpios { + gpio@c200 { /* GPIO 3 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + }; + + gpio@c600 { /* GPIO 7 */ + /* NFC pwr request */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c900 { /* GPIO 10 */ + /* NFC clk request */ + qcom,mode = <0>; /* QPNP_PIN_MODE_DIG_IN */ + qcom,pull = <5>; /* QPNP_PIN_PULL_NO */ + qcom,vin-sel = <2>; /* QPNP_PIN_VIN2 */ + qcom,src-sel = <2>; /* QPNP_PIN_SEL_FUNC_1 */ + qcom,master-en = <1>; + }; + + gpio@c700 { /* GPIO 8 */ + qcom,mode = <0>; /* Digital in */ + qcom,pull = <0>; /* PULL up 30uA */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output high */ + qcom,vin-sel = <2>; /* Logical 1 voltage value 1.8v */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@c800 { /* GPIO 9 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + }; + + gpio@d100 { /* GPIO 18 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + gpio@d200 { /* GPIO 19 */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + }; +}; + +&pm8994_mpps { + mpp@a000 { /* MPP 1 */ + }; + + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + }; +}; + +&slim_msm { + tomtom_codec { + cdc-vdd-spkdrv-supply = <&pmi8994_boost>; + qcom,cdc-vdd-spkdrv-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-current = <600000>; + + cdc-vdd-spkdrv-2-supply = <&pmi8994_boost>; + qcom,cdc-vdd-spkdrv-2-voltage = <5000000 5000000>; + qcom,cdc-vdd-spkdrv-2-current = <600000>; + + qcom,cdc-on-demand-supplies = "cdc-vdd-spkdrv", + "cdc-vdd-spkdrv-2"; + }; +}; + +&pmi8994_gpios { + gpio@c000 { /* GPIO 1 Ultrasound PA EN */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + }; +}; + +&pmi8994_mpps { + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; + qcom,master-en = <1>; + }; +}; + +&blsp2_uart2 { + status = "ok"; +}; + +&blsp1_uart2 { + status= "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_sleep>; +}; + +&usb3 { + status = "ok"; +}; + +&hsphy0 { + status = "ok"; +}; + +&ssphy0 { + status = "ok"; +}; + +&qcom_crypto { + status = "okay"; +}; + +&qcom_cedev { + status = "okay"; +}; + +&i2c_5 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_rst_suspend>; + silabs,reset-gpio = <&msm_gpio 62 0>; + silabs,int-gpio = <&msm_gpio 9 0>; + silabs,status-gpio = <&msm_gpio 11 0>; + interrupt-parent = <&msm_gpio>; + interrupts = <9 2>; + interrupt-names = "silabs_fm_int"; + }; +}; + +/{ + mtp_batterydata: qcom,battery-data { + #include "batterydata-mtp-3000mah.dtsi" + }; +}; + +&pmi8994_fg { + qcom,battery-data = <&mtp_batterydata>; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&pmi8994_charger { + qcom,dc-psy-type = "Wireless"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/msm8994-pinctrl.dtsi new file mode 100644 index 00000000000..eb43b581027 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-pinctrl.dtsi @@ -0,0 +1,1223 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tlmm_pinmux: pinctrl@fd510000 { + compatible = "qcom,msm-tlmm-8994", "qcom,msm-tlmm-8974"; + reg = <0xfd510000 0x4000>; + interrupts = <0 208 0>; + + /*General purpose pins*/ + gp: gp { + qcom,num-pins = <146>; + #qcom,pin-cells = <1>; + + msm_gpio: msm_gpio { + compatible = "qcom,msm-tlmm-gp"; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + qcom,direct-connect-irqs = <8>; + num_irqs = <146>; + }; + }; + + pmx-uartconsole { + qcom,pins = <&gp 4>, <&gp 5>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <2>; + label = "uart-console"; + + uart_console_sleep: uart-console { + drive-strength = <2>; + bias-pull-down; + }; + }; + + blsp2_uart2_active { + qcom,pins = <&gp 45>, <&gp 46>, <&gp 47>, <&gp 48>; + qcom,num-grp-pins = <4>; + qcom,pin-func = <2>; + label = "blsp2_uart2_active"; + hsuart_active: default { + drive-strength = <16>; + bias-disable; + }; + }; + + blsp2_uart2_sleep { + qcom,pins = <&gp 45>, <&gp 46>, <&gp 47>, <&gp 48>; + qcom,num-grp-pins = <4>; + qcom,pin-func = <0>; + label = "blsp2_uart2_sleep"; + hsuart_sleep: sleep { + drive-strength = <2>; + bias-disable; + }; + }; + + pmx_mdss: pmx_mdss { + label = "mdss-pins"; + qcom,pin-func = <0>; + mdss_dsi_active: active { + drive-strength = <8>; /* 8 mA */ + bias-disable = <0>; /* no pull */ + output-high; + }; + mdss_dsi_suspend: suspend { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + output-low; + }; + }; + + pmx_mdss_te: pmx_mdss_te { + label = "mdss-te-pins"; + qcom,pin-func = <1>; + mdss_te_active: active { + drive-strength = <2>; /* 8 mA */ + bias-pull-down = <0>; /* pull down*/ + input-debounce = <0>; + }; + mdss_te_suspend: suspend { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + input-debounce = <0>; + }; + }; + + pmx_hdmi_cec: pmx_hdmi_cec { + qcom,pin-func = <1>; + label = "hdmi-cec-pins"; + mdss_hdmi_cec_active: cec_active { + drive-strength = <2>; + bias-pull-up; + }; + mdss_hdmi_cec_suspend: cec_suspend { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pmx_hdmi_ddc: pmx_hdmi_ddc { + qcom,pin-func = <1>; + label = "hdmi-ddc-pins"; + mdss_hdmi_ddc_active: ddc_active { + drive-strength = <2>; + bias-pull-up; + }; + mdss_hdmi_ddc_suspend: ddc_suspend { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pmx_hdmi_hpd: pmx_hdmi_hpd { + qcom,pin-func = <1>; + label = "hdmi-hpd-pin"; + mdss_hdmi_hpd_active: hpd_active { + drive-strength = <16>; + bias-pull-down; + }; + mdss_hdmi_hpd_suspend: hpd_suspend { + drive-strength = <2>; + bias-pull-down; + }; + }; + + spi_0 { + qcom,pins = <&gp 0>, <&gp 1>, <&gp 3>; + qcom,num-grp-pins = <3>; + qcom,pin-func = <1>; + label = "spi_0"; + + spi_0_active: spi_0_active { + drive-strength = <6>; + bias-pull-up; + }; + + spi_0_sleep: spi_0_sleep { + drive-strength = <6>; + bias-pull-up; + }; + }; + + /* SDC pin type */ + sdc: sdc { + /* 0-3 for sdc1 4-6 for sdc2 */ + qcom,num-pins = <7>; + /* Order of pins */ + /* SDC1: CLK -> 0, CMD -> 1, DATA -> 2, RCLK -> 3 */ + /* SDC2: CLK -> 4, CMD -> 5, DATA -> 6 */ + #qcom,pin-cells = <1>; + }; + + pmx_sdc1_clk { + qcom,pins = <&sdc 0>; + qcom,num-grp-pins = <1>; + label = "sdc1-clk"; + sdc1_clk_on: clk_on { + bias-disable; /* NO pull */ + drive-strength = <6>; /* 6 MA */ + }; + sdc1_clk_off: clk_off { + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_sdc1_cmd { + qcom,pins = <&sdc 1>; + qcom,num-grp-pins = <1>; + label = "sdc1-cmd"; + sdc1_cmd_on: cmd_on { + bias-pull-up; /* pull up */ + drive-strength = <6>; /* 6 MA */ + }; + sdc1_cmd_off: cmd_off { + bias-pull-up = <0x3>; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_sdc1_data { + qcom,pins = <&sdc 2>; + qcom,num-grp-pins = <1>; + label = "sdc1-data"; + sdc1_data_on: data_on { + bias-pull-up; /* pull up */ + drive-strength = <6>; /* 6 MA */ + }; + sdc1_data_off: data_off { + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_sdc1_rclk { + qcom,pins = <&sdc 3>; + qcom,num-grp-pins = <1>; + label = "sdc1-rclk"; + sdc1_rclk_on: rclk_on { + bias-pull-down; /* pull down */ + }; + sdc1_rclk_off: rclk_off { + bias-pull-down; /* pull down */ + }; + }; + + pmx_sdc2_clk { + qcom,pins = <&sdc 4>; + qcom,num-grp-pins = <1>; + label = "sdc2-clk"; + sdc2_clk_on: clk_on { + bias-disable; /* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + sdc2_clk_off: clk_off { + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_sdc2_cmd { + qcom,pins = <&sdc 5>; + qcom,num-grp-pins = <1>; + label = "sdc2-cmd"; + sdc2_cmd_on: cmd_on { + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + sdc2_cmd_off: cmd_off { + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_sdc2_data { + qcom,pins = <&sdc 6>; + qcom,num-grp-pins = <1>; + label = "sdc2-data"; + sdc2_data_on: data_on { + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + sdc2_data_off: data_off { + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_i2c_2 { + qcom,pins = <&gp 6>, <&gp 7>; /* SDA, SCL */ + qcom,num-grp-pins = <2>; + qcom,pin-func = <3>; + label = "pmx_i2c_2"; + + i2c_2_active: i2c_2_active { + drive-strength = <2>; + bias-disable; + }; + + i2c_2_sleep: i2c_2_sleep { + drive-strength = <2>; + bias-disable; + }; + }; + + pmx_i2c_5 { + qcom,pins = <&gp 83>, <&gp 84>; /* SDA, SCL */ + qcom,num-grp-pins = <2>; + qcom,pin-func = <3>; + label = "pmx_i2c_5"; + + i2c_5_active: i2c_5_active { + drive-strength = <2>; + bias-disable; + }; + + i2c_5_sleep: i2c_5_sleep { + drive-strength = <2>; + bias-disable; + }; + }; + + pmx_fm_int_active { + qcom,pins = <&gp 9>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_fm_int_active"; + + fm_int_active: fm_int_active { + drive-strength = <16>; + bias-pull-up; + }; + }; + + pmx_fm_int_suspend { + qcom,pins = <&gp 9>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_fm_int_suspend"; + + fm_int_suspend: fm_int_suspend { + drive-strength = <16>; + bias-pull-up; + }; + }; + + pmx_fm_rst_active { + qcom,pins = <&gp 62>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_fm_rst_active"; + + fm_rst_active: fm_rst_active { + drive-strength = <16>; + bias-pull-down; + }; + }; + + pmx_fm_rst_suspend { + qcom,pins = <&gp 62>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_fm_rst_suspend"; + + fm_rst_suspend: fm_rst_suspend { + drive-strength = <16>; + bias-pull-down; + }; + }; + + pmx_i2c_6 { + qcom,pins = <&gp 28>, <&gp 27>; /* SDA, SCL */ + qcom,num-grp-pins = <2>; + qcom,pin-func = <3>; + label = "pmx_i2c_6"; + + i2c_6_active: i2c_6_active { + drive-strength = <2>; + bias-disable; + }; + + i2c_6_sleep: i2c_6_sleep { + drive-strength = <2>; + bias-disable; + }; + }; + + pmx_rd_nfc_int{ + qcom,pins = <&gp 29>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_nfc_int"; + + nfc_int_active: active { + drive-strength = <6>; + bias-pull-up; + }; + + nfc_int_suspend: suspend { + drive-strength = <6>; + bias-pull-up; + }; + }; + + pmx_nfc_reset{ + qcom,pins = <&gp 30>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_nfc_disable"; + + nfc_disable_active: active { + drive-strength = <6>; + bias-pull-up; + }; + + nfc_disable_suspend: suspend { + drive-strength = <6>; + bias-disable; + }; + }; + + pmx_ts { + qcom,pins = <&gp 60>, <&gp 61>; + qcom,pin-func = <0>; + qcom,num-grp-pins = <2>; + label = "pmx_ts"; + + ts_active: ts_active { + drive-strength = <16>; + bias-pull-up; + }; + + ts_suspend: ts_suspend { + drive-strength = <16>; + bias-disable; + }; + }; + + /* CoreSight */ + tpiu_seta_1 { + qcom,pins = <&gp 27>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <5>; + label = "tpiu-seta-1"; + seta_1: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_2 { + qcom,pins = <&gp 28>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <4>; + label = "tpiu-seta-2"; + seta_2: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_3 { + qcom,pins = <&gp 53>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <10>; + label = "tpiu-seta-3"; + seta_3: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_4 { + qcom,pins = <&gp 54>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <11>; + label = "tpiu-seta-4"; + seta_4: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_5 { + qcom,pins = <&gp 63>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <9>; + label = "tpiu-seta-5"; + seta_5: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_6 { + qcom,pins = <&gp 64>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-seta-6"; + seta_6: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_7 { + qcom,pins = <&gp 65>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-seta-7"; + seta_7: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_8 { + qcom,pins = <&gp 66>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <8>; + label = "tpiu-seta-8"; + seta_8: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_9 { + qcom,pins = <&gp 67>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <8>; + label = "tpiu-seta-9"; + seta_9: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_10 { + qcom,pins = <&gp 74>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <8>; + label = "tpiu-seta-10"; + seta_10: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_11 { + qcom,pins = <&gp 75>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-seta-11"; + seta_11: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_12 { + qcom,pins = <&gp 76>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-seta-12"; + seta_12: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_13 { + qcom,pins = <&gp 77>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-seta-13"; + seta_13: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_14 { + qcom,pins = <&gp 85>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-seta-14"; + seta_14: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_15 { + qcom,pins = <&gp 86>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-seta-15"; + seta_15: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_16 { + qcom,pins = <&gp 87>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <5>; + label = "tpiu-seta-16"; + seta_16: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_17 { + qcom,pins = <&gp 89>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <3>; + label = "tpiu-seta-17"; + seta_17: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_seta_18 { + qcom,pins = <&gp 90>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <3>; + label = "tpiu-seta-18"; + seta_18: seta { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_1 { + qcom,pins = <&gp 13>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <4>; + label = "tpiu-setb-1"; + setb_1: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_2 { + qcom,pins = <&gp 14>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <4>; + label = "tpiu-setb-2"; + setb_2: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_3 { + qcom,pins = <&gp 15>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <3>; + label = "tpiu-setb-3"; + setb_3: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_4 { + qcom,pins = <&gp 16>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <3>; + label = "tpiu-setb-4"; + setb_4: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_5 { + qcom,pins = <&gp 17>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-setb-5"; + setb_5: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_6 { + qcom,pins = <&gp 18>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-setb-6"; + setb_6: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_7 { + qcom,pins = <&gp 19>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-setb-7"; + setb_7: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_8 { + qcom,pins = <&gp 21>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-setb-8"; + setb_8: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_9 { + qcom,pins = <&gp 22>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <6>; + label = "tpiu-setb-9"; + setb_9: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_10 { + qcom,pins = <&gp 23>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-10"; + setb_10: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_11 { + qcom,pins = <&gp 25>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <8>; + label = "tpiu-setb-11"; + setb_11: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_12 { + qcom,pins = <&gp 26>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-12"; + setb_12: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_13 { + qcom,pins = <&gp 57>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-13"; + setb_13: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_14 { + qcom,pins = <&gp 58>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-14"; + setb_14: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_15 { + qcom,pins = <&gp 91>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-15"; + setb_15: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_16 { + qcom,pins = <&gp 92>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <5>; + label = "tpiu-setb-16"; + setb_16: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_17 { + qcom,pins = <&gp 93>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-17"; + setb_17: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + tpiu_setb_18 { + qcom,pins = <&gp 94>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <7>; + label = "tpiu-setb-18"; + setb_18: setb { + drive-strength = <16>; + bias-disable; + }; + }; + + cti_trigout_a { + qcom,pins = <&gp 56>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <9>; + label = "cti-trigout-a"; + trigout_a: trigout_a { + drive-strength = <2>; + bias-disable; + }; + }; + + cti_trigout_c { + qcom,pins = <&gp 41>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <4>; + label = "cti-trigout-c"; + trigout_c: trigout_c { + drive-strength = <2>; + bias-disable; + }; + }; + + cci0_active { + /* CLK, DATA */ + qcom,pins = <&gp 17>, <&gp 18>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <1>; + label = "cci0-active"; + /* active state */ + cci0_active: cci0_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci0_suspend { + /* CLK, DATA */ + qcom,pins = <&gp 17>, <&gp 18>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <0>; + label = "cci0-suspend"; + /*suspended state */ + cci0_suspend: cci0_suspend { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_active { + /* CLK, DATA */ + qcom,pins = <&gp 19>, <&gp 20>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <1>; + label = "cci1-active"; + /* active state */ + cci1_active: cci1_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_suspend { + /* CLK, DATA */ + qcom,pins = <&gp 19>, <&gp 20>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <0>; + label = "cci1-suspend"; + /*suspended state */ + cci1_suspend: cci1_suspend { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk0_active { + /* MCLK0 */ + qcom,pins = <&gp 13>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk0_active"; + /* active state */ + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk0_suspend { + /* MCLK0 */ + qcom,pins = <&gp 13>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk0_suspend"; + /*suspended state */ + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + + cam_sensor_rear_active { + /* RESET, STANDBY */ + qcom,pins = <&gp 92>, <&gp 91>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_rear_active"; + /* active state */ + cam_sensor_rear_active: cam_sensor_rear_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_rear_suspend { + /* RESET, STANDBY */ + qcom,pins = <&gp 92>, <&gp 91>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_rear_suspend"; + /*suspended state */ + cam_sensor_rear_suspend: cam_sensor_rear_suspend { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk1_active { + /* MCLK2 */ + qcom,pins = <&gp 14>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk1_active"; + /* active state */ + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk1_suspend { + /* MCLK2 */ + qcom,pins = <&gp 14>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk1_suspend"; + /* suspend state */ + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + + cam_sensor_rear2_active { + /* RESET, STANDBY */ + qcom,pins = <&gp 94>, <&gp 93>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_rear2_active"; + /* active state */ + cam_sensor_rear2_active: cam_sensor_rear2_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_rear2_suspend { + /* RESET, STANDBY */ + qcom,pins = <&gp 94>, <&gp 93>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_rear2_suspend"; + /*suspended state */ + cam_sensor_rear2_suspend: cam_sensor_rear2_suspend { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk2_active { + /* MCLK2 */ + qcom,pins = <&gp 15>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk2_active"; + /* active state */ + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_mclk2_suspend { + /* MCLK2 */ + qcom,pins = <&gp 15>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "cam_sensor_mclk2_suspend"; + /* suspend state */ + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + + cam_sensor_front_active { + /* RESET, STANDBY */ + qcom,pins = <&gp 104>, <&gp 105>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_front_active"; + /* active state */ + cam_sensor_front_active: cam_sensor_front_active { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cam_sensor_front_suspend { + /* RESET, STANDBY */ + qcom,pins = <&gp 104>, <&gp 105>; + qcom,num-grp-pins = <2>; + label = "cam_sensor_front_suspend"; + /*suspended state */ + cam_sensor_front_suspend: cam_sensor_front_suspend { + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cnss_pmux: cnss_pmux { + qcom,pins = <&gp 113>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <0>; + label = "cnss_pins"; + cnss_default: default { + drive-strength = <16>; + bias-pull-down; + }; + }; + + pcie0_clkreq { + qcom,pins = <&gp 54>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <2>; + label = "pcie0-clkreq"; + /* default state */ + pcie0_clkreq_default: pcie0_clkreq_default { + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie0_perst { + qcom,pins = <&gp 53>; + qcom,num-grp-pins = <1>; + label = "pcie0-perst"; + /* default state */ + pcie0_perst_default: pcie0_perst_default { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie0_wake { + qcom,pins = <&gp 55>; + qcom,num-grp-pins = <1>; + label = "pcie0-wake"; + /* default state */ + pcie0_wake_default: pcie0_wake_default { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie1_clkreq { + qcom,pins = <&gp 36>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <2>; + label = "pcie1-clkreq"; + /* default state */ + pcie1_clkreq_default: pcie1_clkreq_default { + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie1_perst { + qcom,pins = <&gp 35>; + qcom,num-grp-pins = <1>; + label = "pcie1-perst"; + /* default state */ + pcie1_perst_default: pcie1_perst_default { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie1_wake { + qcom,pins = <&gp 37>; + qcom,num-grp-pins = <1>; + label = "pcie1-wake"; + /* default state */ + pcie1_wake_default: pcie1_wake_default { + drive-strength = <2>; + bias-pull-down; + }; + }; + + pmx_sec_aux_pcm { + qcom,pins = <&gp 79>, <&gp 80>, <&gp 82>; + qcom,num-grp-pins = <3>; + qcom,pin-func = <1>; + label = "sec_aux_pcm"; + sec_aux_pcm_sleep: sec_aux_pcm_sleep { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + sec_aux_pcm_active: sec_aux_pcm_active { + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + + pmx_sec_aux_pcm_din { + qcom,pins = <&gp 81>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "sec_aux_pcm_din"; + sec_aux_pcm_din_sleep: sec_aux_pcm_din_sleep { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + sec_aux_pcm_din_active: sec_aux_pcm_din_active { + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + + pmx_pri_mi2s { + qcom,pins = <&gp 65>, <&gp 66>; + qcom,num-grp-pins = <2>; + qcom,pin-func = <1>; + label = "pri_mi2s"; + pri_mi2s_sleep: pri_mi2s_sleep { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + pri_mi2s_active: pri_mi2s_active { + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + + pmx_pri_mi2s_sd0 { + qcom,pins = <&gp 67>; + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "pri_mi2s_sd0"; + pri_mi2s_sd0_sleep: pri_mi2s_sd0_sleep { + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + pri_mi2s_sd0_active: pri_mi2s_sd0_active { + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + + tsif0_signals { + qcom,pins = <&gp 89>, /* TSIF0 CLK */ + <&gp 90>, /* TSIF0 Enable */ + <&gp 91>; /* TSIF0 DATA */ + qcom,num-grp-pins = <3>; + qcom,pin-func = <1>; + label = "tsif0-signals"; + tsif0_signals_active: tsif0_signals_active { + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + /* sync signal is only used if configured to mode-2 */ + tsif0_sync { + qcom,pins = <&gp 110>; /* TSIF0 SYNC */ + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "tsif0-sync"; + tsif0_sync_active: tsif0_sync_active { + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + tsif1_signals { + qcom,pins = <&gp 93>, /* TSIF1 CLK */ + <&gp 94>, /* TSIF1 Enable */ + <&gp 95>; /* TSIF1 DATA */ + qcom,num-grp-pins = <3>; + qcom,pin-func = <1>; + label = "tsif1-signals"; + tsif1_signals_active: tsif1_signals_active { + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + /* sync signal is only used if configured to mode-2 */ + tsif1_sync { + qcom,pins = <&gp 96>; /* TSIF1 SYNC */ + qcom,num-grp-pins = <1>; + qcom,pin-func = <1>; + label = "tsif1-sync"; + tsif1_sync_active: tsif1_sync_active { + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-pm.dtsi b/arch/arm64/boot/dts/qcom/msm8994-pm.dtsi new file mode 100644 index 00000000000..3cf05711747 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-pm.dtsi @@ -0,0 +1,588 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,spm@f9065000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf9065000 0x1000>; + qcom,name = "system-cci"; /* CCI SAW */ + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3>; + qcom,vctl-timeout-us = <50>; + qcom,vctl-port = <0x0>; + qcom,phase-port = <0x1>; + qcom,saw2-pmic-data0 = <0x00030000>; /* VDD_APC0 off */ + qcom,saw2-pmic-data1 = <0x02030080>; /* VDD_APC0 on */ + qcom,pfm-port = <0x2>; + qcom,saw2-spm-cmd-ret = [00 03 00 0f]; + qcom,saw2-spm-cmd-pc = [00 60 70 50 01 07 11 3f 3f 3f 3f 50 00 + 60 70 0f]; + }; + + cluster0_spm: qcom,spm@f9012000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf9012000 0x1000>, + <0xf900D210 0x8>; + qcom,name = "a53-l2"; /* A53 L2 SAW */ + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0x3c100c1c>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-ret = [03 2f 1b 0f]; + qcom,saw2-spm-cmd-pc = [08 00 30 50 18 7b 26 6b 16 6b c0 e0 d0 + 1f 18 03 2f 1b 18 7b d0 2b e0 3b c0 16 6b 26 6b 18 00 + 30 50 08 0f]; + }; + + cluster1_spm: qcom,spm@f9013000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf9013000 0x1000>, + <0xf900f210 0x8>; + qcom,name = "a57-l2"; /* A57 L2 SAW */ + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0x3c100c30>; + qcom,saw2-spm-ctl = <0x0>; + qcom,cpu-vctl-list = <&CPU4 &CPU5 &CPU6 &CPU7>; + qcom,vctl-timeout-us = <50>; + qcom,vctl-port = <0x0>; + qcom,phase-port = <0x1>; + qcom,saw2-pmic-data0 = <0x00030000>; /* VDD_APC1 off */ + qcom,saw2-pmic-data1 = <0x02030080>; /* VDD_APC1 on */ + qcom,pfm-port = <0x2>; + qcom,saw2-spm-cmd-ret = [03 2f 1b 0f]; + qcom,saw2-spm-cmd-pc = [08 00 30 50 18 7b 26 6b 16 6b c0 e0 d0 + 18 b0 01 03 2f 1b 11 b0 3f 3f 3f 3f 18 7b d0 2b e0 3b + c0 16 6b 26 6b 18 00 30 50 08 0f]; + }; + + qcom,spm@f9089000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf9089000 0x1000>, + <0xf908b060 0x8>; + qcom,name = "cpu0"; + qcom,cpu = <&CPU0>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f9099000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf9099000 0x1000>, + <0xf909b060 0x8>; + qcom,name = "cpu1"; + qcom,cpu = <&CPU1>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90a9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90a9000 0x1000>, + <0xf90ab060 0x8>; + qcom,name = "cpu2"; + qcom,cpu = <&CPU2>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90b9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90b9000 0x1000>, + <0xf90bb060 0x8>; + qcom,name = "cpu3"; + qcom,cpu = <&CPU3>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90c9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90c9000 0x1000>, + <0xf90cb060 0x8>; + qcom,name = "cpu4"; + qcom,cpu = <&CPU4>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90d9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90d9000 0x1000>, + <0xf90db060 0x8>; + qcom,name = "cpu5"; + qcom,cpu = <&CPU5>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90e9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90e9000 0x1000>, + <0xf90eb060 0x8>; + qcom,name = "cpu6"; + qcom,cpu = <&CPU6>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,spm@f90f9000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf90f9000 0x1000>, + <0xf90fb060 0x8>; + qcom,name = "cpu7"; + qcom,cpu = <&CPU7>; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x01>; + qcom,saw2-spm-dly = <0X3c100c00>; + qcom,saw2-spm-ctl = <0x0>; + qcom,saw2-spm-cmd-wfi = [03 2f 0b 0f]; + qcom,saw2-spm-cmd-spc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 + 1b 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 + 40 30 0f]; + qcom,saw2-spm-cmd-pc = [00 40 30 50 2b 14 70 24 80 e0 a0 92 1b + 50 03 2f 0b 50 2b 92 1b e2 1b a0 80 24 14 70 50 00 40 + 30 0f]; + }; + + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cluster@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "system"; + qcom,spm-device-names = "cci"; + qcom,default-level = <0>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "system-cci-retention"; + qcom,spm-cci-mode = "retention"; + qcom,latency-us = <100>; + qcom,ss-power = <1000>; + qcom,energy-overhead = <300000>; + qcom,time-overhead = <100>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "system-cci-pc"; + qcom,spm-cci-mode = "pc"; + qcom,latency-us = <30000>; + qcom,ss-power = <83>; + qcom,energy-overhead = <2274420>; + qcom,time-overhead = <6605>; + qcom,min-child-idx = <1>; + qcom,notify-rpm; + }; + + qcom,pm-cluster@0{ + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "a53"; + qcom,spm-device-names = "l2"; + qcom,default-level=<0>; + qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "a53-l2-retention"; + qcom,spm-l2-mode = "retention"; + qcom,latency-us = <100>; + qcom,ss-power = <1000>; + qcom,energy-overhead = <300000>; + qcom,time-overhead = <100>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "a53-l2-pc"; + qcom,spm-l2-mode = "pc"; + qcom,latency-us = <30000>; + qcom,ss-power = <83>; + qcom,energy-overhead = <2274420>; + qcom,time-overhead = <6605>; + qcom,min-child-idx = <2>; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cpu-level@0 { + reg = <0>; + qcom,spm-cpu-mode = "wfi"; + qcom,latency-us = <1>; + qcom,ss-power = <715>; + qcom,energy-overhead = <17700>; + qcom,time-overhead = <2>; + }; + + qcom,pm-cpu-level@1 { + reg = <1>; + qcom,spm-cpu-mode = "standalone_pc"; + qcom,latency-us = <300>; + qcom,ss-power = <476>; + qcom,energy-overhead = <225300>; + qcom,time-overhead = <350>; + qcom,use-broadcast-timer; + }; + + qcom,pm-cpu-level@2 { + reg = <2>; + qcom,spm-cpu-mode = "pc"; + qcom,latency-us = <500>; + qcom,ss-power = <163>; + qcom,energy-overhead = <577736>; + qcom,time-overhead = <1000>; + qcom,use-broadcast-timer; + }; + }; + }; + + qcom,pm-cluster@1{ + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + label = "a57"; + qcom,spm-device-names = "l2"; + qcom,default-level=<0>; + qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "a57-l2-retention"; + qcom,spm-l2-mode = "retention"; + qcom,latency-us = <100>; + qcom,ss-power = <1000>; + qcom,energy-overhead = <300000>; + qcom,time-overhead = <100>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "a57-l2-pc"; + qcom,spm-l2-mode = "pc"; + qcom,latency-us = <30000>; + qcom,ss-power = <83>; + qcom,energy-overhead = <2274420>; + qcom,time-overhead = <6605>; + qcom,min-child-idx = <2>; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cpu-level@0 { + reg = <0>; + qcom,spm-cpu-mode = "wfi"; + qcom,latency-us = <1>; + qcom,ss-power = <715>; + qcom,energy-overhead = <17700>; + qcom,time-overhead = <2>; + }; + + qcom,pm-cpu-level@1 { + reg = <1>; + qcom,spm-cpu-mode = "standalone_pc"; + qcom,latency-us = <300>; + qcom,ss-power = <476>; + qcom,energy-overhead = <225300>; + qcom,time-overhead = <350>; + qcom,use-broadcast-timer; + }; + + qcom,pm-cpu-level@2 { + reg = <2>; + qcom,spm-cpu-mode = "pc"; + qcom,latency-us = <500>; + qcom,ss-power = <163>; + qcom,energy-overhead = <577736>; + qcom,time-overhead = <1000>; + qcom,use-broadcast-timer; + }; + }; + }; + }; + + }; + + qcom,mpm@fc4281d0 { + compatible = "qcom,mpm-v2"; + reg = <0xfc4281d0 0x1000>, /* MSM_RPM_MPM_BASE 4K */ + <0xf900f008 0x4>; /* MSM_APCS_GCC_BASE 4K */ + reg-names = "vmpm", "ipc"; + interrupts = <0 171 1>; + clocks = <&clock_rpm clk_cxo_lpm_clk>; + clock-names = "xo"; + + qcom,ipc-bit-offset = <1>; + + qcom,gic-parent = <&intc>; + qcom,gic-map = <2 216>, /* tsens_upper_lower_int */ + <47 165>, /* usb30_hs_phy_irq */ + <55 172>, /* usb1_hs_async_wakeup_irq */ + <62 222>, /* ee0_krait_hlos_spmi_periph_irq */ + <0xff 33>, /* APCC_qgicL2PerfMonIrptReq */ + <0xff 34>, /* APCC_qgicL2ErrorIrptReq */ + <0xff 35>, /* WDT_barkInt */ + <0xff 40>, /* qtimer_phy_irq */ + <0xff 56>, /* modem_watchdog */ + <0xff 57>, /* mss_to_apps_irq(0) */ + <0xff 58>, /* mss_to_apps_irq(1) */ + <0xff 59>, /* mss_to_apps_irq(2) */ + <0xff 60>, /* mss_to_apps_irq(3) */ + <0xff 61>, /* mss_a2_bam_irq */ + <0xff 70>, /* iommu_pmon_nonsecure_irq */ + <0xff 74>, /* osmmu_CIrpt[1] */ + <0xff 75>, /* osmmu_CIrpt[0] */ + <0xff 77>, /* osmmu_CIrpt[0] */ + <0xff 78>, /* osmmu_CIrpt[0] */ + <0xff 79>, /* osmmu_CIrpt[0] */ + <0xff 94>, /* osmmu_CIrpt[0] */ + <0xff 97>, /* iommu_nonsecure_irq */ + <0xff 99>, /* msm_iommu_pmon_nonsecure_irq */ + <0xff 102>, /* osmmu_CIrpt[1] */ + <0xff 105>, /* iommu_pmon_nonsecure_irq */ + <0xff 109>, /* ocmem_dm_nonsec_irq */ + <0xff 126>, /* bam_irq[0] */ + <0xff 155>, /* sdcc_irq[0] */ + <0xff 163>, /* usb30_ee1_irq */ + <0xff 170>, /* sdcc_pwr_cmd_irq */ + <0xff 173>, /* o_wcss_apss_smd_hi */ + <0xff 174>, /* o_wcss_apss_smd_med */ + <0xff 175>, /* o_wcss_apss_smd_low */ + <0xff 176>, /* o_wcss_apss_smsm_irq */ + <0xff 177>, /* o_wcss_apss_wlan_data_xfer_done */ + <0xff 178>, /* o_wcss_apss_wlan_rx_data_avail */ + <0xff 179>, /* o_wcss_apss_asic_intr */ + <0xff 181>, /* wcnss watchdog */ + <0xff 188>, /* lpass_irq_out_apcs(0) */ + <0xff 189>, /* lpass_irq_out_apcs(1) */ + <0xff 190>, /* lpass_irq_out_apcs(2) */ + <0xff 191>, /* lpass_irq_out_apcs(3) */ + <0xff 192>, /* lpass_irq_out_apcs(4) */ + <0xff 193>, /* lpass_irq_out_apcs(5) */ + <0xff 194>, /* lpass_irq_out_apcs(6) */ + <0xff 195>, /* lpass_irq_out_apcs(7) */ + <0xff 196>, /* lpass_irq_out_apcs(8) */ + <0xff 197>, /* lpass_irq_out_apcs(9) */ + <0xff 198>, /* coresight-tmc-etr interrupt */ + <0xff 200>, /* rpm_ipc(4) */ + <0xff 201>, /* rpm_ipc(5) */ + <0xff 202>, /* rpm_ipc(6) */ + <0xff 203>, /* rpm_ipc(7) */ + <0xff 204>, /* rpm_ipc(24) */ + <0xff 205>, /* rpm_ipc(25) */ + <0xff 206>, /* rpm_ipc(26) */ + <0xff 207>, /* rpm_ipc(27) */ + <0xff 211>, /* usb_dwc3_otg */ + <0xff 240>, /* summary_irq_kpss */ + <0xff 268>, /* bam_irq[1] */ + <0xff 270>, /* bam_irq[0] */ + <0xff 271>, /* bam_irq[0] */ + <0xff 333>; /* ipa */ + + qcom,gpio-parent = <&msm_gpio>; + qcom,gpio-map = <3 101>, + <4 1 >, + <5 5 >, + <6 9 >, + <7 18>, + <8 22>, + <9 26>, + <10 29>, + <11 34>, + <12 36>, + <13 37>, + <14 41>, + <15 42>, + <16 46>, + <17 50>, + <18 52>, + <19 53>, + <20 54>, + <21 55>, + <22 57>, + <23 40>, + <24 61>, + <25 64>, + <26 65>, + <27 66>, + <28 67>, + <29 72>, + <30 73>, + <31 74>, + <32 75>, + <33 76>, + <34 77>, + <35 82>, + <36 86>, + <37 90>, + <38 95>, + <39 96>, + <40 100>, + <41 71>, + <42 108>, + <43 111>, + <44 115>, + <45 127>; + + }; + + qcom,pm@fe87f664 { + compatible = "qcom,pm"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + reg = <0xfe87f664 0x40>; + clock-names = "cpu0_clk", "cpu1_clk", "cpu2_clk", + "cpu3_clk", "cpu4_clk", "cpu5_clk", + "cpu6_clk", "cpu7_clk", "l2_clk"; + clocks = <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_cci_clk>; + }; + + qcom,cpu-sleep-status@f908b008{ + compatible = "qcom,cpu-sleep-status"; + reg = <0xf908b008 0x100>; + qcom,cpu-alias-addr = <0x10000>; + qcom,sleep-status-mask= <0x80000>; + }; + + qcom,rpm-log@fc000000 { + compatible = "qcom,rpm-log"; + reg = <0xfc000000 0x4000>, + <0xfc190018 0x4>; + qcom,rpm-addr-phys = <0xfc000000>; + qcom,offset-version = <4>; + qcom,offset-page-buffer-addr = <36>; + qcom,offset-log-len = <40>; + qcom,offset-log-len-mask = <44>; + qcom,offset-page-indices = <56>; + }; + + qcom,rpm-stats@fc000000 { + compatible = "qcom,rpm-stats"; + reg = <0xfc000000 0x1000>, + <0xfc190014 0x4>; + reg-names = "phys_addr_base", "offset"; + qcom,sleep-stats-version = <2>; + }; + + qcom,rpm-rbcpr-stats@fc000000 { + compatible = "qcom,rpmrbcpr-stats"; + reg = <0xfc000000 0x1a0000>; + qcom,start-offset = <0x190010>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm8994-regulator.dtsi new file mode 100644 index 00000000000..6ec57b979e8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-regulator.dtsi @@ -0,0 +1,647 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&rpm_bus { + /* PM8994 S1 + S6 = 2 phase VDD_CX supply */ + rpm-regulator-smpa1 { + status = "okay"; + pm8994_s1_corner: regulator-s1-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8994_s1_floor_corner: regulator-s1-floor-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_floor_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-floor-corner; + qcom,always-send-voltage; + }; + + pm8994_s1_corner_ao: regulator-s1-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + }; + + /* PM8994 S2 + S12 = 2 phase VDD_MX supply */ + rpm-regulator-smpa2 { + status = "okay"; + pm8994_s2_corner: regulator-s2-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8994_s2_corner_ao: regulator-s2-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + }; + + rpm-regulator-smpa3 { + status = "okay"; + pm8994_s3: regulator-s3 { + regulator-min-microvolt = <1300000>; + regulator-max-microvolt = <1300000>; + qcom,init-voltage = <1300000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa4 { + status = "okay"; + pm8994_s4: regulator-s4 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa5 { + status = "okay"; + pm8994_s5: regulator-s5 { + regulator-min-microvolt = <2150000>; + regulator-max-microvolt = <2150000>; + qcom,init-voltage = <2150000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa7 { + status = "okay"; + pm8994_s7: regulator-s7 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa1 { + status = "okay"; + pm8994_l1: regulator-l1 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa2 { + status = "okay"; + pm8994_l2: regulator-l2 { + regulator-min-microvolt = <1250000>; + regulator-max-microvolt = <1250000>; + qcom,init-voltage = <1250000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa3 { + status = "okay"; + pm8994_l3: regulator-l3 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa4 { + status = "okay"; + pm8994_l4: regulator-l4 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1225000>; + qcom,init-voltage = <1225000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa6 { + status = "okay"; + pm8994_l6: regulator-l6 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa8 { + status = "okay"; + pm8994_l8: regulator-l8 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa9 { + status = "okay"; + pm8994_l9: regulator-l9 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa10 { + status = "okay"; + pm8994_l10: regulator-l10 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa11 { + status = "okay"; + pm8994_l11: regulator-l11 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa12 { + status = "okay"; + pm8994_l12: regulator-l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa13 { + status = "okay"; + pm8994_l13: regulator-l13 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa14 { + status = "okay"; + pm8994_l14: regulator-l14 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa15 { + status = "okay"; + pm8994_l15: regulator-l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa16 { + status = "okay"; + pm8994_l16: regulator-l16 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + qcom,init-voltage = <2700000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa17 { + status = "okay"; + pm8994_l17: regulator-l17 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + qcom,init-voltage = <2700000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa18 { + status = "okay"; + pm8994_l18: regulator-l18 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + qcom,init-voltage = <2850000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa19 { + status = "okay"; + pm8994_l19: regulator-l19 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa20 { + status = "okay"; + pm8994_l20: regulator-l20 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + qcom,init-current = <750>; + regulator-boot-on; + status = "okay"; + }; + }; + + rpm-regulator-ldoa21 { + status = "okay"; + pm8994_l21: regulator-l21 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa22 { + status = "okay"; + pm8994_l22: regulator-l22 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <3000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa23 { + status = "okay"; + pm8994_l23: regulator-l23 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa24 { + status = "okay"; + pm8994_l24: regulator-l24 { + regulator-min-microvolt = <3075000>; + regulator-max-microvolt = <3075000>; + qcom,init-voltage = <3075000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa25 { + status = "okay"; + pm8994_l25: regulator-l25 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa26 { + status = "okay"; + pm8994_l26: regulator-l26 { + regulator-min-microvolt = <987500>; + regulator-max-microvolt = <987500>; + qcom,init-voltage = <987500>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa27 { + status = "okay"; + pm8994_l27: regulator-l27 { + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + qcom,init-voltage = <1050000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa28 { + status = "okay"; + pm8994_l28: regulator-l28 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + qcom,init-current = <45>; + regulator-boot-on; + status = "okay"; + }; + }; + + rpm-regulator-ldoa29 { + status = "okay"; + pm8994_l29: regulator-l29 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa30 { + status = "okay"; + pm8994_l30: regulator-l30 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa31 { + status = "okay"; + pm8994_l31: regulator-l31 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + qcom,init-current = <50>; + regulator-boot-on; + status = "okay"; + }; + }; + + rpm-regulator-ldoa32 { + status = "okay"; + pm8994_l32: regulator-l32 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-vsa1 { + status = "okay"; + pm8994_lvs1: regulator-lvs1 { + status = "okay"; + }; + }; + + rpm-regulator-vsa2 { + status = "okay"; + pm8994_lvs2: regulator-lvs2 { + status = "okay"; + }; + }; + + rpm-regulator-smpb1 { + status = "okay"; + pmi8994_s1: regulator-s1 { + regulator-min-microvolt = <1025000>; + regulator-max-microvolt = <1025000>; + qcom,init-voltage = <1025000>; + status = "okay"; + }; + }; + + /* PMI8994 S2 + S3 = 2 phase VDD_GFX supply */ + rpm-regulator-smpb2 { + status = "okay"; + pmi8994_s2_corner: regulator-s2-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s2_corner"; + qcom,set = <3>; + qcom,init-voltage-corner = <2>; /* SVS SOC */ + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pmi8994_s2_floor_corner: regulator-s2-floor-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s2_floor_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-floor-corner; + qcom,always-send-voltage; + }; + }; + + rpm-regulator-bstb { + status = "okay"; + pmi8994_boost: regulator-bst { + status = "okay"; + }; + }; + + rpm-regulator-bbyb { + status = "okay"; + pmi8994_boostbypass: regulator-bby { + status = "okay"; + regulator-min-microvolt = <3150000>; + regulator-max-microvolt = <3600000>; + qcom,init-voltage = <3150000>; + }; + }; +}; + +/* SPM controlled regulators: */ +&spmi_bus { + qcom,pm8994@1 { + /* PM8994 S8 = VDD_APC0 supply */ + pm8994_s8: spm-regulator@2900 { + compatible = "qcom,spm-regulator"; + reg = <0x2900 0x100>; + regulator-name = "pm8994_s8"; + regulator-min-microvolt = <725000>; + regulator-max-microvolt = <1115000>; + qcom,cpu-num = <0>; + }; + + /* + * PM8994 S9 + S10 + S11 = 3 phase VDD_APC1 supply + * S11 is the gang leader. + */ + pm8994_s11: spm-regulator@3200 { + compatible = "qcom,spm-regulator"; + reg = <0x3200 0x100>; + regulator-name = "pm8994_s11"; + regulator-min-microvolt = <725000>; + regulator-max-microvolt = <1225000>; + qcom,cpu-num = <4>; + }; + }; +}; + +/* CPR controlled regulators */ +&soc { + apc0_vreg_corner: regulator@f9019000 { + compatible = "qcom,cpr-regulator"; + reg = <0xf9019000 0x1000>, <0xf900d064 4>, <0xfc4bc000 0x1000>; + reg-names = "rbcpr", "rbcpr_clk", "efuse_addr"; + interrupts = <0 16 0>; + regulator-name = "apc0_corner"; + qcom,cpr-fuse-corners = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <9>; + + qcom,cpr-voltage-ceiling = <900000 1000000 1115000>; + qcom,cpr-voltage-floor = <725000 840000 940000>; + vdd-apc-supply = <&pm8994_s8>; + + qcom,vdd-mx-corner-map = <4 5 7>; + qcom,vdd-mx-vmax = <7>; + qcom,vdd-mx-vmin-method = <4>; + vdd-mx-supply = <&pm8994_s2_corner_ao>; + + qcom,cpr-ref-clk = <19200>; + qcom,cpr-timer-delay = <5000>; + qcom,cpr-timer-cons-up = <0>; + qcom,cpr-timer-cons-down = <2>; + qcom,cpr-irq-line = <0>; + qcom,cpr-step-quotient = <16>; + qcom,cpr-up-threshold = <2>; + qcom,cpr-down-threshold = <4>; + qcom,cpr-idle-clocks = <15>; + qcom,cpr-gcnt-time = <1>; + qcom,vdd-apc-step-up-limit = <1>; + qcom,vdd-apc-step-down-limit = <1>; + qcom,cpr-apc-volt-step = <5000>; + + qcom,cpr-fuse-row = <137 0>; + qcom,cpr-fuse-target-quot = <39 47 55>; + qcom,cpr-fuse-target-quot-size = <8 8 8>; + qcom,cpr-fuse-target-quot-scale = + <0 10>, + <0 10>, + <0 10>; + qcom,cpr-quotient-adjustment = <116 0 73>; + qcom,cpr-fuse-ro-sel = <82 82 82>; + qcom,cpr-fuse-init-voltage = + <138 0 6 0>, + <138 6 6 0>, + <138 12 6 0>; + qcom,cpr-init-voltage-ref = <900000 1000000 1225000>; + qcom,cpr-init-voltage-step = <10000>; + qcom,cpr-corner-map = <1 2 2 3 3 3 3 3 3>; + qcom,cpr-quot-adjust-scaling-factor-max = <2000>; + qcom,cpr-corner-frequency-map = + <1 199200000>, + <2 302400000>, + <3 384000000>, + <4 600000000>, + <5 691200000>, + <6 768000000>, + <7 844800000>, + <8 921600000>, + <9 940800000>; + qcom,cpr-speed-bin-max-corners = + <0xFFFFFFFF 0 1 3 9>; + qcom,cpr-enable; + }; + + apc1_vreg_corner: regulator@f901a000 { + compatible = "qcom,cpr-regulator"; + reg = <0xf901a000 0x1000>, <0xf900f064 4>, <0xfc4bc000 0x1000>; + reg-names = "rbcpr", "rbcpr_clk", "efuse_addr"; + interrupts = <0 19 0>; + regulator-name = "apc1_corner"; + qcom,cpr-fuse-corners = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <8>; + + qcom,cpr-voltage-ceiling = <900000 1000000 1225000>; + qcom,cpr-voltage-floor = <725000 840000 940000>; + vdd-apc-supply = <&pm8994_s11>; + + qcom,vdd-mx-corner-map = <4 5 7>; + qcom,vdd-mx-vmax = <7>; + qcom,vdd-mx-vmin-method = <4>; + vdd-mx-supply = <&pm8994_s2_corner_ao>; + + qcom,cpr-ref-clk = <19200>; + qcom,cpr-timer-delay = <5000>; + qcom,cpr-timer-cons-up = <0>; + qcom,cpr-timer-cons-down = <2>; + qcom,cpr-irq-line = <0>; + qcom,cpr-step-quotient = <10>; + qcom,cpr-up-threshold = <2>; + qcom,cpr-down-threshold = <4>; + qcom,cpr-idle-clocks = <15>; + qcom,cpr-gcnt-time = <1>; + qcom,cpr-clamp-timer-interval = <1>; + qcom,vdd-apc-step-up-limit = <1>; + qcom,vdd-apc-step-down-limit = <1>; + qcom,cpr-apc-volt-step = <5000>; + + qcom,cpr-fuse-row = <138 0>; + qcom,cpr-fuse-target-quot = <29 37 45>; + qcom,cpr-fuse-target-quot-size = <8 8 8>; + qcom,cpr-fuse-target-quot-scale = + <0 10>, + <0 10>, + <0 10>; + qcom,cpr-quotient-adjustment = <36 45 0>; + qcom,cpr-fuse-ro-sel = <72 72 72>; + qcom,cpr-fuse-init-voltage = + <138 54 6 0>, + <138 60 6 0>, + <139 2 6 0>; + qcom,cpr-init-voltage-ref = <900000 1000000 1225000>; + qcom,cpr-init-voltage-step = <10000>; + qcom,cpr-corner-map = <1 2 2 3 3 3 3 3>; + qcom,cpr-quot-adjust-scaling-factor-max = <2000>; + qcom,cpr-corner-frequency-map = + <1 199200000>, + <2 302400000>, + <3 384000000>, + <4 600000000>, + <5 691200000>, + <6 768000000>, + <7 844800000>, + <8 921600000>; + qcom,cpr-speed-bin-max-corners = + <0xFFFFFFFF 0 1 3 8>; + qcom,cpr-enable; + }; + + bt_vreg: bt_vreg { + compatible = "regulator-fixed"; + regulator-name = "bt_vreg"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8994_gpios 9 0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994-smp2p.dtsi b/arch/arm64/boot/dts/qcom/msm8994-smp2p.dtsi new file mode 100644 index 00000000000..c40cdaf335e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-smp2p.dtsi @@ -0,0 +1,169 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +&soc { + qcom,smp2p-modem { + compatible = "qcom,smp2p"; + reg = <0xf900d008 0x4>; + qcom,remote-pid = <1>; + qcom,irq-bitmask = <0x4000>; + interrupts = <0 27 1>; + }; + + qcom,smp2p-adsp { + compatible = "qcom,smp2p"; + reg = <0xf900d008 0x4>; + qcom,remote-pid = <2>; + qcom,irq-bitmask = <0x400>; + interrupts = <0 158 1>; + }; + + smp2pgpio_smp2p_7_in: qcom,smp2pgpio-smp2p-7-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <7>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_7_in { + compatible = "qcom,smp2pgpio_test_smp2p_7_in"; + gpios = <&smp2pgpio_smp2p_7_in 0 0>; + }; + + smp2pgpio_smp2p_7_out: qcom,smp2pgpio-smp2p-7-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <7>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_7_out { + compatible = "qcom,smp2pgpio_test_smp2p_7_out"; + gpios = <&smp2pgpio_smp2p_7_out 0 0>; + }; + + smp2pgpio_smp2p_1_in: qcom,smp2pgpio-smp2p-1-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <1>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_1_in { + compatible = "qcom,smp2pgpio_test_smp2p_1_in"; + gpios = <&smp2pgpio_smp2p_1_in 0 0>; + }; + + smp2pgpio_smp2p_1_out: qcom,smp2pgpio-smp2p-1-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <1>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_1_out { + compatible = "qcom,smp2pgpio_test_smp2p_1_out"; + gpios = <&smp2pgpio_smp2p_1_out 0 0>; + }; + + smp2pgpio_smp2p_2_in: qcom,smp2pgpio-smp2p-2-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <2>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_2_in { + compatible = "qcom,smp2pgpio_test_smp2p_2_in"; + gpios = <&smp2pgpio_smp2p_2_in 0 0>; + }; + + smp2pgpio_smp2p_2_out: qcom,smp2pgpio-smp2p-2-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <2>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_2_out { + compatible = "qcom,smp2pgpio_test_smp2p_2_out"; + gpios = <&smp2pgpio_smp2p_2_out 0 0>; + }; + + /* ssr - inbound entry from lpass. */ + smp2pgpio_ssr_smp2p_2_in: qcom,smp2pgpio-ssr-smp2p-2-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "slave-kernel"; + qcom,remote-pid = <2>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + /* ssr - outbound entry to lpass */ + smp2pgpio_ssr_smp2p_2_out: qcom,smp2pgpio-ssr-smp2p-2-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "master-kernel"; + qcom,remote-pid = <2>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + /* ssr - inbound entry from mss. */ + smp2pgpio_ssr_smp2p_1_in: qcom,smp2pgpio-ssr-smp2p-1-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "slave-kernel"; + qcom,remote-pid = <1>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + /* ssr - outbound entry to mss. */ + smp2pgpio_ssr_smp2p_1_out: qcom,smp2pgpio-ssr-smp2p-1-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "master-kernel"; + qcom,remote-pid = <1>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + +}; diff --git a/arch/arm64/boot/dts/qcom/msm8994.dtsi b/arch/arm64/boot/dts/qcom/msm8994.dtsi new file mode 100644 index 00000000000..df8c641e409 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994.dtsi @@ -0,0 +1,2790 @@ +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "skeleton.dtsi" +#include <dt-bindings/clock/msm-clocks-8994.h> + +/ { + model = "Qualcomm Technologies, Inc. MSM 8994"; + compatible = "qcom,msm8994"; + qcom,msm-id = <207 0x0>; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + sdhc2 = &sdhc_2; /* SDC2 SD card slot */ + i2c6 = &i2c_6; /* I2C6 NFC qup6 device */ + i2c2 = &i2c_2; + i2c5 = &i2c_5; + spi0 = &spi_0; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + cpu-map { + cluster0 { + core0 { + cpu = <&CPU0>; + }; + core1 { + cpu = <&CPU1>; + }; + core2 { + cpu = <&CPU2>; + }; + core3 { + cpu = <&CPU3>; + }; + }; + + cluster1 { + core0 { + cpu = <&CPU4>; + }; + core1 { + cpu = <&CPU5>; + }; + core2 { + cpu = <&CPU6>; + }; + core3 { + cpu = <&CPU7>; + }; + }; + }; + + CPU0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc0>; + next-level-cache = <&L2_0>; + L2_0: l2-cache { + compatible = "arm,arch-cache"; + cache-level = <2>; + power-domain = <&l2ccc_0>; + }; + }; + + CPU1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x1>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc1>; + next-level-cache = <&L2_0>; + }; + + CPU2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x2>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc2>; + next-level-cache = <&L2_0>; + }; + + CPU3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x3>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc3>; + next-level-cache = <&L2_0>; + }; + + CPU4: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a57"; + reg = <0x100>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc4>; + next-level-cache = <&L2_1>; + L2_1: l2-cache { + compatible = "arm,arch-cache"; + cache-level = <2>; + power-domain = <&l2ccc_1>; + }; + }; + + CPU5: cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a57"; + reg = <0x101>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc5>; + next-level-cache = <&L2_1>; + }; + + CPU6: cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a57"; + reg = <0x102>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc6>; + next-level-cache = <&L2_1>; + }; + + CPU7: cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a57"; + reg = <0x103>; + enable-method = "qcom,8994-arm-cortex-acc"; + qcom,acc = <&acc7>; + next-level-cache = <&L2_1>; + }; + }; + + soc: soc { }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + secure_mem: secure_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0xfc00000>; + }; + + adsp_mem: adsp_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x4000000>; + }; + + qsecom_mem: qsecom_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x1400000>; + }; + + audio_mem: audio_region { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x800000>; + }; + + removed_regions: removed_regions@6300000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x06300000 0 0xD00000>; + }; + + peripheral_mem: peripheral_region@c800000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x0c800000 0 0x1b00000>; + }; + + modem_mem: modem_region@7000000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x07000000 0 0x5800000>; + }; + }; +}; + +#include "msm-gdsc.dtsi" +#include "msm8994-smp2p.dtsi" +#include "msm8994-ipcrouter.dtsi" +#include "msm8994-coresight.dtsi" +#include "msm8994-mdss.dtsi" +#include "msm8994-mdss-pll.dtsi" + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + arm64-cpu-erp@f9100000 { + compatible = "arm,arm64-cpu-erp"; + reg = <0xf9100000 0x1000>; + reg-names = "cci"; + interrupts = <0 328 0>, + <0 329 0>, + <0 330 0>, + <0 331 0>, + <0 22 0>, + <1 14 0>; + interrupt-names = "pri-dbe-irq", + "sec-dbe-irq", + "pri-ext-irq", + "sec-ext-irq", + "cci-irq", + "sbe-irq"; + }; + + acc0:clock-controller@f908b004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9070000 0x1000>, + <0xf908b000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc1:clock-controller@f909b004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9071000 0x1000>, + <0xf909b000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc2:clock-controller@f90ab004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9072000 0x1000>, + <0xf90ab000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc3:clock-controller@f90bb004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9073000 0x1000>, + <0xf90bb000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc4:clock-controller@f90cb004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9074000 0x1000>, + <0xf90cb000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc5:clock-controller@f90db004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9075000 0x1000>, + <0xf90db000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc6:clock-controller@f90eb004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9076000 0x1000>, + <0xf90eb000 0x1000>, + <0xf900b000 0x1000>; + }; + + acc7:clock-controller@f90fb004 { + compatible = "qcom,arm-cortex-acc"; + reg = <0xf9077000 0x1000>, + <0xf90fb000 0x1000>, + <0xf900b000 0x1000>; + }; + + l2ccc_0: clock-controller@f900d000 { + compatible = "qcom,8994-l2ccc"; + reg = <0xf900d000 0x1000>, + <0xf911210c 0x4>; + qcom,vctl-node = <&cluster0_spm>; + }; + + l2ccc_1: clock-controller@f900f000 { + compatible = "qcom,8994-l2ccc"; + reg = <0xf900f000 0x1000>, + <0xf911210c 0x4>; + qcom,vctl-node = <&cluster1_spm>; + qcom,vctl-val = <0xb8>; + }; + + intc: interrupt-controller@f9000000 { + compatible = "qcom,msm-qgic2"; + interrupt-controller; + #interrupt-cells = <3>; + reg = <0xf9000000 0x1000>, + <0xf9002000 0x1000>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <1 2 0xff08>, + <1 3 0xff08>, + <1 4 0xff08>, + <1 1 0xff08>; + clock-frequency = <19200000>; + }; + + qcom,mpm2-sleep-counter@fc4a3000 { + compatible = "qcom,mpm2-sleep-counter"; + reg = <0xfc4a3000 0x1000>; + clock-frequency = <32768>; + }; + + timer@f9020000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0xf9020000 0x1000>; + clock-frequency = <19200000>; + + frame@f9021000 { + frame-number = <0>; + interrupts = <0 9 0x4>, + <0 8 0x4>; + reg = <0xf9021000 0x1000>, + <0xf9022000 0x1000>; + }; + + frame@f9023000 { + frame-number = <1>; + interrupts = <0 10 0x4>; + reg = <0xf9023000 0x1000>; + status = "disabled"; + }; + + frame@f9024000 { + frame-number = <2>; + interrupts = <0 11 0x4>; + reg = <0xf9024000 0x1000>; + status = "disabled"; + }; + + frame@f9025000 { + frame-number = <3>; + interrupts = <0 12 0x4>; + reg = <0xf9025000 0x1000>; + status = "disabled"; + }; + + frame@f9026000 { + frame-number = <4>; + interrupts = <0 13 0x4>; + reg = <0xf9026000 0x1000>; + status = "disabled"; + }; + + frame@f9027000 { + frame-number = <5>; + interrupts = <0 14 0x4>; + reg = <0xf9027000 0x1000>; + status = "disabled"; + }; + + frame@f9028000 { + frame-number = <6>; + interrupts = <0 15 0x4>; + reg = <0xf9028000 0x1000>; + status = "disabled"; + }; + }; + + restart@fc4ab000 { + compatible = "qcom,pshold"; + reg = <0xfc4ab000 0x4>; + }; + + blsp1_uart3: serial@f991f000 { + compatible = "qcom,msm-lsuart-v14", "qcom,msm-uartdm-v1.4", + "qcom,msm-uartdm"; + reg = <0xf991f000 0x1000>; + interrupts = <0 109 0>; + status = "disabled"; + clock-names = "core", "iface"; + clocks = <&clock_gcc clk_gcc_blsp1_uart3_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + }; + + blsp1_uart2: serial@f991e000 { + compatible = "qcom,msm-lsuart-v14", "qcom,msm-uartdm-v1.4", + "qcom,msm-uartdm"; + reg = <0xf991e000 0x1000>; + interrupts = <0 108 0>; + status = "disabled"; + clock-names = "core", "iface"; + clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + }; + + blsp2_uart2: uart@f995e000 { /* BLSP2 UART2 */ + compatible = "qcom,msm-hsuart-v14"; + reg = <0xf995e000 0x1000>, + <0xf9944000 0x19000>; + status = "disabled"; + reg-names = "core_mem", "bam_mem"; + interrupt-names = "core_irq", "bam_irq", "wakeup_irq"; + #address-cells = <0>; + interrupt-parent = <&blsp2_uart2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 114 0 + 1 &intc 0 239 0 + 2 &msm_gpio 46 0>; + + qcom,inject-rx-on-wakeup = <1>; + qcom,rx-char-to-inject = <0xFD>; + + qcom,bam-tx-ep-pipe-index = <2>; + qcom,bam-rx-ep-pipe-index = <3>; + qcom,master-id = <84>; + clock-names = "core_clk", "iface_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp2_ahb_clk>; + pinctrl-names = "sleep", "default"; + pinctrl-0 = <&hsuart_sleep>; + pinctrl-1 = <&hsuart_active>; + + qcom,msm-bus,name = "buart8"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <84 512 0 0>, + <84 512 500 800>; + }; + + qcom,sps@f9984000 { + compatible = "qcom,msm_sps"; + reg-names = "bam_mem", "core_mem"; + reg = <0xf9984000 0x15000>, + <0xf9999000 0xb000>; + interrupts = <0 94 0>; + qcom,pipe-attr-ee; + clocks = <&clock_rpm clk_pnoc_sps_clk>, + <&clock_gcc clk_gcc_bam_dma_ahb_clk>; + clock-names = "dfab_clk", "dma_bam_pclk"; + }; + + pcie0: qcom,pcie@fc520000 { + compatible = "qcom,pci-msm"; + cell-index = <0>; + + reg = <0xfc520000 0x2000>, + <0xfc526000 0x1000>, + <0xff000000 0xf1d>, + <0xff000f20 0xa8>, + <0xff100000 0x100000>, + <0xff200000 0x100000>, + <0xff300000 0xd00000>; + + reg-names = "parf", "phy", "dm_core", "elbi", + "conf", "io", "bars"; + + #address-cells = <0>; + interrupt-parent = <&pcie0>; + interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 243 0 + 1 &intc 0 244 0 + 2 &intc 0 245 0 + 3 &intc 0 247 0 + 4 &intc 0 248 0 + 5 &intc 0 249 0 + 6 &intc 0 250 0 + 7 &intc 0 251 0 + 8 &intc 0 252 0 + 9 &intc 0 253 0 + 10 &intc 0 254 0 + 11 &intc 0 255 0>; + + interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", + "int_pls_pme", "int_pme_legacy", "int_pls_err", + "int_aer_legacy", "int_pls_link_up", + "int_pls_link_down", "int_bridge_flush_n"; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie0_clkreq_default &pcie0_perst_default &pcie0_wake_default>; + + perst-gpio = <&msm_gpio 53 0>; + wake-gpio = <&msm_gpio 55 0>; + + gdsc-vdd-supply = <&gdsc_pcie_0>; + vreg-1.8-supply = <&pm8994_l12>; + vreg-0.9-supply = <&pm8994_l28>; + + qcom,ep-latency = <10>; + + qcom,msi-gicm-addr = <0xf9006040>; + qcom,msi-gicm-base = <0x180>; + + qcom,msm-bus,name = "pcie0"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <45 512 0 0>, + <45 512 500 800>; + + clocks = <&clock_gcc clk_gcc_pcie_0_pipe_clk>, + <&clock_rpm clk_ln_bb_clk>, + <&clock_gcc clk_gcc_pcie_0_aux_clk>, + <&clock_gcc clk_gcc_pcie_0_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_0_mstr_axi_clk>, + <&clock_gcc clk_gcc_pcie_0_slv_axi_clk>, + <&clock_gcc clk_pcie_0_phy_ldo>, + <&clock_gcc clk_gcc_pcie_phy_0_reset>; + + clock-names = "pcie_0_pipe_clk", "pcie_0_ref_clk_src", "pcie_0_aux_clk", + "pcie_0_cfg_ahb_clk", "pcie_0_mstr_axi_clk", + "pcie_0_slv_axi_clk", "pcie_0_ldo", "pcie_0_phy_reset"; + + max-clock-frequency-hz = <125000000>, <0>, <1011000>, <0>, <0>, <0>, <0>, <0>; + }; + + pcie1: qcom,pcie@fc528000 { + compatible = "qcom,pci-msm"; + cell-index = <1>; + + reg = <0xfc528000 0x2000>, + <0xfc52e000 0x1000>, + <0xf8800000 0xf1d>, + <0xf8800F20 0xa8>, + <0xf8900000 0x100000>, + <0xf8a00000 0x100000>, + <0xf8b00000 0x500000>; + + reg-names = "parf", "phy", "dm_core", "elbi", + "conf", "io", "bars"; + + #address-cells = <0>; + interrupt-parent = <&pcie1>; + interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 271 0 + 1 &intc 0 272 0 + 2 &intc 0 273 0 + 3 &intc 0 274 0 + 4 &intc 0 275 0 + 5 &intc 0 276 0 + 6 &intc 0 277 0 + 7 &intc 0 278 0 + 8 &intc 0 279 0 + 9 &intc 0 280 0 + 10 &intc 0 281 0 + 11 &intc 0 282 0>; + + interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", + "int_pls_pme", "int_pme_legacy", "int_pls_err", + "int_aer_legacy", "int_pls_link_up", + "int_pls_link_down", "int_bridge_flush_n"; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_clkreq_default &pcie1_perst_default &pcie1_wake_default>; + + perst-gpio = <&msm_gpio 35 0>; + wake-gpio = <&msm_gpio 37 0>; + + gdsc-vdd-supply = <&gdsc_pcie_1>; + vreg-1.8-supply = <&pm8994_l12>; + vreg-0.9-supply = <&pm8994_l28>; + + qcom,l1-supported; + qcom,l1ss-supported; + qcom,aux-clk-sync; + + qcom,ep-latency = <10>; + + qcom,msi-gicm-addr = <0xf9007040>; + qcom,msi-gicm-base = <0x1a0>; + + qcom,ep-wakeirq; + + qcom,msm-bus,name = "pcie1"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <100 512 0 0>, + <100 512 500 800>; + + clocks = <&clock_gcc clk_gcc_pcie_1_pipe_clk>, + <&clock_rpm clk_ln_bb_clk>, + <&clock_gcc clk_gcc_pcie_1_aux_clk>, + <&clock_gcc clk_gcc_pcie_1_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_1_mstr_axi_clk>, + <&clock_gcc clk_gcc_pcie_1_slv_axi_clk>, + <&clock_gcc clk_pcie_1_phy_ldo>, + <&clock_gcc clk_gcc_pcie_phy_1_reset>; + + clock-names = "pcie_1_pipe_clk", "pcie_1_ref_clk_src", "pcie_1_aux_clk", + "pcie_1_cfg_ahb_clk", "pcie_1_mstr_axi_clk", + "pcie_1_slv_axi_clk", "pcie_1_ldo", "pcie_1_phy_reset"; + + max-clock-frequency-hz = <125000000>, <0>, <1011000>, <0>, <0>, <0>, <0>, <0>; + }; + + ipa_hw: qcom,ipa@fd4c0000 { + compatible = "qcom,ipa"; + reg = <0xfd4c0000 0x29000>, + <0xfd4c4000 0x15820>; + reg-names = "ipa-base", "bam-base"; + interrupts = <0 301 0>, + <0 300 0>; + interrupt-names = "ipa-irq", "bam-irq"; + qcom,ipa-hw-ver = <3>; /* IPA core version = IPAv2.0 */ + qcom,ipa-hw-mode = <0>; /* IPA hw type = Normal */ + qcom,ee = <2>; + clock-names = "core_clk"; + clocks = <&clock_rpm clk_ipa_clk>; + }; + + qcom,rmnet-ipa { + compatible = "qcom,rmnet-ipa"; + qcom,rmnet-ipa-ssr; + qcom,ipa-loaduC; + }; + + qcom,ipc-spinlock@fd484000 { + compatible = "qcom,ipc-spinlock-sfpb"; + reg = <0xfd484000 0x400>; + qcom,num-locks = <8>; + }; + + qcom,smem@6a00000 { + compatible = "qcom,smem"; + reg = <0x6a00000 0x200000>, + <0xf900d008 0x4>, + <0xfc428000 0x4000>; + reg-names = "smem", "irq-reg-base", "aux-mem1"; + qcom,mpu-enabled; + + qcom,smd-modem { + compatible = "qcom,smd"; + qcom,smd-edge = <0>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1000>; + interrupts = <0 25 1>; + label = "modem"; + }; + + qcom,smsm-modem { + compatible = "qcom,smsm"; + qcom,smsm-edge = <0>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x2000>; + interrupts = <0 26 1>; + }; + + qcom,smd-adsp { + compatible = "qcom,smd"; + qcom,smd-edge = <1>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x100>; + interrupts = <0 156 1>; + label = "adsp"; + }; + + qcom,smsm-adsp { + compatible = "qcom,smsm"; + qcom,smsm-edge = <1>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x200>; + interrupts = <0 157 1>; + }; + + qcom,smd-rpm { + compatible = "qcom,smd"; + qcom,smd-edge = <15>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1>; + interrupts = <0 168 1>; + label = "rpm"; + qcom,irq-no-suspend; + qcom,not-loadable; + }; + }; + + qcom,msm-imem@fe87f000 { + compatible = "qcom,msm-imem"; + reg = <0xfe87f000 0x1000>; /* Address and size of IMEM */ + ranges = <0x0 0xfe87f000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + download_mode@0 { + compatible = "qcom,msm-imem-download_mode"; + reg = <0x0 8>; + }; + + mem_dump_table@10 { + compatible = "qcom,msm-imem-mem_dump_table"; + reg = <0x10 8>; + }; + + restart_reason@65c { + compatible = "qcom,msm-imem-restart_reason"; + reg = <0x65c 4>; + }; + + boot_stats@6b0 { + compatible = "qcom,msm-imem-boot_stats"; + reg = <0x6b0 32>; + }; + + pil@94c { + compatible = "qcom,msm-imem-pil"; + reg = <0x94c 200>; + }; + }; + + qcom,wdt@f9017000 { + compatible = "qcom,msm-watchdog"; + reg = <0xf9017000 0x1000>; + reg-names = "wdt-base"; + interrupts = <0 3 0>, <0 4 0>; + qcom,bark-time = <11000>; + qcom,pet-time = <10000>; + qcom,ipi-ping; + }; + + qcom,msm-rtb { + compatible = "qcom,msm-rtb"; + qcom,rtb-size = <0x100000>; + }; + + jtag_fuse: jtagfuse@fc4be024 { + compatible = "qcom,jtag-fuse"; + reg = <0xfc4be024 0x8>; + reg-names = "fuse-base"; + }; + + jtag_mm0: jtagmm@fb840000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfb840000 0x1000>, + <0xfb810000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm1: jtagmm@fb940000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfb940000 0x1000>, + <0xfb910000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm2: jtagmm@fba40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfba40000 0x1000>, + <0xfba10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm3: jtagmm@fbb40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfbb40000 0x1000>, + <0xfbb10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm4: jtagmm@fbc40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfbc40000 0x1000>, + <0xfbc10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm5: jtagmm@fbd40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfbd40000 0x1000>, + <0xfbd10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm6: jtagmm@fbe40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfbe40000 0x1000>, + <0xfbe10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm7: jtagmm@fbf40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0xfbf40000 0x1000>, + <0xfbf10000 0x1000>; + reg-names = "etm-base","debug-base"; + + clocks = <&clock_rpm clk_qdss_clk>, + <&clock_rpm clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + rpm_bus: qcom,rpm-smd { + compatible = "qcom,rpm-smd"; + rpm-channel-name = "rpm_requests"; + rpm-channel-type = <15>; /* SMD_APPS_RPM */ + }; + + qcom,msm-rng@f9bff000 { + compatible = "qcom,msm-rng"; + reg = <0xf9bff000 0x200>; + qcom,msm-bus,name = "msm-rng-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <88 618 0 0>, + <88 618 0 800>; + qcom,msm-rng-iface-clk; + clocks = <&clock_gcc clk_gcc_prng_ahb_clk>; + clock-names = "iface_clk"; + }; + + qcom,rmtfs_sharedmem@00000000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x00000000 0x00180000>; + reg-names = "rmtfs"; + qcom,client-id = <0x00000001>; + }; + + qcom,dsp_sharedmem@00000000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x00000000 0x00010000>; + reg-names = "rfsa_dsp"; + qcom,client-id = <0x011013ec>; + }; + + qcom,mdm_sharedmem@00000000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x00000000 0x00010000>; + reg-names = "rfsa_mdm"; + qcom,client-id = <0x011013ed>; + }; + + sdhc_1: sdhci@f9824900 { + compatible = "qcom,sdhci-msm"; + reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 123 0>, <0 138 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + qcom,bus-width = <8>; + qcom,cpu-dma-latency-us = <701>; + + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <9>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */ + <78 512 1600 3200>, /* 400 KB/s*/ + <78 512 80000 160000>, /* 20 MB/s */ + <78 512 100000 200000>, /* 25 MB/s */ + <78 512 200000 400000>, /* 50 MB/s */ + <78 512 400000 800000>, /* 100 MB/s */ + <78 512 400000 800000>, /* 200 MB/s */ + <78 512 400000 800000>, /* 400 MB/s */ + <78 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 400000000 4294967295>; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_sdcc1_ahb_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>; + + status = "disabled"; + }; + + sdhc_2: sdhci@f98a4900 { + compatible = "qcom,sdhci-msm"; + reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 125 0>, <0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>, + <&clock_gcc clk_gcc_sdcc2_apps_clk>; + + qcom,bus-width = <4>; + qcom,cpu-dma-latency-us = <701>; + + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */ + <81 512 1600 3200>, /* 400 KB/s*/ + <81 512 80000 160000>, /* 20 MB/s */ + <81 512 100000 200000>, /* 25 MB/s */ + <81 512 200000 400000>, /* 50 MB/s */ + <81 512 400000 800000>, /* 100 MB/s */ + <81 512 800000 800000>, /* 200 MB/s */ + <81 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + + status = "disabled"; + }; + + ufsphy1: ufsphy@fc597000 { + compatible = "qcom,ufs-msm-phy-qmp-20nm"; + reg = <0xfc597000 0xda8>; + #phy-cells = <0>; + vdda-phy-supply = <&pm8994_l28>; + vdda-pll-supply = <&pm8994_l12>; + vdda-phy-max-microamp = <45000>; + vdda-pll-max-microamp = <100>; + clock-names = "ref_clk_src", + "ref_clk_parent", + "ref_clk", + "tx_iface_clk", + "rx_iface_clk"; + clocks = <&clock_rpm clk_ln_bb_clk>, + <&clock_gcc clk_pcie_1_phy_ldo >, + <&clock_gcc clk_ufs_phy_ldo>, + <&clock_gcc clk_gcc_ufs_tx_cfg_clk>, + <&clock_gcc clk_gcc_ufs_rx_cfg_clk>; + status = "disabled"; + }; + + ufs1: ufshc@fc594000 { + compatible = "qcom,ufshc"; + reg = <0xfc594000 0x2500>; + interrupts = <0 265 0>; + phys = <&ufsphy1>; + vdd-hba-supply = <&gdsc_ufs>; + vdd-hba-fixed-regulator; + vcc-supply = <&pm8994_l20>; + vccq-supply = <&pm8994_l31>; + vccq2-supply = <&pm8994_s4>; + vcc-max-microamp = <750000>; + vccq-max-microamp = <50000>; + vccq2-max-microamp = <750000>; + + clock-names = "core_clk_src", "core_clk", "bus_clk", "iface_clk", + "ref_clk", "rx_lane0_sync_clk", "tx_lane0_sync_clk", + "rx_lane1_sync_clk", "tx_lane1_sync_clk"; + clocks = + <&clock_gcc clk_ufs_axi_clk_src>, + <&clock_gcc clk_gcc_ufs_axi_clk>, + <&clock_gcc clk_gcc_sys_noc_ufs_axi_clk>, + <&clock_gcc clk_gcc_ufs_ahb_clk>, + <&clock_rpm clk_bb_clk1>, + <&clock_gcc clk_gcc_ufs_rx_symbol_0_clk>, + <&clock_gcc clk_gcc_ufs_tx_symbol_0_clk>, + <&clock_gcc clk_gcc_ufs_rx_symbol_1_clk>, + <&clock_gcc clk_gcc_ufs_tx_symbol_1_clk>; + freq-table-hz = + <100000000 171430000>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>; + qcom,msm-bus,name = "ufs1"; + qcom,msm-bus,num-cases = <22>; + qcom,msm-bus,num-paths = <2>; + qcom,msm-bus,vectors-KBps = + <95 512 0 0>, <1 650 0 0>, /* No vote */ + <95 512 922 0>, <1 650 1000 0>, /* PWM G1 */ + <95 512 1844 0>, <1 650 1000 0>, /* PWM G2 */ + <95 512 3688 0>, <1 650 1000 0>, /* PWM G3 */ + <95 512 7376 0>, <1 650 1000 0>, /* PWM G4 */ + <95 512 1844 0>, <1 650 1000 0>, /* PWM G1 L2 */ + <95 512 3688 0>, <1 650 1000 0>, /* PWM G2 L2 */ + <95 512 7376 0>, <1 650 1000 0>, /* PWM G3 L2 */ + <95 512 14752 0>, <1 650 1000 0>, /* PWM G4 L2 */ + <95 512 127796 0>, <1 650 1000 0>, /* HS G1 RA */ + <95 512 255591 0>, <1 650 1000 0>, /* HS G2 RA */ + <95 512 511181 0>, <1 650 1000 0>, /* HS G3 RA */ + <95 512 255591 0>, <1 650 1000 0>, /* HS G1 RA L2 */ + <95 512 511181 0>, <1 650 1000 0>, /* HS G2 RA L2 */ + <95 512 1022362 0>, <1 650 1000 0>, /* HS G3 RA L2 */ + <95 512 149422 0>, <1 650 1000 0>, /* HS G1 RB */ + <95 512 298189 0>, <1 650 1000 0>, /* HS G2 RB */ + <95 512 596378 0>, <1 650 1000 0>, /* HS G3 RB */ + <95 512 298189 0>, <1 650 1000 0>, /* HS G1 RB L2 */ + <95 512 596378 0>, <1 650 1000 0>, /* HS G2 RB L2 */ + <95 512 1192756 0>, <1 650 1000 0>, /* HS G3 RB L2 */ + <95 512 4096000 0>, <1 650 1000 0>; /* Max. bandwidth */ + qcom,bus-vector-names = "MIN", + "PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1", + "PWM_G1_L2", "PWM_G2_L2", "PWM_G3_L2", "PWM_G4_L2", + "HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1", + "HS_RA_G1_L2", "HS_RA_G2_L2", "HS_RA_G3_L2", + "HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1", + "HS_RB_G1_L2", "HS_RB_G2_L2", "HS_RB_G3_L2", + "MAX"; + status = "disabled"; + }; + + spi_0: spi@f9923000 { /* BLSP1 QUP1 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0xf9923000 0x1000>, + <0xf9904000 0x19000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 95 0>, <0 238 0>; + spi-max-frequency = <19200000>; + + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <12>; + qcom,bam-producer-pipe-index = <13>; + qcom,master-id = <86>; + qcom,use-pinctrl; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&spi_0_active>; + pinctrl-1 = <&spi_0_sleep>; + + clock-names = "iface_clk", "core_clk"; + + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + }; + + qcom,msm-ssc-sensors { + compatible = "qcom,msm-ssc-sensors"; + }; + + wcd9xxx_intc: wcd9xxx-irq { + compatible = "qcom,wcd9xxx-irq"; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&msm_gpio>; + interrupts = <72 0>; + interrupt-names = "cdc-int"; + }; + + tspp: msm_tspp@f99d8000 { + compatible = "qcom,msm_tspp"; + reg = <0xf99d8000 0x1000>, /* MSM_TSIF0_PHYS */ + <0xf99d9000 0x1000>, /* MSM_TSIF1_PHYS */ + <0xf99da000 0x1000>, /* MSM_TSPP_PHYS */ + <0xf99c4000 0x11000>; /* MSM_TSPP_BAM_PHYS */ + reg-names = "MSM_TSIF0_PHYS", + "MSM_TSIF1_PHYS", + "MSM_TSPP_PHYS", + "MSM_TSPP_BAM_PHYS"; + interrupts = <0 121 0>, /* TSIF_TSPP_IRQ */ + <0 119 0>, /* TSIF0_IRQ */ + <0 120 0>, /* TSIF1_IRQ */ + <0 122 0>; /* TSIF_BAM_IRQ */ + interrupt-names = "TSIF_TSPP_IRQ", + "TSIF0_IRQ", + "TSIF1_IRQ", + "TSIF_BAM_IRQ"; + + clock-names = "iface_clk", "ref_clk"; + clocks = <&clock_gcc clk_gcc_tsif_ahb_clk>, + <&clock_gcc clk_gcc_tsif_ref_clk>; + + qcom,msm-bus,name = "tsif"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <82 512 0 0>, /* No vote */ + <82 512 12288 24576>; /* Max. bandwidth, 2xTSIF, each max of 96Mbps */ + + pinctrl-names = "disabled", + "tsif0-mode1", "tsif0-mode2", + "tsif1-mode1", "tsif1-mode2", + "dual-tsif-mode1", "dual-tsif-mode2"; + + pinctrl-0 = <>; /* disabled */ + pinctrl-1 = <&tsif0_signals_active>; /* tsif0-mode1 */ + pinctrl-2 = <&tsif0_signals_active + &tsif0_sync_active>; /* tsif0-mode2 */ + pinctrl-3 = <&tsif1_signals_active>; /* tsif1-mode1 */ + pinctrl-4 = <&tsif1_signals_active + &tsif1_sync_active>; /* tsif1-mode2 */ + pinctrl-5 = <&tsif0_signals_active + &tsif1_signals_active>; /* dual-tsif-mode1 */ + pinctrl-6 = <&tsif0_signals_active + &tsif0_sync_active + &tsif1_signals_active + &tsif1_sync_active>; /* dual-tsif-mode2 */ + }; + + slim_msm: slim@fe12f000 { + cell-index = <1>; + compatible = "qcom,slim-ngd"; + reg = <0xfe12f000 0x2C000>, + <0xfe104000 0x20000>; + reg-names = "slimbus_physical", "slimbus_bam_physical"; + interrupts = <0 163 0>, <0 164 0>; + interrupt-names = "slimbus_irq", "slimbus_bam_irq"; + qcom,apps-ch-pipes = <0x60000000>; + qcom,ea-pc = <0x130>; + + tomtom_codec { + compatible = "qcom,tomtom-slim-pgd"; + elemental-addr = [00 01 30 01 17 02]; + + interrupt-parent = <&wcd9xxx_intc>; + interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30 31>; + + qcom,cdc-reset-gpio = <&msm_gpio 68 0>; + + cdc-vdd-buck-supply = <&pm8994_s5>; + qcom,cdc-vdd-buck-voltage = <2150000 2150000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-vdd-tx-h-supply = <&pm8994_s4>; + qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-tx-h-current = <25000>; + + cdc-vdd-rx-h-supply = <&pm8994_s4>; + qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-rx-h-current = <25000>; + + cdc-vddpx-1-supply = <&pm8994_s4>; + qcom,cdc-vddpx-1-voltage = <1800000 1800000>; + qcom,cdc-vddpx-1-current = <10000>; + + cdc-vdd-a-1p2v-supply = <&pm8994_l11>; + qcom,cdc-vdd-a-1p2v-voltage = <1200000 1200000>; + qcom,cdc-vdd-a-1p2v-current = <2000>; + + cdc-vddcx-1-supply = <&pm8994_l11>; + qcom,cdc-vddcx-1-voltage = <1200000 1200000>; + qcom,cdc-vddcx-1-current = <33000>; + + cdc-vddcx-2-supply = <&pm8994_l11>; + qcom,cdc-vddcx-2-voltage = <1200000 1200000>; + qcom,cdc-vddcx-2-current = <33000>; + + qcom,cdc-static-supplies = "cdc-vdd-buck", + "cdc-vdd-tx-h", + "cdc-vdd-rx-h", + "cdc-vddpx-1", + "cdc-vdd-a-1p2v", + "cdc-vddcx-1", + "cdc-vddcx-2"; + + qcom,cdc-micbias-ldoh-v = <0x3>; + qcom,cdc-micbias-cfilt1-mv = <1800>; + qcom,cdc-micbias-cfilt2-mv = <2700>; + qcom,cdc-micbias-cfilt3-mv = <1800>; + qcom,cdc-micbias1-cfilt-sel = <0x0>; + qcom,cdc-micbias2-cfilt-sel = <0x1>; + qcom,cdc-micbias3-cfilt-sel = <0x2>; + qcom,cdc-micbias4-cfilt-sel = <0x2>; + qcom,cdc-mclk-clk-rate = <9600000>; + qcom,cdc-slim-ifd = "tomtom-slim-ifd"; + qcom,cdc-slim-ifd-elemental-addr = [00 00 30 01 17 02]; + qcom,cdc-dmic-sample-rate = <4800000>; + qcom,cdc-variant = "WCD9330"; + }; + }; + + spmi_bus: qcom,spmi@fc4c0000 { + compatible = "qcom,spmi-pmic-arb"; + reg-names = "core", "intr", "cnfg"; + reg = <0xfc4cf000 0x1000>, + <0xfc4cb000 0x1000>, + <0xfc4ca000 0x1000>; + /* 190,ee0_krait_hlos_spmi_periph_irq */ + /* 187,channel_0_krait_hlos_trans_done_irq */ + interrupts = <0 190 0>, <0 187 0>; + qcom,pmic-arb-channel = <0>; + qcom,pmic-arb-ee = <0>; + #interrupt-cells = <3>; + interrupt-controller; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + }; + + usb3: ssusb@f9200000 { + compatible = "qcom,dwc-usb3-msm"; + status = "disabled"; + reg = <0xf9200000 0xfc000>, + <0xfd4ab000 0x4>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + interrupt-parent = <&usb3>; + interrupts = <0 1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0xffffffff>; + interrupt-map = <0x0 0 &intc 0 133 0 + 0x0 1 &intc 0 180 0 + 0x0 1 &spmi_bus 0x0 0x0 0x9 0x0>; + interrupt-names = "hs_phy_irq", "pwr_event_irq", "pmic_id_irq"; + + USB3_GDSC-supply = <&gdsc_usb30>; + vbus_dwc3-supply = <&pmi8994_otg_supply>; + qcom,dwc-usb3-msm-tx-fifo-size = <29696>; + qcom,dwc-usb3-msm-qdss-tx-fifo-size = <8192>; + qcom,otg-capability; + qcom,usb-dbm = <&dbm_1p5>; + + qcom,msm-bus,name = "usb3"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <61 512 0 0>, + <61 512 240000 960000>; + + qcom,power-collapse-on-cable-disconnect; + qcom,por-after-power-collapse; + + clocks = <&clock_gcc clk_gcc_usb30_master_clk>, + <&clock_gcc clk_gcc_sys_noc_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_mock_utmi_clk>, + <&clock_gcc clk_gcc_usb30_sleep_clk>, + <&clock_rpm clk_ln_bb_clk>, + <&clock_rpm clk_cxo_dwc3_clk>; + clock-names = "core_clk", "iface_clk", "utmi_clk", "sleep_clk", + "ref_clk", "xo"; + + dwc3@f9200000 { + compatible = "synopsys,dwc3"; + reg = <0xf9200000 0xfc000>; + interrupt-parent = <&intc>; + interrupts = <0 131 0>, <0 179 0>; + interrupt-names = "irq", "otg_irq"; + tx-fifo-resize; + usb-phy = <&hsphy0>, <&ssphy0>; + snps,core-reset-after-phy-init; + }; + }; + + hsphy0: hsphy@f92f8800 { + compatible = "qcom,usb-hsphy"; + status = "disabled"; + reg = <0xf92f8800 0x3ff>; + qcom,hsphy-init = <0x00D191A4>; + vdd-supply = <&pm8994_s2_corner>; + vdda18-supply = <&pm8994_l6>; + vdda33-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 5 7>; + qcom,ext-vbus-id; + qcom,vbus-valid-override; + qcom,set-pllbtune; + qcom,sleep-clk-reset; + clocks = <&clock_gcc clk_gcc_usb2_hs_phy_sleep_clk>; + clock-names = "phy_sleep_clk"; + }; + + ssphy0: ssphy@f9b38000 { + compatible = "qcom,usb-ssphy-qmp"; + status = "disabled"; + reg = <0xf9b38000 0x800>, + <0xf9b3e000 0x3ff>; + reg-names = "qmp_phy_base", + "qmp_ahb2phy_base"; + vdd-supply = <&pm8994_l28>; + vdda18-supply = <&pm8994_l6>; + qcom,vdd-voltage-level = <0 1000000 1000000>; + qcom,vbus-valid-override; + qcom,no-pipe-clk-switch; + + clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>, + <&clock_gcc clk_gcc_usb3_phy_pipe_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>, + <&clock_gcc clk_gcc_usb3_phy_reset>, + <&clock_gcc clk_usb_ss_phy_ldo>; + clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", + "ldo_clk"; + }; + + dbm_1p5: dbm@f92f8000 { + compatible = "qcom,usb-dbm-1p5"; + reg = <0xf92f8000 0x1000>; + qcom,reset-ep-after-lpm-resume; + }; + + qcom,usbbam@f9304000 { + compatible = "qcom,usb-bam-msm"; + reg = <0xf9304000 0x9000>, + <0xf92f880c 0x4>; + reg-names = "ssusb", "qscratch_ram1_reg"; + interrupts = <0 132 0>; + interrupt-names = "ssusb"; + clocks = <&clock_gcc clk_gcc_usb30_master_clk>, + <&clock_gcc clk_gcc_sys_noc_usb3_axi_clk>; + clock-names = "mem_clk", "mem_iface_clk"; + + qcom,usb-bam-fifo-baseaddr = <0xf9200000>; + qcom,usb-bam-num-pipes = <16>; + qcom,ignore-core-reset-ack; + qcom,disable-clk-gating; + qcom,usb-bam-override-threshold = <0x4001>; + qcom,usb-bam-max-mbps-highspeed = <400>; + qcom,usb-bam-max-mbps-superspeed = <3600>; + + qcom,pipe0 { + label = "ssusb-ipa-out-0"; + qcom,usb-bam-mem-type = <2>; + qcom,bam-type = <0>; + qcom,dir = <0>; + qcom,pipe-num = <0>; + qcom,peer-bam = <2>; + qcom,src-bam-physical-address = <0xf9304000>; + qcom,src-bam-pipe-index = <1>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + qcom,reset-bam-on-connect; + qcom,pipe-connection-type = <1>; + }; + qcom,pipe1 { + label = "ssusb-ipa-in-0"; + qcom,usb-bam-mem-type = <2>; + qcom,bam-type = <0>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <2>; + qcom,dst-bam-physical-address = <0xf9304000>; + qcom,dst-bam-pipe-index = <0>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + qcom,reset-bam-on-connect; + }; + qcom,pipe2 { + label = "ssusb-qdss-in-0"; + qcom,usb-bam-mem-type = <1>; + qcom,bam-type = <0>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,src-bam-physical-address = <0xfc37C000>; + qcom,src-bam-pipe-index = <0>; + qcom,dst-bam-physical-address = <0xf9304000>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-offset = <0xf0000>; + qcom,data-fifo-size = <0x1800>; + qcom,descriptor-fifo-offset = <0xf4000>; + qcom,descriptor-fifo-size = <0x1400>; + qcom,reset-bam-on-connect; + }; + }; + + usb_otg: usb@f9a55000 { + compatible = "qcom,hsusb-otg"; + status = "disabled"; + + reg = <0xf9a55000 0x400>; + interrupts = <0 134 0 0 140 0>; + interrupt-names = "core_irq", "async_irq"; + + HSUSB_VDDCX-supply = <&pm8994_s2_corner>; + HSUSB_1p8-supply = <&pm8994_l6>; + HSUSB_3p3-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 5 7>; + + clocks = <&clock_gcc clk_gcc_usb_hs_system_clk>, + <&clock_gcc clk_gcc_usb_hs_ahb_clk>, + <&clock_gcc clk_gcc_usb2_hs_phy_sleep_clk>, + <&clock_rpm clk_cxo_otg_clk>; + clock-names = "core_clk", "iface_clk", "sleep_clk", "xo"; + + qcom,hsusb-otg-phy-type = <2>; + qcom,hsusb-otg-phy-init-seq = <0x63 0x81 0xffffffff>; + qcom,hsusb-otg-mode = <1>; + qcom,hsusb-otg-otg-control = <1>; + }; + + usb_ehci: ehci@f9a55000 { + compatible = "qcom,ehci-host"; + status = "disabled"; + reg = <0xf9a55000 0x400>; + interrupts = <0 134 0>, <0 140 0>; + interrupt-names = "core_irq", "async_irq"; + hsusb_vdd_dig-supply = <&pm8994_s2_corner>; + HSUSB_1p8-supply = <&pm8994_l6>; + HSUSB_3p3-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 2 3 5 7>; + qcom,usb2-power-budget = <500>; + usb-phy = <&qusb_phy>; + + clocks = <&clock_gcc clk_gcc_usb_hs_system_clk>, + <&clock_gcc clk_gcc_usb_hs_ahb_clk>, + <&clock_rpm clk_cxo_otg_clk>; + clock-names = "core_clk", "iface_clk", "xo"; + }; + + qusb_phy: qusb@f9b39000 { + compatible = "qcom,qusb2phy"; + status = "disabled"; + reg = <0xf9b39000 0x17f>; + vdd-supply = <&pm8994_s2_corner>; + vdda18-supply = <&pm8994_l6>; + vdda33-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 5 7>; + + clocks = <&clock_rpm clk_ln_bb_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>, + <&clock_gcc clk_gcc_qusb2_phy_reset>; + clock-names = "ref_clk", "cfg_ahb_clk", "phy_reset"; + }; + + android_usb@fe87f0c8 { + compatible = "qcom,android-usb"; + reg = <0xfe87f0c8 0xc8>; + qcom,pm-qos-latency = <2 1001 30001>; + }; + + qcom,venus@fdce0000 { + compatible = "qcom,pil-tz-generic"; + reg = <0xfdce0000 0x4000>; + + vdd-supply = <&gdsc_venus>; + qcom,proxy-reg-names = "vdd"; + clock-names = "core_clk", "iface_clk", + "bus_clk", "mem_clk", "scm_ce1_clk"; + qcom,proxy-clock-names = "core_clk", "iface_clk", + "bus_clk", "mem_clk", "scm_ce1_clk"; + qcom,scm_ce1_clk-freq = <85710000>; + + clocks = <&clock_mmss clk_venus0_vcodec0_clk>, + <&clock_mmss clk_venus0_ahb_clk>, + <&clock_mmss clk_venus0_axi_clk>, + <&clock_mmss clk_venus0_ocmemnoc_clk>, + <&clock_rpm clk_scm_ce1_clk>; + + qcom,msm-bus,name = "pil-venus"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 0 304000>; + qcom,pas-id = <9>; + qcom,proxy-timeout-ms = <5000>; + qcom,firmware-name = "venus"; + contiguous-region = <&peripheral_mem>; + }; + + qcom,mss@fc880000 { + compatible = "qcom,pil-q6v55-mss"; + reg = <0xfc880000 0x100>, + <0xfd485000 0x400>, + <0xfc820000 0x020>, + <0xfc401680 0x004>; + reg-names = "qdsp6_base", "halt_base", "rmb_base", + "restart_reg"; + + clocks = <&clock_rpm clk_cxo_clk_src>, + <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, + <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, + <&clock_gcc clk_gcc_boot_rom_ahb_clk>, + <&clock_gcc clk_gpll0_out_msscc>; + clock-names = "xo", "iface_clk", "bus_clk", "mem_clk", + "gpll0_mss_clk"; + qcom,proxy-clock-names = "xo"; + qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk", + "gpll0_mss_clk"; + + interrupts = <0 24 1>; + vdd_mss-supply = <&pm8994_s7>; + vdd_cx-supply = <&pm8994_s1_corner>; + vdd_mx-supply = <&pm8994_s2_corner>; + vdd_mx-uV = <7>; + vdd_pll-supply = <&pm8994_l12>; + qcom,vdd_pll = <1800000>; + qcom,firmware-name = "modem"; + qcom,pil-self-auth; + qcom,mba-image-is-not-elf; + qcom,sysmon-id = <0>; + + /* GPIO inputs from mss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>; + + /* GPIO output to mss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; + + contiguous-region = <&modem_mem>; + }; + + qcom,lpass@fe200000 { + compatible = "qcom,pil-tz-generic"; + reg = <0xfe200000 0x00100>; + interrupts = <0 162 1>; + + vdd_cx-supply = <&pm8994_s1_corner>; + qcom,proxy-reg-names = "vdd_cx"; + qcom,vdd_cx-uV-uA = <7 100000>; + + clocks = <&clock_gcc clk_gcc_lpass_q6_axi_clk>, + <&clock_rpm clk_cxo_pil_lpass_clk>, + <&clock_rpm clk_scm_ce1_clk>; + clock-names = "bus_clk", "xo", "scm_ce1_clk"; + qcom,active-clock-names = "bus_clk"; + qcom,proxy-clock-names = "xo", "scm_ce1_clk"; + qcom,scm_ce1_clk-freq = <85710000>; + + qcom,pas-id = <1>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <423>; + qcom,sysmon-id = <1>; + qcom,firmware-name = "adsp"; + + /* GPIO inputs from lpass */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_2_in 0 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_2_in 2 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_2_in 1 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_2_in 3 0>; + + /* GPIO output to lpass */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_2_out 0 0>; + + contiguous-region = <&peripheral_mem>; + }; + + clock_rpm: qcom,rpmcc@fc401880 { + compatible = "qcom,rpmcc-8994"; + reg = <0xfc401880 0x4>; + reg-names = "cc_base"; + #clock-cells = <1>; + }; + + clock_gcc: qcom,gcc@fc400000 { + compatible = "qcom,gcc-8994"; + reg = <0xfc400000 0x2000>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8994_s1_corner>; + clock-names = "xo", "xo_a_clk"; + clocks = <&clock_rpm clk_cxo_clk_src>, + <&clock_rpm clk_cxo_clk_src_ao>; + #clock-cells = <1>; + }; + + clock_mmss: qcom,mmsscc@fd8c0000 { + compatible = "qcom,mmsscc-8994"; + reg = <0xfd8c0000 0x5200>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8994_s1_corner>; + mmpll4_dig-supply = <&pm8994_s1_corner>; + mmpll4_analog-supply = <&pm8994_l12>; + clock-names = "xo", "gpll0", "mmssnoc_ahb", + "oxili_gfx3d_clk", "pclk0_src", "pclk1_src", + "byte0_src", "byte1_src", "extpclk_src"; + clocks = <&clock_rpm clk_cxo_clk_src>, + <&clock_gcc clk_gpll0_out_mmsscc>, + <&clock_rpm clk_mmssnoc_ahb_clk>, + <&clock_rpm clk_oxili_gfx3d_clk_src>, + <&mdss_dsi0_pll clk_pixel_clk_src>, + <&mdss_dsi0_pll clk_pixel_clk_src>, + <&mdss_dsi0_pll clk_byte_clk_src>, + <&mdss_dsi0_pll clk_byte_clk_src>, + <&mdss_hdmi_pll clk_hdmi_20nm_vco_clk>; + #clock-cells = <1>; + }; + + clock_debug: qcom,cc-debug@fc401880 { + compatible = "qcom,cc-debug-8994"; + reg = <0xfc401880 0x4>; + reg-names = "cc_base"; + clock-names = "debug_mmss_clk", "debug_rpm_clk", + "debug_cpu_clk"; + clocks = <&clock_mmss clk_mmss_debug_mux>, + <&clock_rpm clk_rpm_debug_mux>, + <&clock_cpu clk_cpu_debug_mux>; + #clock-cells = <1>; + }; + + cci_cache: qcom,cci { + compatible = "devfreq-simple-dev"; + clock-names = "devfreq_clk"; + clocks = <&clock_cpu clk_cci_clk>; + governor = "cpufreq"; + freq-tbl-khz = + < 150000 >, + < 200000 >, + < 249600 >, + < 300000 >, + < 384000 >, + < 499200 >, + < 600000 >; + }; + + cpubw: qcom,cpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 762 /* 100 MHz */ >, + < 1144 /* 150 MHz */ >, + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3562 /* 467 MHz */ >, + < 4066 /* 533 MHz */ >, + < 5126 /* 672 MHz */ >, + < 6072 /* 796 MHz */ >; + }; + + qcom,cpu-bwmon { + compatible = "qcom,bimc-bwmon"; + reg = <0xfc388000 0x300>, <0xfc381000 0x200>; + reg-names = "base", "global_base"; + interrupts = <0 183 1>; + qcom,mport = <0>; + qcom,target-dev = <&cpubw>; + }; + + devfreq-cpufreq { + cpubw-cpufreq { + target-dev = <&cpubw>; + cpu-to-dev-map-0 = + < 199200 762 >, + < 302400 762 >, + < 384000 1144 >, + < 600000 1525 >, + < 691200 2288 >, + < 768000 3562 >, + < 844800 4066 >, + < 921600 5126 >, + < 940800 6072 >; + cpu-to-dev-map-4 = + < 199200 762 >, + < 302400 1144 >, + < 384000 1525 >, + < 600000 2288 >, + < 691200 3562 >, + < 768000 4066 >, + < 844800 5126 >, + < 921600 6072 >; + }; + cci-cpufreq { + target-dev = <&cci_cache>; + cpu-to-dev-map-0 = + < 199200 150000 >, + < 302400 200000 >, + < 384000 249600 >, + < 600000 300000 >, + < 691200 384000 >, + < 768000 384000 >, + < 844800 499200 >, + < 921600 600000 >, + < 940800 600000 >; + cpu-to-dev-map-4 = + < 199200 150000 >, + < 302400 200000 >, + < 384000 249600 >, + < 600000 300000 >, + < 691200 384000 >, + < 768000 499200 >, + < 844800 600000 >, + < 921600 600000 >; + }; + }; + + msm_cpufreq: qcom,msm-cpufreq { + compatible = "qcom,msm-cpufreq"; + clock-names = "l2_clk", "cpu0_clk", "cpu1_clk", "cpu2_clk", + "cpu3_clk", "cpu4_clk", "cpu5_clk", + "cpu6_clk", "cpu7_clk"; + clocks = <&clock_cpu clk_cci_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a53_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>, + <&clock_cpu clk_a57_clk>; + + qcom,governor-per-policy; + + qcom,cpufreq-table-0 = + < 199200 >, + < 302400 >, + < 384000 >, + < 600000 >, + < 691200 >, + < 768000 >, + < 844800 >, + < 921600 >, + < 940800 >; + + qcom,cpufreq-table-4 = + < 199200 >, + < 302400 >, + < 384000 >, + < 600000 >, + < 691200 >, + < 768000 >, + < 844800 >, + < 921600 >; + }; + + clock_cpu: qcom,cpu-clock-8994@f9015000 { + compatible = "qcom,cpu-clock-8994"; + reg = <0xf9015000 0x1000>, + <0xf9016000 0x1000>, + <0xf9011000 0x1000>, + <0xf900d000 0x1000>, + <0xf900f000 0x1000>, + <0xf9112000 0x1000>; + reg-names = "c0_pll", "c1_pll", "cci_pll", "c0_mux", "c1_mux", "cci_mux"; + vdd-a53-supply = <&apc0_vreg_corner>; + vdd-a57-supply = <&apc1_vreg_corner>; + vdd-cci-supply = <&apc0_vreg_corner>; + vdd-dig-supply = <&pm8994_s1_corner_ao>; + qcom,a53-speedbin0-v0 = + < 0 0>, + < 199200000 1>, + < 302400000 2>, + < 384000000 3>, + < 600000000 4>, + < 691200000 5>, + < 768000000 6>, + < 844800000 7>, + < 921600000 8>, + < 940800000 9>; + qcom,a57-speedbin0-v0 = + < 0 0>, + < 199200000 1>, + < 302400000 2>, + < 384000000 3>, + < 600000000 4>, + < 691200000 5>, + < 768000000 6>, + < 844800000 7>, + < 921600000 8>; + qcom,cci-speedbin0-v0 = + < 0 0>, + < 150000000 1>, + < 200000000 2>, + < 249600000 3>, + < 300000000 4>, + < 384000000 4>, + < 499200000 7>, + < 600000000 9>; + clock-names = "xo_ao", "aux_clk"; + clocks = <&clock_rpm clk_cxo_clk_src_ao>, + <&clock_gcc clk_gpll0_ao>; + #clock-cells = <1>; + }; + + ocmem: qcom,ocmem@fdd00000 { + compatible = "qcom,msm-ocmem"; + reg = <0xfdd00000 0x2000>, + <0xfdd02000 0x2000>, + <0xfe039000 0x400>, + <0xfec00000 0x200000>; + reg-names = "ocmem_ctrl_physical", "dm_ctrl_physical", "br_ctrl_physical", "ocmem_physical"; + interrupts = <0 76 0 0 77 0>; + interrupt-names = "ocmem_irq", "dm_irq"; + qcom,ocmem-num-regions = <0x4>; + qcom,ocmem-num-macros = <0x20>; + qcom,resource-type = <0x706d636f>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0xfec00000 0x200000>; + clocks = <&clock_rpm clk_ocmemgx_core_clk>, + <&clock_mmss clk_ocmemcx_ocmemnoc_clk>; + clock-names = "core_clk", "iface_clk"; + + partition@0 { + reg = <0x0 0x180000>; + qcom,ocmem-part-name = "graphics"; + qcom,ocmem-part-min = <0x80000>; + }; + + partition@100000 { + reg = <0x180000 0x80000>; + qcom,ocmem-part-name = "video"; + qcom,ocmem-part-min = <0x55000>; + }; + + }; + + msm_vidc: qcom,vidc@fdc00000 { + compatible = "qcom,msm-vidc"; + reg = <0xfdc00000 0xff000>; + interrupts = <0 44 0>; + qcom,hfi = "venus"; + qcom,reg-presets = <0x800D8 0x707>, + <0xe0020 0x55555556>, + <0xe0024 0x55555556>, + <0x80124 0x3>; + qcom,ocmem-size = <524288>; /* 512 * 1024*/ + qcom,max-hw-load = <1281600>; /* Full 4k @ 30 + 1080p @ 30 */ + qcom,clock-names = "core_clk", "core0_clk", "core1_clk", "core2_clk", + "iface_clk", "bus_clk", "mem_clk"; + clock-names = "core_clk", "core0_clk", "core1_clk", "core2_clk", + "iface_clk", "bus_clk", "mem_clk"; + venus-supply = <&gdsc_venus>; + venus-core0-supply = <&gdsc_venus_core0>; + venus-core1-supply = <&gdsc_venus_core1>; + venus-core2-supply = <&gdsc_venus_core2>; + qcom,clock-configs = <0x3 0x0 0x0 0x0 0x0 0x0 0x0>; + qcom,sw-power-collapse; + clocks = <&clock_mmss clk_venus0_vcodec0_clk>, + <&clock_mmss clk_venus0_core0_vcodec_clk>, + <&clock_mmss clk_venus0_core1_vcodec_clk>, + <&clock_mmss clk_venus0_core2_vcodec_clk>, + <&clock_mmss clk_venus0_ahb_clk>, + <&clock_mmss clk_venus0_axi_clk>, + <&clock_mmss clk_venus0_ocmemnoc_clk>; + qcom,load-freq-tbl = + <979200 465000000 0x0c000000>, + <979200 465000000 0x01000414>, + <979200 465000000 0x030fcfff>, + <979200 465000000 0x04000000>, + <783360 465000000 0x0c000000>, + <783360 465000000 0x01000414>, + <783360 465000000 0x030fcfff>, + <783360 465000000 0x04000000>, + <489600 240000000 0x0c000000>, + <489600 240000000 0x01000414>, + <489600 240000000 0x030fcfff>, + <489600 240000000 0x04000000>, + <244800 133330000 0x0c000000>, + <244800 133330000 0x01000414>, + <244800 133330000 0x030fcfff>, + <244800 133330000 0x04000000>; + + qcom,buffer-type-tz-usage-table = <0x241 0x1>, + <0x106 0x2>, + <0x480 0x3>; + qcom,vidc-iommu-domains { + qcom,domain-ns { + qcom,vidc-domain-phandle = <&venus_domain_ns>; + qcom,vidc-partition-buffer-types = <0x7ff>, + <0x800>; + }; + qcom,domain-sec-bs { + qcom,vidc-domain-phandle = <&venus_domain_sec_bitstream>; + qcom,vidc-partition-buffer-types = <0x241>; + }; + qcom,domain-sec-px { + qcom,vidc-domain-phandle = <&venus_domain_sec_pixel>; + qcom,vidc-partition-buffer-types = <0x106>; + }; + qcom,domain-sec-np { + qcom,vidc-domain-phandle = <&venus_domain_sec_non_pixel>; + qcom,vidc-partition-buffer-types = <0x480>; + }; + }; + qcom,msm-bus-clients { + qcom,msm-bus-client@0 { + qcom,msm-bus,name = "venc-core0-ddr"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 133600 0>, + <63 512 402200 0>, + <63 512 916600 0>, + <63 512 1778400 0>, + <63 512 2812400 0>, + <63 512 3501800 0>, + <63 512 5567600 0>; + qcom,bus-configs = <0x1000414>; + }; + + qcom,msm-bus-client@1 { + qcom,msm-bus,name = "vdec-core0-ddr"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 303200 0>, + <63 512 787200 0>, + <63 512 1498200 0>, + <63 512 2921400 0>, + <63 512 4629200 0>, + <63 512 5767800 0>, + <63 512 6299000 0>; + qcom,bus-configs = <0xc000000>; + }; + + qcom,msm-bus-client@2 { + qcom,msm-bus,name = "vdec-core1-ddr"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 227800 0>, + <63 512 593400 0>, + <63 512 1142800 0>, + <63 512 2177000 0>, + <63 512 3417800 0>, + <63 512 4245000 0>, + <63 512 4773800 0>; + qcom,bus-configs = <0x30fcfff>; + }; + + qcom,msm-bus-client@3 { + qcom,msm-bus,name = "venc-core2-ddr"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 178000 0>, + <63 512 540000 0>, + <63 512 1518000 0>, + <63 512 2100000 0>, + <63 512 2798000 0>, + <63 512 3262000 0>, + <63 512 8114000 0>; + qcom,bus-configs = <0x04000000>; + }; + qcom,msm-bus-client@4 { + qcom,msm-bus,name = "venc-core1-ocmem"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <68 604 0 0>, + <68 604 138000 2384000>, + <68 604 414000 2384000>, + <68 604 940000 2384000>, + <68 604 1880000 3632000>, + <68 604 3574000 3632000>, + <68 604 3812000 3632000>, + <68 604 4467000 3632000>; + qcom,bus-configs = <0x10000414>; + }; + qcom,msm-bus-client@5 { + qcom,msm-bus,name = "venc-core2-ocmem"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <68 604 0 0>, + <68 604 142000 2384000>, + <68 604 428000 2384000>, + <68 604 1128000 2384000>, + <68 604 20050000 3632000>, + <68 604 40800000 3632000>, + <68 604 46970000 3632000>, + <68 604 5101000 3632000>; + qcom,bus-configs = <0x04000000>; + }; + + qcom,msm-bus-client@6 { + qcom,msm-bus,name = "vdec-core0-ocmem"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <68 604 0 0>, + <68 604 158000 2384000>, + <68 604 401000 2384000>, + <68 604 734000 2384000>, + <68 604 1469000 3632000>, + <68 604 2350000 3632000>, + <68 604 2507000 3632000>, + <68 604 2938000 3632000>; + qcom,bus-configs = <0xc000000>; + }; + + qcom,msm-bus-client@7 { + qcom,msm-bus,name = "vdec-core1-ocmem"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <68 604 0 0>, + <68 604 176000 2384000>, + <68 604 456000 2384000>, + <68 604 864000 2384000>, + <68 604 1729000 3632000>, + <68 604 2747000 3632000>, + <68 604 2930000 3632000>, + <68 604 3433000 3632000>; + qcom,bus-configs = <0x30fcfff>; + }; + }; + }; + + i2c_2: i2c@f9924000 { /* BLSP1 QUP2 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0xf9924000 0x1000>, + <0xf9904000 0x19000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 96 0>, <0 238 0>; + qcom,clk-freq-out = <100000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup2_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_2_active>; + pinctrl-1 = <&i2c_2_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <14>; + qcom,bam-pipe-idx-prod = <15>; + qcom,master-id = <86>; + }; + + i2c_5: i2c@f9967000 { /* BLSP2 QUP5 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0xf9967000 0x1000>, + <0xf9944000 0x19000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 105 0>, <0 239 0>; + qcom,clk-freq-out = <100000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup5_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_5_active>; + pinctrl-1 = <&i2c_5_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <20>; + qcom,bam-pipe-idx-prod = <21>; + qcom,master-id = <84>; + }; + + i2c_6: i2c@f9928000 { /* BLSP1 QUP6 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + reg-names = "qup_phys_addr", "bam_phys_addr"; + reg = <0xf9928000 0x1000>, + <0xf9904000 0x19000>; + interrupt-names = "qup_irq", "bam_irq"; + interrupts = <0 100 0>, <0 238 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup6_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_6_active>; + pinctrl-1 = <&i2c_6_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,bam-pipe-idx-cons = <22>; + qcom,bam-pipe-idx-prod = <23>; + qcom,master-id = <86>; + }; + + sound { + compatible = "qcom,msm8994-asoc-snd"; + qcom,model = "msm8994-tomtom-snd-card"; + reg = <0xfe034000 0x4>, + <0xfe035000 0x4>, + <0xfe036000 0x4>, + <0xfe037000 0x4>; + reg-names = "lpaif_pri_mode_muxsel", + "lpaif_sec_mode_muxsel", + "lpaif_tert_mode_muxsel", + "lpaif_quat_mode_muxsel"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "LDO_H", "MCLK", + "AIF4 MAD", "MCLK", + "AMIC1", "MIC BIAS1 Internal1", + "MIC BIAS1 Internal1", "Handset Mic", + "AMIC2", "MIC BIAS2 External", + "MIC BIAS2 External", "Headset Mic", + "AMIC3", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCRight Headset Mic", + "AMIC4", "MIC BIAS2 External", + "MIC BIAS2 External", "ANCLeft Headset Mic", + "DMIC1", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic1", + "DMIC2", "MIC BIAS1 External", + "MIC BIAS1 External", "Digital Mic2", + "DMIC3", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic3", + "DMIC4", "MIC BIAS3 External", + "MIC BIAS3 External", "Digital Mic4", + "DMIC5", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic5", + "DMIC6", "MIC BIAS4 External", + "MIC BIAS4 External", "Digital Mic6"; + + clock-names = "osr_clk"; + clocks = <&clock_rpm clk_div_clk1>; + qcom,cdc-mclk-gpios = <&pm8994_gpios 15 0>; + qcom,tomtom-mclk-clk-freq = <9600000>; + pinctrl-names = "mi2s-sleep", + "mi2s-active", + "auxpcm-sleep", + "auxpcm-active"; + pinctrl-0 = <&pri_mi2s_sleep>, <&pri_mi2s_sd0_sleep>; + pinctrl-1 = <&pri_mi2s_active>, <&pri_mi2s_sd0_active>; + pinctrl-2 = <&sec_aux_pcm_sleep>, <&sec_aux_pcm_din_sleep>; + pinctrl-3 = <&sec_aux_pcm_active>, <&sec_aux_pcm_din_active>; + }; + + qcom,msm-adsp-loader { + compatible = "qcom,adsp-loader"; + qcom,adsp-state = <0>; + }; + + qcom,msm-audio-ion { + compatible = "qcom,msm-audio-ion"; + }; + + qcom,msm-pcm { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <0>; + }; + + qcom,msm-pcm-lpa { + compatible = "qcom,msm-pcm-lpa"; + }; + + qcom,msm-pcm-low-latency { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <1>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "regular"; + }; + + qcom,msm-pcm-routing { + compatible = "qcom,msm-pcm-routing"; + }; + + qcom,msm-compr-dsp { + compatible = "qcom,msm-compr-dsp"; + }; + + qcom,msm-compress-dsp { + compatible = "qcom,msm-compress-dsp"; + }; + + qcom,msm-voip-dsp { + compatible = "qcom,msm-voip-dsp"; + }; + + qcom,msm-pcm-voice { + compatible = "qcom,msm-pcm-voice"; + }; + + qcom,msm-stub-codec { + compatible = "qcom,msm-stub-codec"; + }; + + qcom,msm-dai-fe { + compatible = "qcom,msm-dai-fe"; + }; + + qcom,msm-pcm-afe { + compatible = "qcom,msm-pcm-afe"; + }; + + qcom,msm-dai-q6-hdmi { + compatible = "qcom,msm-dai-q6-hdmi"; + qcom,msm-dai-q6-dev-id = <8>; + }; + + qcom,msm-lsm-client { + compatible = "qcom,msm-lsm-client"; + }; + + qcom,msm-pcm-loopback { + compatible = "qcom,msm-pcm-loopback"; + }; + + qcom,msm-dai-q6 { + compatible = "qcom,msm-dai-q6"; + qcom,msm-dai-q6-sb-0-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16384>; + }; + + qcom,msm-dai-q6-sb-0-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16385>; + }; + + qcom,msm-dai-q6-sb-1-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16386>; + }; + + qcom,msm-dai-q6-sb-1-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16387>; + }; + + qcom,msm-dai-q6-sb-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16388>; + }; + + qcom,msm-dai-q6-sb-2-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16389>; + }; + + qcom,msm-dai-q6-sb-3-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16390>; + }; + + qcom,msm-dai-q6-sb-3-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16391>; + }; + + qcom,msm-dai-q6-sb-4-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16392>; + }; + + qcom,msm-dai-q6-sb-4-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16393>; + }; + + qcom,msm-dai-q6-sb-5-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16395>; + }; + + qcom,msm-dai-q6-bt-sco-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12288>; + }; + + qcom,msm-dai-q6-bt-sco-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12289>; + }; + + qcom,msm-dai-q6-int-fm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12292>; + }; + + qcom,msm-dai-q6-int-fm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12293>; + }; + + qcom,msm-dai-q6-be-afe-pcm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <224>; + }; + + qcom,msm-dai-q6-be-afe-pcm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <225>; + }; + + qcom,msm-dai-q6-afe-proxy-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <241>; + }; + + qcom,msm-dai-q6-afe-proxy-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <240>; + }; + + qcom,msm-dai-q6-incall-record-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32771>; + }; + + qcom,msm-dai-q6-incall-record-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32772>; + }; + + qcom,msm-dai-q6-incall-music-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32773>; + }; + + qcom,msm-dai-q6-incall-music-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32770>; + }; + }; + + qcom,msm-pri-auxpcm { + compatible = "qcom,msm-auxpcm-dev"; + qcom,msm-cpudai-auxpcm-mode = <0>, <0>; + qcom,msm-cpudai-auxpcm-sync = <1>, <1>; + qcom,msm-cpudai-auxpcm-frame = <5>, <4>; + qcom,msm-cpudai-auxpcm-quant = <2>, <2>; + qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>; + qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>; + qcom,msm-cpudai-auxpcm-data = <0>, <0>; + qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; + qcom,msm-auxpcm-interface = "primary"; + }; + + qcom,msm-sec-auxpcm { + compatible = "qcom,msm-auxpcm-dev"; + qcom,msm-cpudai-auxpcm-mode = <0>, <0>; + qcom,msm-cpudai-auxpcm-sync = <1>, <1>; + qcom,msm-cpudai-auxpcm-frame = <5>, <4>; + qcom,msm-cpudai-auxpcm-quant = <2>, <2>; + qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>; + qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>; + qcom,msm-cpudai-auxpcm-data = <0>, <0>; + qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; + qcom,msm-auxpcm-interface = "secondary"; + }; + + qcom,msm-dai-mi2s { + compatible = "qcom,msm-dai-mi2s"; + qcom,msm-dai-q6-mi2s-prim { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <0>; + qcom,msm-mi2s-rx-lines = <2>; + qcom,msm-mi2s-tx-lines = <1>; + }; + }; + + qcom,msm-pcm-hostless { + compatible = "qcom,msm-pcm-hostless"; + }; + + tsens: tsens@fc4a8000 { + compatible = "qcom,msm8994-tsens"; + reg = <0xfc4a8000 0x2000>, + <0xfc4bc000 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>; + qcom,sensors = <16>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200>; + }; + + qcom_tzlog: tz-log@fe87f720 { + compatible = "qcom,tz-log"; + reg = <0xfe87f720 0x1000>; + }; + + qcom_crypto: qcrypto@fd440000 { + compatible = "qcom,qcrypto"; + reg = <0xfd440000 0x20000>, + <0xfd444000 0x9000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 236 0>; + qcom,bam-pipe-pair = <2>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,msm-bus,name = "qcrypto-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 3936000 393600>; + clock-names = "core_clk", "iface_clk", "bus_clk"; + clocks = <&clock_rpm clk_ce2_clk>, + <&clock_rpm clk_gcc_ce2_ahb_m_clk>, + <&clock_rpm clk_gcc_ce2_axi_m_clk>; + qcom,use-sw-aes-cbc-ecb-ctr-algo; + qcom,use-sw-aes-xts-algo; + qcom,use-sw-aes-ccm-algo; + qcom,use-sw-ahash-algo; + status = "disabled"; + }; + + qcom_cedev: qcedev@fd440000 { + compatible = "qcom,qcedev"; + reg = <0xfd440000 0x20000>, + <0xfd444000 0x9000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 236 0>; + qcom,bam-pipe-pair = <1>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,msm-bus,name = "qcedev-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 3936000 393600>; + clock-names = "core_clk", "iface_clk", "bus_clk"; + clocks = <&clock_rpm clk_ce2_clk>, + <&clock_rpm clk_gcc_ce2_ahb_m_clk>, + <&clock_rpm clk_gcc_ce2_axi_m_clk>; + status = "disabled"; + }; + + qcom,qseecom@6500000 { + compatible = "qcom,qseecom"; + reg = <0x6500000 0x300000>; + reg-names = "secapp-region"; + qcom,disk-encrypt-pipe-pair = <2>; + qcom,hlos-ce-hw-instance = <0>; + qcom,qsee-ce-hw-instance = <0>; + qcom,msm-bus,name = "qseecom-noc"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,no-clock-support; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 0 0>, + <55 512 120000 1200000>, + <55 512 393600 3936000>; + clock-names = "core_clk"; + clocks = <&clock_rpm clk_qseecom_ce1_clk>; + }; + + qcom,sensor-information { + compatible = "qcom,sensor-information"; + sensor_information0: qcom,sensor-information@0 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor0"; + }; + + sensor_information1: qcom,sensor-information@1 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor1"; + }; + + sensor_information2: qcom,sensor-information@2 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor2"; + }; + + sensor_information3: qcom,sensor-information@3 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor3"; + }; + + sensor_information4: qcom,sensor-information@4 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor4"; + }; + + sensor_information5: qcom,sensor-information@5 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor5"; + }; + + sensor_information6: qcom,sensor-information@6 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor6"; + qcom,alias-name = "cpu7"; + }; + + sensor_information7: qcom,sensor-information@7 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor7"; + qcom,alias-name = "cpu0"; + }; + + sensor_information8: qcom,sensor-information@8 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor8"; + qcom,alias-name = "cpu1"; + }; + + sensor_information9: qcom,sensor-information@9 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor9"; + qcom,alias-name = "cpu2"; + }; + + sensor_information10: qcom,sensor-information@10 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor10"; + qcom,alias-name = "cpu3"; + }; + + sensor_information11: qcom,sensor-information@11 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor11"; + }; + + sensor_information12: qcom,sensor-information@12 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor12"; + }; + + sensor_information13: qcom,sensor-information@13 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor13"; + qcom,alias-name = "cpu4"; + }; + + sensor_information14: qcom,sensor-information@14 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor14"; + qcom,alias-name = "cpu5"; + }; + + sensor_information15: qcom,sensor-information@15 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor15"; + qcom,alias-name = "cpu6"; + }; + + sensor_information16: qcom,sensor-information@16 { + qcom,sensor-type = "alarm"; + qcom,sensor-name = "pm8994_tz"; + qcom,scaling-factor = <1000>; + }; + + sensor_information17: qcom,sensor-information@17 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "msm_therm"; + }; + + sensor_information18: qcom,sensor-information@18 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "emmc_therm"; + }; + + sensor_information19: qcom,sensor-information@19 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm0"; + }; + + sensor_information20: qcom,sensor-information@20 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm1"; + }; + + sensor_information21: qcom,sensor-information@21 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "quiet_therm"; + }; + }; + + qcom,msm-thermal { + compatible = "qcom,msm-thermal"; + qcom,sensor-id = <7>; + qcom,poll-ms = <250>; + qcom,limit-temp = <60>; + qcom,temp-hysteresis = <10>; + qcom,therm-reset-temp = <115>; + qcom,freq-step = <2>; + qcom,freq-control-mask = <0xff>; + qcom,core-limit-temp = <80>; + qcom,core-temp-hysteresis = <10>; + qcom,core-control-mask = <0xfe>; + qcom,hotplug-temp = <105>; + qcom,hotplug-temp-hysteresis = <20>; + qcom,cpu-sensors = "tsens_tz_sensor7", "tsens_tz_sensor8", + "tsens_tz_sensor9", "tsens_tz_sensor10", + "tsens_tz_sensor13", "tsens_tz_sensor14", + "tsens_tz_sensor15", "tsens_tz_sensor6"; + qcom,freq-mitigation-temp = <105>; + qcom,freq-mitigation-temp-hysteresis = <20>; + qcom,freq-mitigation-value = <302400>; + qcom,freq-mitigation-control-mask = <0x01>; + qcom,online-hotplug-core; + qcom,synchronous-cluster-id = <0 1>; + qcom,vdd-restriction-temp = <5>; + qcom,vdd-restriction-temp-hysteresis = <10>; + + vdd-dig-supply = <&pm8994_s1_floor_corner>; + vdd-gfx-supply = <&pmi8994_s2_floor_corner>; + + qcom,vdd-dig-rstr{ + qcom,vdd-rstr-reg = "vdd-dig"; + qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + qcom,vdd-gfx-rstr{ + qcom,vdd-rstr-reg = "vdd-gfx"; + qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + qcom,vdd-apps-rstr{ + qcom,vdd-rstr-reg = "vdd-apps"; + qcom,levels = <302400 600000 600000>; + qcom,freq-req; + }; + }; + + qcom,bcl { + compatible = "qcom,bcl"; + }; + + cnss: qcom,cnss@06300000 { + compatible = "qcom,cnss"; + reg = <0x06300000 0x200000>; + reg-names = "ramdump"; + wlan-en-gpio = <&msm_gpio 113 0>; + vdd-wlan-supply = <&bt_vreg>; + vdd-wlan-io-supply = <&pm8994_s4>; + vdd-wlan-xtal-supply = <&pm8994_l30>; + qcom,notify-modem-status; + pinctrl-names = "default"; + pinctrl-0 = <&cnss_default>; + qcom,wlan-rc-num = <1>; + qcom,wlan-uart-access; + + qcom,msm-bus,name = "msm-cnss"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <45 512 0 0>, /* No vote */ + <45 512 6250 200000>, /* 50 Mbps */ + <45 512 25000 200000>, /* 200 Mbps */ + <45 512 100000 200000>; /* 800 Mbps */ + }; + + cpu-pmu { + compatible = "arm,armv8-pmuv3"; + qcom,irq-is-percpu; + interrupts = <1 14 0xff00>; + }; + + audio_heap { + compatible = "qcom,msm-shared-memory"; + qcom,proc-id = <1>; + contiguous-region = <&audio_mem>; + }; + + adsp_heap { + compatible = "qcom,msm-shared-memory"; + qcom,proc-id = <1>; + contiguous-region = <&adsp_mem>; + }; +}; + +&gdsc_usb30 { + reg = <0xfc4003c4 0x4>; + status = "ok"; +}; + +&gdsc_pcie_0 { + status = "ok"; +}; + +&gdsc_pcie_1 { + status = "ok"; +}; + +&gdsc_ufs { + status = "ok"; +}; + +&gdsc_venus { + clock-names = "ocmem_clk", "bus_clk", "core_clk"; + clocks = <&clock_mmss clk_venus0_ocmemnoc_clk>, + <&clock_mmss clk_venus0_axi_clk>, + <&clock_mmss clk_venus0_vcodec0_clk>; + status = "ok"; +}; + +&gdsc_venus_core0 { + qcom,support-hw-trigger; + clock-names = "core0_clk"; + clocks = <&clock_mmss clk_venus0_core0_vcodec_clk>; + status = "ok"; +}; + +&gdsc_venus_core1 { + qcom,support-hw-trigger; + clock-names = "core1_clk"; + clocks = <&clock_mmss clk_venus0_core1_vcodec_clk>; + status = "ok"; +}; + +&gdsc_venus_core2 { + qcom,support-hw-trigger; + clock-names = "core2_clk"; + clocks = <&clock_mmss clk_venus0_core2_vcodec_clk>; + status = "ok"; +}; + +&gdsc_mdss { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdss_mdp_clk>; + status = "ok"; +}; + +&gdsc_camss_top { + clock-names = "csi0_clk", "csi1_clk", "bus_clk"; + clocks = <&clock_mmss clk_camss_csi_vfe0_clk>, + <&clock_mmss clk_camss_csi_vfe1_clk>, + <&clock_mmss clk_camss_micro_ahb_clk>; + status = "ok"; +}; + +&gdsc_jpeg { + clock-names = "bus_clk", "core0_clk", "core1_clk", "core2_clk"; + clocks = <&clock_mmss clk_camss_jpeg_jpeg_axi_clk>, + <&clock_mmss clk_camss_jpeg_jpeg0_clk>, + <&clock_mmss clk_camss_jpeg_jpeg1_clk>, + <&clock_mmss clk_camss_jpeg_jpeg2_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_vfe { + clock-names = "bus_clk", "core0_clk", "core1_clk"; + clocks = <&clock_mmss clk_camss_vfe_vfe_axi_clk>, + <&clock_mmss clk_camss_vfe_vfe0_clk>, + <&clock_mmss clk_camss_vfe_vfe1_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_cpp { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_mmss clk_camss_vfe_cpp_axi_clk>, + <&clock_mmss clk_camss_vfe_cpp_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_fd { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_mmss clk_fd_axi_clk>, + <&clock_mmss clk_fd_core_clk>; + status = "ok"; +}; + +&gdsc_oxili_cx { + status = "ok"; +}; + +&gdsc_oxili_gx { + clock-names = "core_clk"; + clocks = <&clock_mmss clk_oxili_gfx3d_clk>; + status = "ok"; + parent-supply = <&pmi8994_s2_corner>; +}; + +#include "msm-pm8994-rpm-regulator.dtsi" +#include "msm-pm8994.dtsi" +#include "msm-pmi8994.dtsi" +#include "msm8994-regulator.dtsi" +#include "msm8994-ion.dtsi" +#include "msm8994-iommu.dtsi" +#include "msm8994-iommu-domains.dtsi" +#include "msm8994-camera.dtsi" +#include "msm8994-gpu.dtsi" +#include "msm8994-pm.dtsi" |