arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / mediatek / mt6795-sony-xperia-m5.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2022, Collabora Ltd
4  * Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
5  */
6
7 /dts-v1/;
8 #include <dt-bindings/gpio/gpio.h>
9 #include "mt6795.dtsi"
10 #include "mt6331.dtsi"
11
12 / {
13         model = "Sony Xperia M5";
14         compatible = "sony,xperia-m5", "mediatek,mt6795";
15         chassis-type = "handset";
16
17         aliases {
18                 mmc0 = &mmc0;
19                 mmc1 = &mmc1;
20                 mmc2 = &mmc2;
21                 serial0 = &uart0;
22                 serial1 = &uart1;
23         };
24
25         backlight_lcd0: backlight {
26                 compatible = "led-backlight";
27                 leds = <&disp_led_pwm>, <&pmic_bl_led>;
28
29                 default-brightness-level = <300>;
30         };
31
32         led-controller-display {
33                 compatible = "pwm-leds";
34
35                 disp_led_pwm: led-0 {
36                         label = "backlight-pwm";
37                         pwms = <&pwm0 0 500000>;
38                         max-brightness = <1024>;
39                 };
40         };
41
42         memory@40000000 {
43                 device_type = "memory";
44                 reg = <0 0x40000000 0 0x1e800000>;
45         };
46
47         reserved_memory: reserved-memory {
48                 #address-cells = <2>;
49                 #size-cells = <2>;
50                 ranges;
51
52                 /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
53                 bl31_secmon_reserved: secmon@43000000 {
54                         reg = <0 0x43000000 0 0x30000>;
55                         no-map;
56                 };
57
58                 /* preloader and bootloader regions cannot be touched */
59                 preloader-region@44800000 {
60                         reg = <0 0x44800000 0 0x100000>;
61                         no-map;
62                 };
63
64                 bootloader-region@46000000 {
65                         reg = <0 0x46000000 0 0x400000>;
66                         no-map;
67                 };
68         };
69
70         vreg_disp_avdd: regulator-disp-avdd {
71                 compatible = "regulator-fixed";
72                 regulator-name = "disp_avdd";
73                 regulator-min-microvolt = <5000000>;
74                 regulator-max-microvolt = <5000000>;
75                 gpio = <&pio 138 GPIO_ACTIVE_HIGH>;
76                 enable-active-high;
77         };
78
79         vreg_disp_avee: regulator-disp-avee {
80                 compatible = "regulator-fixed";
81                 regulator-name = "disp_avee";
82                 regulator-min-microvolt = <5000000>;
83                 regulator-max-microvolt = <5000000>;
84                 gpio = <&pio 139 GPIO_ACTIVE_HIGH>;
85                 enable-active-high;
86         };
87
88         vreg_disp_vddh: regulator-disp-vddh {
89                 compatible = "regulator-fixed";
90                 regulator-name = "disp_vddh";
91                 regulator-min-microvolt = <1800000>;
92                 regulator-max-microvolt = <1800000>;
93                 regulator-always-on;
94                 regulator-boot-on;
95         };
96 };
97
98 &dsi0 {
99         status = "okay";
100         #address-cells = <1>;
101         #size-cells = <0>;
102
103         panel: panel@0 {
104                 compatible = "sharp,ls060t1sx01";
105                 reg = <0>;
106                 avdd-supply = <&vreg_disp_avdd>;
107                 avee-supply = <&vreg_disp_avee>;
108                 vddi-supply = <&mt6331_vgp3_reg>;
109                 vddh-supply = <&vreg_disp_vddh>;
110                 reset-gpios = <&pio 106 GPIO_ACTIVE_LOW>;
111                 backlight = <&backlight_lcd0>;
112
113                 pinctrl-0 = <&disp_rst_pins>;
114                 pinctrl-names = "default";
115
116                 port {
117                         panel_in: endpoint {
118                                 remote-endpoint = <&dsi0_out>;
119                         };
120                 };
121         };
122
123         port {
124                 dsi0_out: endpoint {
125                         remote-endpoint = <&panel_in>;
126                 };
127         };
128 };
129
130 &fhctl {
131         clocks = <&apmixedsys CLK_APMIXED_MAINPLL>, <&apmixedsys CLK_APMIXED_MPLL>,
132                  <&apmixedsys CLK_APMIXED_MSDCPLL>;
133         mediatek,hopping-ssc-percent = <8>, <5>, <8>;
134         status = "okay";
135 };
136
137 &i2c0 {
138         pinctrl-names = "default";
139         pinctrl-0 = <&i2c0_pins>;
140         status = "okay";
141 };
142
143 &i2c1 {
144         pinctrl-names = "default";
145         pinctrl-0 = <&i2c1_pins>;
146         status = "okay";
147
148         accelerometer@10 {
149                 compatible = "bosch,bma255";
150                 reg = <0x10>;
151                 pinctrl-names = "default";
152                 pinctrl-0 = <&accel_pins>;
153         };
154
155         magnetometer@12 {
156                 compatible = "bosch,bmm150";
157                 reg = <0x12>;
158         };
159 };
160
161 &i2c2 {
162         pinctrl-names = "default";
163         pinctrl-0 = <&i2c2_pins>;
164         status = "okay";
165
166         touchscreen@20 {
167                 compatible = "syna,rmi4-i2c";
168                 reg = <0x20>;
169                 #address-cells = <1>;
170                 #size-cells = <0>;
171                 interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_FALLING>;
172                 pinctrl-names = "default";
173                 pinctrl-0 = <&ts_pins>;
174                 syna,startup-delay-ms = <160>;
175                 syna,reset-delay-ms = <90>;
176
177                 rmi4-f01@1 {
178                         reg = <0x1>;
179                         syna,nosleep-mode = <1>;
180                 };
181
182                 rmi4-f12@12 {
183                         reg = <0x12>;
184                         syna,sensor-type = <1>;
185                 };
186         };
187 };
188
189 &i2c3 {
190         pinctrl-names = "default";
191         pinctrl-0 = <&i2c3_pins>;
192         status = "okay";
193
194         pn547: nfc@28 {
195                 compatible = "nxp,pn544-i2c";
196                 reg = <0x28>;
197                 interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_RISING>;
198                 pinctrl-names = "default";
199                 pinctrl-0 = <&nfc_pins>;
200                 enable-gpios = <&pio 149 GPIO_ACTIVE_HIGH>;
201                 firmware-gpios = <&pio 94 GPIO_ACTIVE_HIGH>;
202         };
203
204         proximity@48 {
205                 compatible = "sensortek,stk3310";
206                 reg = <0x48>;
207                 interrupts-extended = <&pio 8 IRQ_TYPE_EDGE_FALLING>;
208                 pinctrl-names = "default";
209                 pinctrl-0 = <&proximity_pins>;
210         };
211 };
212
213 &mmc0 {
214         /* eMMC controller */
215         mediatek,latch-ck = <0x14>; /* hs400 */
216         mediatek,hs200-cmd-int-delay = <1>;
217         mediatek,hs400-cmd-int-delay = <1>;
218         mediatek,hs400-ds-dly3 = <0x1a>;
219         non-removable;
220         pinctrl-names = "default", "state_uhs";
221         pinctrl-0 = <&mmc0_pins_default>;
222         pinctrl-1 = <&mmc0_pins_uhs>;
223         vmmc-supply = <&mt6331_vemc33_reg>;
224         vqmmc-supply = <&mt6331_vio18_reg>;
225         status = "okay";
226 };
227
228 &mmc1 {
229         /* MicroSD card slot */
230         vmmc-supply = <&mt6331_vmc_reg>;
231         vqmmc-supply = <&mt6331_vmch_reg>;
232         status = "okay";
233 };
234
235 &mmc2 {
236         /* SDIO WiFi on MMC2 */
237         vmmc-supply = <&mt6331_vmc_reg>;
238         vqmmc-supply = <&mt6331_vmch_reg>;
239         status = "okay";
240 };
241
242 &mt6331_vgp3_reg {
243         regulator-min-microvolt = <1800000>;
244 };
245
246 &pio {
247         disp_rst_pins: lcm-pins {
248                 pins-rst {
249                         pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
250                 };
251         };
252
253         mmc0_pins_default: emmc-sdr-pins {
254                 pins-cmd-dat {
255                         pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>,
256                                  <PINMUX_GPIO155__FUNC_MSDC0_DAT1>,
257                                  <PINMUX_GPIO156__FUNC_MSDC0_DAT2>,
258                                  <PINMUX_GPIO157__FUNC_MSDC0_DAT3>,
259                                  <PINMUX_GPIO158__FUNC_MSDC0_DAT4>,
260                                  <PINMUX_GPIO159__FUNC_MSDC0_DAT5>,
261                                  <PINMUX_GPIO160__FUNC_MSDC0_DAT6>,
262                                  <PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
263                                  <PINMUX_GPIO162__FUNC_MSDC0_CMD>;
264                         input-enable;
265                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
266                 };
267
268                 pins-clk {
269                         pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
270                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
271                 };
272
273                 pins-rst {
274                         pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
275                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
276                 };
277         };
278
279         mmc0_pins_uhs: emmc-uhs-pins {
280                 pins-cmd-dat {
281                         pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>,
282                                  <PINMUX_GPIO155__FUNC_MSDC0_DAT1>,
283                                  <PINMUX_GPIO156__FUNC_MSDC0_DAT2>,
284                                  <PINMUX_GPIO157__FUNC_MSDC0_DAT3>,
285                                  <PINMUX_GPIO158__FUNC_MSDC0_DAT4>,
286                                  <PINMUX_GPIO159__FUNC_MSDC0_DAT5>,
287                                  <PINMUX_GPIO160__FUNC_MSDC0_DAT6>,
288                                  <PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
289                                  <PINMUX_GPIO162__FUNC_MSDC0_CMD>;
290                         input-enable;
291                         drive-strength = <MTK_DRIVE_6mA>;
292                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
293                 };
294
295                 pins-clk {
296                         pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
297                         drive-strength = <MTK_DRIVE_6mA>;
298                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
299                 };
300
301                 pins-rst {
302                         pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
303                         drive-strength = <MTK_DRIVE_6mA>;
304                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
305                 };
306
307                 pins-ds {
308                         pinmux = <PINMUX_GPIO164__FUNC_MSDC0_DSL>;
309                         drive-strength = <MTK_DRIVE_6mA>;
310                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
311                 };
312         };
313
314         nfc_pins: nfc-pins {
315                 pins-irq {
316                         pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
317                         bias-pull-down;
318                         input-enable;
319                 };
320
321                 pins-fw-ven {
322                         pinmux = <PINMUX_GPIO94__FUNC_GPIO94>,
323                                  <PINMUX_GPIO149__FUNC_GPIO149>;
324                 };
325         };
326
327         ts_pins: touchscreen-pins {
328                 pins-irq {
329                         pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
330                         bias-pull-up;
331                         input-enable;
332                 };
333
334                 pins-rst {
335                         pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
336                         output-high;
337                 };
338         };
339
340         proximity_pins: proximity-pins {
341                 pins-irq {
342                         pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
343                         bias-pull-up;
344                         input-enable;
345                 };
346         };
347
348         accel_pins: accelerometer-pins {
349                 pins-irq {
350                         pinmux = <PINMUX_GPIO12__FUNC_GPIO12>;
351                         bias-pull-up;
352                         input-enable;
353                 };
354         };
355
356         i2c0_pins: i2c0-pins {
357                 pins-bus {
358                         pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
359                                  <PINMUX_GPIO46__FUNC_SCL0>;
360                         input-enable;
361                 };
362         };
363
364         i2c1_pins: i2c1-pins {
365                 pins-bus {
366                         pinmux = <PINMUX_GPIO125__FUNC_SDA1>,
367                                  <PINMUX_GPIO126__FUNC_SCL1>;
368                         bias-disable;
369                 };
370         };
371
372         i2c2_pins: i2c2-pins {
373                 pins-bus {
374                         pinmux = <PINMUX_GPIO43__FUNC_SDA2>,
375                                  <PINMUX_GPIO44__FUNC_SCL2>;
376                         bias-disable;
377                 };
378         };
379
380         i2c3_pins: i2c3-pins {
381                 pins-bus {
382                         pinmux = <PINMUX_GPIO136__FUNC_SDA3>,
383                                  <PINMUX_GPIO137__FUNC_SCL3>;
384                         bias-disable;
385                 };
386         };
387
388         i2c4_pins: i2c4-pins {
389                 pins-bus {
390                         pinmux = <PINMUX_GPIO100__FUNC_SDA4>,
391                                  <PINMUX_GPIO101__FUNC_SCL4>;
392                         bias-disable;
393                 };
394         };
395
396         uart0_pins: uart0-pins {
397                 pins-rx {
398                         pinmux = <PINMUX_GPIO113__FUNC_URXD0>;
399                         bias-pull-up;
400                         input-enable;
401                 };
402                 pins-tx {
403                         pinmux = <PINMUX_GPIO114__FUNC_UTXD0>;
404                         output-high;
405                 };
406         };
407
408         uart2_pins: uart2-pins {
409                 pins-rx {
410                         pinmux = <PINMUX_GPIO31__FUNC_URXD2>;
411                         bias-pull-up;
412                         input-enable;
413                 };
414                 pins-tx {
415                         pinmux = <PINMUX_GPIO32__FUNC_UTXD2>;
416                 };
417         };
418 };
419
420 &pmic {
421         /*
422          * Smartphones, including the Xperia M5, are equipped with a companion
423          * MT6332 PMIC: when this is present, the main MT6331 PMIC will fire
424          * an interrupt on the companion, so we use the MT6332 IRQ GPIO.
425          */
426         interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
427
428         mt6332-led {
429                 compatible = "mediatek,mt6332-led";
430                 #address-cells = <1>;
431                 #size-cells = <0>;
432
433                 pmic_bl_led: led@0 {
434                         reg = <0>;
435                         label = "backlight-pmic";
436                 };
437         };
438 };
439
440 &pwm0 {
441         status = "okay";
442 };
443
444 &uart0 {
445         status = "okay";
446
447         pinctrl-names = "default";
448         pinctrl-0 = <&uart0_pins>;
449 };
450
451 &uart2 {
452         status = "okay";
453
454         pinctrl-names = "default";
455         pinctrl-0 = <&uart2_pins>;
456 };