ARM64: dts: rk3399: move opp tables to rk3399-opp.dtsi
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3399-mid-818-android.dts
index eefd8fd5df084c7e972a1c903957ab482cb1af7e..7bf26d7fb4521604e787d5513234a10d355ca435 100644 (file)
 
 #include "rk3399.dtsi"
 #include "rk3399-android.dtsi"
+#include "rk3399-opp.dtsi"
 #include <dt-bindings/sensor-dev.h>
+#include <dt-bindings/pwm/pwm.h>
 
 / {
        compatible = "rockchip,rk3399-mid", "rockchip,rk3399";
 
+       hall_sensor: hall-mh248 {
+               compatible = "hall-mh248";
+               pinctrl-names = "default";
+               pinctrl-0 = <&mh248_irq_gpio>;
+               irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_BOTH>;
+               hall-active = <1>;
+               status = "okay";
+       };
+
        vcc_sys: vcc-sys {
                compatible = "regulator-fixed";
                regulator-name = "vcc_sys";
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm0 0 25000 0>;
+               pwms = <&vop0_pwm 0 25000 PWM_POLARITY_INVERTED>;
                brightness-levels = <
-                       255 254 253 252 251 250 249 248 247 246 245 244
-                       243 242 241 240 239 238 237 236 235 234 233 232
-                       231 230 229 228 227 226 225 224 223 222 221 220
-                       219 218 217 216 215 214 213 212 211 210 209 208
-                       207 206 205 204 203 202 201 200 199 198 197 196
-                       195 194 193 192 191 190 189 188 187 186 185 184
-                       183 182 181 180 179 178 177 176 175 174 173 172
-                       171 170 169 168 167 166 165 164 163 162 161 160
-                       159 158 157 156 155 154 153 152 151 150 149 148
-                       147 146 145 144 143 142 141 140 139 138 137 136
-                       135 134 133 132 131 130 129 128 127 126 125 124
-                       123 122 121 120 119 118 117 116 115 114 113 112
-                       111 110 109 108 107 106 105 104 103 102 101 100
-                        99  98  97  96  95  94  93  92  91  90  89  88
-                        87  86  85  84  83  82  81  80  79  78  77  76
-                        75  74  73  72  71  70  69  68  67  66  65  64
-                        63  62  61  60  59  58  57  56  55  54  53  52
-                        51  50  49  48  47  46  45  44  43  42  41  40
-                        39  38  37  36  35  34  33  32  31  30  29  28
-                        27  26  25  24  23  22  21  20  19  18  17  16
-                        15  14  13  12  11  10   9   8   7   6   5   4
-                         3   2   1   0>;
+                       0   1   51  52  52  53  53  54
+                       54  55  55  56  56  57  57  58
+                       58  59  59  60  61  61  62  63
+                       63  64  65  65  66  67  67  68
+                       69  69  70  71  71  72  73  73
+                       74  75  75  76  77  77  78  79
+                       79  80  80  81  81  82  83  83
+                       84  85  86  86  87  88  89  89
+                       90  91  92  92  93  94  95  95
+                       96  97  98  98  99 100 101  101
+                       102 103 104 104 105 106 107 107
+                       108 109 110 110 111 112 113 113
+                       114 115 116 116 117 118 119 119
+                       120 121 122 122 123 124 125 125
+                       126 127 128 128 129 130 131 131
+                       132 133 134 134 135 136 137 137
+                       138 139 140 140 141 142 143 143
+                       144 145 146 146 147 148 149 149
+                       150 151 152 152 153 154 155 155
+                       156 157 158 158 159 160 161 161
+                       162 163 164 164 165 166 167 167
+                       168 169 170 170 171 172 173 173
+                       174 175 176 176 177 178 179 179
+                       180 181 182 182 183 184 185 185
+                       186 187 188 188 189 190 191 191
+                       216 217 218 218 219 220 221 221
+                       222 223 224 224 225 226 227 227
+                       228 229 230 230 231 232 233 233
+                       234 235 236 236 237 238 239 239
+                       240 241 242 242 243 244 245 245
+                       246 247 248 248 249 250 251 251
+                       252 253 254 254 255 255 255 255>;
                default-brightness-level = <200>;
                enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
        };
 
        wireless-bluetooth {
                compatible = "bluetooth-platdata";
+               clocks = <&rk818 1>;
+               clock-names = "ext_clock";
                //wifi-bt-power-toggle;
                uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>; /* GPIO2_C3 */
                pinctrl-names = "default", "rts_gpio";
                BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>; /* GPIO0_A4 */
                status = "okay";
        };
+
+       uboot-charge {
+               compatible = "rockchip,uboot-charge";
+               rockchip,uboot-charge-on = <0>;
+               rockchip,android-charge-on = <1>;
+       };
+
+       vibrator {
+               compatible = "rk-vibrator-gpio";
+               vibrator-gpio = <&gpio4 30 GPIO_ACTIVE_LOW>;
+               status = "okay";
+       };
+
+       rk_headset {
+               compatible = "rockchip_headset";
+               headset_gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_det>;
+               io-channels = <&saradc 2>;
+       };
+};
+
+&rk_key {
+       compatible = "rockchip,key";
+       status = "okay";
+
+       io-channels = <&saradc 1>;
+
+       vol-up-key {
+               linux,code = <114>;
+               label = "volume up";
+               rockchip,adc_value = <1>;
+       };
+
+       vol-down-key {
+               linux,code = <115>;
+               label = "volume down";
+               rockchip,adc_value = <170>;
+       };
+
+       power-key {
+               gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+               linux,code = <116>;
+               label = "power";
+               gpio-key,wakeup;
+       };
+
+       menu-key {
+               linux,code = <59>;
+               label = "menu";
+               rockchip,adc_value = <746>;
+       };
+
+       home-key {
+               linux,code = <102>;
+               label = "home";
+               rockchip,adc_value = <355>;
+       };
+
+       back-key {
+               linux,code = <158>;
+               label = "back";
+               rockchip,adc_value = <560>;
+       };
+
+       camera-key {
+               linux,code = <212>;
+               label = "camera";
+               rockchip,adc_value = <450>;
+       };
 };
 
 &sdmmc {
        cap-sd-highspeed;
        disable-wp;
        num-slots = <1>;
-       sd-uhs-sdr104;
+       //sd-uhs-sdr104;
        vqmmc-supply = <&vcc_sd>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 };
 
 &emmc_phy {
-       freq-sel = <200000000>;
-       dr-sel = <50>;
-       opdelay = <4>;
        status = "okay";
 };
 
        mmc-hs400-1_8v;
        supports-emmc;
        non-removable;
+       keep-power-in-suspend;
        mmc-hs400-enhanced-strobe;
        status = "okay";
 };
        i2c-scl-falling-time-ns = <30>;
        clock-frequency = <400000>;
 
-       xz3216: dcdc@60 {
-               compatible = "xz3216";
-               reg = <0x60>;
-               status = "okay";
-               regulators {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       vdd_cpu_b: regulator@0 {
-                               reg = <0>;
-                               vin-supply = <&vcc_sys>;
-                               regulator-compatible = "xz_dcdc1";
-                               regulator-name = "vdd_cpu_b";
-                               regulator-min-microvolt = <712500>;
-                               regulator-max-microvolt = <1500000>;
-                               regulator-ramp-delay = <1000>;
-                               fcs,suspend-voltage-selector = <1>;
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
+       vdd_cpu_b: syr837@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               vin-supply = <&vcc_sys>;
+               regulator-compatible = "fan53555-reg";
+               pinctrl-0 = <&vsel1_gpio>;
+               vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vdd_cpu_b";
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1500000>;
+               regulator-ramp-delay = <1000>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-always-on;
+               regulator-initial-state = <3>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
                };
        };
 
                reg = <0x41>;
                vin-supply = <&vcc_sys>;
                regulator-compatible = "fan53555-reg";
+               pinctrl-0 = <&vsel2_gpio>;
+               vsel-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
                regulator-name = "vdd_gpu";
                regulator-min-microvolt = <735000>;
                regulator-max-microvolt = <1400000>;
                regulator-ramp-delay = <1000>;
                fcs,suspend-voltage-selector = <1>;
-               regulator-always-on;
                regulator-boot-on;
                regulator-state-mem {
                        regulator-off-in-suspend;
                rockchip,system-power-controller;
                rk818,support_dc_chg = <1>;/*1: dc chg; 0:usb chg*/
                wakeup-source;
+               extcon = <&fusb0>;
                #clock-cells = <1>;
 
                vcc1-supply = <&vcc_sys>;
                                regulator-max-microvolt = <1350000>;
                                regulator-ramp-delay = <6001>;
                                regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <1000000>;
+                                       regulator-off-in-suspend;
                                };
                        };
 
                                regulator-max-microvolt = <3000000>;
                                regulator-name = "vcc_3v0";
                                regulator-state-mem {
-                                       regulator-off-in-suspend;
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
                                };
                        };
 
                                regulator-max-microvolt = <1500000>;
                                regulator-name = "vcc_1v5";
                                regulator-state-mem {
-                                       regulator-off-in-suspend;
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1500000>;
                                };
                        };
 
                                regulator-max-microvolt = <3300000>;
                                regulator-name = "vcc3v3_s3";
                                regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <3300000>;
+                                       regulator-off-in-suspend;
                                };
                        };
 
                        vcc_sd: LDO_REG9 {
                                regulator-always-on;
                                regulator-boot-on;
-                               regulator-min-microvolt = <3000000>;
-                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
                                regulator-name = "vcc_sd";
                                regulator-state-mem {
                                        regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <3000000>;
+                                       regulator-suspend-microvolt = <3300000>;
                                };
                        };
 
                };
 
                battery {
+                       compatible = "rk818-battery";
                        ocv_table = <3400 3675 3689 3716 3740 3756 3768 3780
                                3793 3807 3827 3853 3896 3937 3974 4007 4066
                                4110 4161 4217 4308>;
                        design_capacity = <7916>;
                        design_qmax = <8708>;
-                       bat_res = <100>;
+                       bat_res = <65>;
                        max_input_current = <3000>;
-                       max_chrg_current = <4500>;
+                       max_chrg_current = <3000>;
                        max_chrg_voltage = <4350>;
                        sleep_enter_current = <300>;
                        sleep_exit_current = <300>;
                        power_off_thresd = <3400>;
                        zero_algorithm_vol = <3950>;
-                       fb_temperature = <115>;
+                       fb_temperature = <105>;
+                       sample_res = <20>;
                        max_soc_offset = <60>;
                        energy_mode = <0>;
                        monitor_sec = <5>;
                        virtual_power = <0>;
                        power_dc2otg = <0>;
-                       dc_det_adc = <0>;
                };
        };
 };
        es8316: es8316@10 {
                #sound-dai-cells = <0>;
                compatible = "everest,es8316";
-               reg = <0x10>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&hp_det>;
+               reg = <0x11>;
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                clock-names = "mclk";
                spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
-               hp-det-gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
        };
 };
 
        i2c-scl-falling-time-ns = <11>;
        clock-frequency = <400000>;
 
-       mpu6500@68 {
+       lsm330_accel@1e {
                status = "okay";
+               compatible = "lsm330_acc";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lsm330a_irq_gpio>;
+               reg = <0x1e>;
+               irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
+               type = <SENSOR_TYPE_ACCEL>;
+               irq_enable = <1>;
+               poll_delay_ms = <30>;
+               power-off-in-suspend = <1>;
+               layout = <4>;
+       };
+
+       lsm330_gyro@6a {
+               status = "okay";
+               compatible = "lsm330_gyro";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lsm330g_irq_gpio>;
+               reg = <0x6a>;
+               irq-gpio = <&gpio1 20 IRQ_TYPE_EDGE_RISING>;
+               type = <SENSOR_TYPE_GYROSCOPE>;
+               irq_enable = <0>;
+               power-off-in-suspend = <1>;
+               poll_delay_ms = <30>;
+       };
+
+       mpu6500@68 {
+               status = "disabled";
                compatible = "invensense,mpu6500";
                pinctrl-names = "default";
                pinctrl-0 = <&mpu6500_irq_gpio>;
                orientation-x= <1>;
                orientation-y= <1>;
                orientation-z= <0>;
+               support-hw-poweroff = <1>;
                mpu-debug = <1>;
        };
 
                layout = <3>;
        };
 
-       sensor@20 {
-               status = "disabled";
+       sensor@10 {
+               status = "okay";
                compatible = "capella,light_cm3218";
                pinctrl-names = "default";
                pinctrl-0 = <&cm3218_irq_gpio>;
-               reg = <0x20>;
+               reg = <0x10>;
                type = <SENSOR_TYPE_LIGHT>;
-               irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_RISING>;
+               irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_FALLING>;
                irq_enable = <1>;
                poll_delay_ms = <30>;
        };
+
+       fusb0: fusb30x@22 {
+               compatible = "fairchild,fusb302";
+               reg = <0x22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&fusb0_int>;
+               int-n-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+               status = "okay";
+       };
 };
 
 &i2c5 {
                orientation-x= <1>;
                orientation-y= <0>;
                orientation-z= <1>;
+               support-hw-poweroff = <1>;
                mpu-debug = <1>;
        };
 };
 
+&tcphy0 {
+       extcon = <&fusb0>;
+       status = "okay";
+};
+
 &tsadc {
        rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
        rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
        status = "okay";
 };
 
-&u2phy1 {
+&u2phy0 {
        status = "okay";
+       extcon = <&fusb0>;
 
-       u2phy1_host: host-port {
+       u2phy0_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy0_host: host-port {
                phy-supply = <&vcc5v0_host>;
                status = "okay";
        };
        status = "okay";
 };
 
-&usb_host1_ehci {
-       status = "okay";
-};
-
-&usb_host1_ohci {
-       status = "okay";
-};
-
 &usbdrd3_0 {
+       extcon = <&fusb0>;
        status = "okay";
 };
 
        status = "okay";
 };
 
-&usbdrd3_1 {
-       status = "okay";
-};
-
-&usbdrd_dwc3_1 {
-       status = "okay";
-};
-
-&pwm0 {
+&vop0_pwm {
+       assigned-clocks = <&cru SCLK_VOP0_PWM>;
+       assigned-clock-rates = <50000000>;
        status = "okay";
 };
 
                        rockchip,pins =
                                <1 18 RK_FUNC_GPIO &pcfg_pull_down>;
                };
+               vsel1_gpio: vsel1-gpio {
+                       rockchip,pins =
+                               <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+               vsel2_gpio: vsel2-gpio {
+                       rockchip,pins =
+                               <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       hallsensor {
+               mh248_irq_gpio: mh248-irq-gpio {
+                       rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
        };
 
        headphone {
                };
        };
 
+       lsm330_a {
+               lsm330a_irq_gpio: lsm330a-irq-gpio {
+                       rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       lsm330_g {
+               lsm330g_irq_gpio: lsm330g-irq-gpio {
+                       rockchip,pins = <1 20 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        mpu6500 {
                mpu6500_irq_gpio: mpu6500-irq-gpio {
                        rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
 
        cm3218 {
                cm3218_irq_gpio: cm3218-irq-gpio {
-                       rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_none>;
+                       rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
 
                                <4 25 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       fusb30x {
+               fusb0_int: fusb0-int {
+                       rockchip,pins =
+                               <1 1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
 };
 
 &rk_screen {
        #include <dt-bindings/display/screen-timing/lcd-LP097Qx2.dtsi>
 };
 
+&cdn_dp_sound {
+       status = "okay";
+};
+
+&cdn_dp_fb {
+       status = "okay";
+       extcon = <&fusb0>;
+       phys = <&tcphy0_dp>;
+       dp_vop_sel = <DISPLAY_SOURCE_LCDC1>;
+};
+
 &vopb_rk_fb {
        status = "okay";
+       rockchip,cabc_mode = <1>;
        power_ctr: power_ctr {
                rockchip,debug = <0>;
 
 &edp_rk_fb {
        status = "okay";
 };
+
+&pvtm {
+       status = "okay";
+};
+
+&pmu_pvtm {
+       status = "okay";
+};