1c9e7d216SAngeloGioacchino Del Regno// SPDX-License-Identifier: GPL-2.0-only
2c9e7d216SAngeloGioacchino Del Regno/*
3c9e7d216SAngeloGioacchino Del Regno * Copyright (c) 2022, Collabora Ltd
4c9e7d216SAngeloGioacchino Del Regno * Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
5c9e7d216SAngeloGioacchino Del Regno */
6c9e7d216SAngeloGioacchino Del Regno
7c9e7d216SAngeloGioacchino Del Regno/dts-v1/;
8f010d1b6SAngeloGioacchino Del Regno#include <dt-bindings/gpio/gpio.h>
9c9e7d216SAngeloGioacchino Del Regno#include "mt6795.dtsi"
10c9e7d216SAngeloGioacchino Del Regno
11c9e7d216SAngeloGioacchino Del Regno/ {
12c9e7d216SAngeloGioacchino Del Regno	model = "Sony Xperia M5";
13c9e7d216SAngeloGioacchino Del Regno	compatible = "sony,xperia-m5", "mediatek,mt6795";
14c9e7d216SAngeloGioacchino Del Regno	chassis-type = "handset";
15c9e7d216SAngeloGioacchino Del Regno
16c9e7d216SAngeloGioacchino Del Regno	aliases {
17c9e7d216SAngeloGioacchino Del Regno		mmc0 = &mmc0;
18c9e7d216SAngeloGioacchino Del Regno		mmc1 = &mmc1;
19c9e7d216SAngeloGioacchino Del Regno		serial0 = &uart0;
20c9e7d216SAngeloGioacchino Del Regno		serial1 = &uart1;
21c9e7d216SAngeloGioacchino Del Regno	};
22c9e7d216SAngeloGioacchino Del Regno
23c9e7d216SAngeloGioacchino Del Regno	memory@40000000 {
24c9e7d216SAngeloGioacchino Del Regno		device_type = "memory";
25c9e7d216SAngeloGioacchino Del Regno		reg = <0 0x40000000 0 0x1e800000>;
26c9e7d216SAngeloGioacchino Del Regno	};
27c9e7d216SAngeloGioacchino Del Regno
28c9e7d216SAngeloGioacchino Del Regno	reserved_memory: reserved-memory {
29c9e7d216SAngeloGioacchino Del Regno		#address-cells = <2>;
30c9e7d216SAngeloGioacchino Del Regno		#size-cells = <2>;
31c9e7d216SAngeloGioacchino Del Regno		ranges;
32c9e7d216SAngeloGioacchino Del Regno
33c9e7d216SAngeloGioacchino Del Regno		/* 128 KiB reserved for ARM Trusted Firmware (BL31) */
34c9e7d216SAngeloGioacchino Del Regno		bl31_secmon_reserved: secmon@43000000 {
35c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x43000000 0 0x30000>;
36c9e7d216SAngeloGioacchino Del Regno			no-map;
37c9e7d216SAngeloGioacchino Del Regno		};
38c9e7d216SAngeloGioacchino Del Regno
39c9e7d216SAngeloGioacchino Del Regno		/* preloader and bootloader regions cannot be touched */
40c9e7d216SAngeloGioacchino Del Regno		preloader-region@44800000 {
41c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x44800000 0 0x100000>;
42c9e7d216SAngeloGioacchino Del Regno			no-map;
43c9e7d216SAngeloGioacchino Del Regno		};
44c9e7d216SAngeloGioacchino Del Regno
45c9e7d216SAngeloGioacchino Del Regno		bootloader-region@46000000 {
46c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x46000000 0 0x400000>;
47c9e7d216SAngeloGioacchino Del Regno			no-map;
48c9e7d216SAngeloGioacchino Del Regno		};
49c9e7d216SAngeloGioacchino Del Regno	};
50c9e7d216SAngeloGioacchino Del Regno};
51c9e7d216SAngeloGioacchino Del Regno
52c63e6a46SAngeloGioacchino Del Regno&fhctl {
53c63e6a46SAngeloGioacchino Del Regno	clocks = <&apmixedsys CLK_APMIXED_MAINPLL>, <&apmixedsys CLK_APMIXED_MPLL>,
54c63e6a46SAngeloGioacchino Del Regno		 <&apmixedsys CLK_APMIXED_MSDCPLL>;
55c63e6a46SAngeloGioacchino Del Regno	mediatek,hopping-ssc-percent = <8>, <5>, <8>;
56c63e6a46SAngeloGioacchino Del Regno	status = "okay";
57c63e6a46SAngeloGioacchino Del Regno};
58c63e6a46SAngeloGioacchino Del Regno
599415e246SAngeloGioacchino Del Regno&i2c0 {
609415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
619415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c0_pins>;
629415e246SAngeloGioacchino Del Regno	status = "okay";
639415e246SAngeloGioacchino Del Regno};
649415e246SAngeloGioacchino Del Regno
659415e246SAngeloGioacchino Del Regno&i2c1 {
669415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
679415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c1_pins>;
689415e246SAngeloGioacchino Del Regno	status = "okay";
69*9b42966dSAngeloGioacchino Del Regno
70*9b42966dSAngeloGioacchino Del Regno	accelerometer@10 {
71*9b42966dSAngeloGioacchino Del Regno		compatible = "bosch,bma255";
72*9b42966dSAngeloGioacchino Del Regno		reg = <0x10>;
73*9b42966dSAngeloGioacchino Del Regno		pinctrl-names = "default";
74*9b42966dSAngeloGioacchino Del Regno		pinctrl-0 = <&accel_pins>;
75*9b42966dSAngeloGioacchino Del Regno	};
769415e246SAngeloGioacchino Del Regno};
779415e246SAngeloGioacchino Del Regno
789415e246SAngeloGioacchino Del Regno&i2c2 {
799415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
809415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c2_pins>;
819415e246SAngeloGioacchino Del Regno	status = "okay";
829e49cbefSAngeloGioacchino Del Regno
839e49cbefSAngeloGioacchino Del Regno	touchscreen@20 {
849e49cbefSAngeloGioacchino Del Regno		compatible = "syna,rmi4-i2c";
859e49cbefSAngeloGioacchino Del Regno		reg = <0x20>;
869e49cbefSAngeloGioacchino Del Regno		#address-cells = <1>;
879e49cbefSAngeloGioacchino Del Regno		#size-cells = <0>;
889e49cbefSAngeloGioacchino Del Regno		interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_FALLING>;
899e49cbefSAngeloGioacchino Del Regno		pinctrl-names = "default";
909e49cbefSAngeloGioacchino Del Regno		pinctrl-0 = <&ts_pins>;
919e49cbefSAngeloGioacchino Del Regno		syna,startup-delay-ms = <160>;
929e49cbefSAngeloGioacchino Del Regno		syna,reset-delay-ms = <90>;
939e49cbefSAngeloGioacchino Del Regno
949e49cbefSAngeloGioacchino Del Regno		rmi4-f01@1 {
959e49cbefSAngeloGioacchino Del Regno			reg = <0x1>;
969e49cbefSAngeloGioacchino Del Regno			syna,nosleep-mode = <1>;
979e49cbefSAngeloGioacchino Del Regno		};
989e49cbefSAngeloGioacchino Del Regno
999e49cbefSAngeloGioacchino Del Regno		rmi4-f12@12 {
1009e49cbefSAngeloGioacchino Del Regno			reg = <0x12>;
1019e49cbefSAngeloGioacchino Del Regno			syna,sensor-type = <1>;
1029e49cbefSAngeloGioacchino Del Regno		};
1039e49cbefSAngeloGioacchino Del Regno	};
1049415e246SAngeloGioacchino Del Regno};
1059415e246SAngeloGioacchino Del Regno
1069415e246SAngeloGioacchino Del Regno&i2c3 {
1079415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
1089415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c3_pins>;
1099415e246SAngeloGioacchino Del Regno	status = "okay";
110d5ed9a04SAngeloGioacchino Del Regno
111f010d1b6SAngeloGioacchino Del Regno	pn547: nfc@28 {
112f010d1b6SAngeloGioacchino Del Regno		compatible = "nxp,pn544-i2c";
113f010d1b6SAngeloGioacchino Del Regno		reg = <0x28>;
114f010d1b6SAngeloGioacchino Del Regno		interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_RISING>;
115f010d1b6SAngeloGioacchino Del Regno		pinctrl-names = "default";
116f010d1b6SAngeloGioacchino Del Regno		pinctrl-0 = <&nfc_pins>;
117f010d1b6SAngeloGioacchino Del Regno		enable-gpios = <&pio 149 GPIO_ACTIVE_HIGH>;
118f010d1b6SAngeloGioacchino Del Regno		firmware-gpios = <&pio 94 GPIO_ACTIVE_HIGH>;
119f010d1b6SAngeloGioacchino Del Regno	};
120f010d1b6SAngeloGioacchino Del Regno
121d5ed9a04SAngeloGioacchino Del Regno	proximity@48 {
122d5ed9a04SAngeloGioacchino Del Regno		compatible = "sensortek,stk3310";
123d5ed9a04SAngeloGioacchino Del Regno		reg = <0x48>;
124d5ed9a04SAngeloGioacchino Del Regno		interrupts-extended = <&pio 8 IRQ_TYPE_EDGE_FALLING>;
125d5ed9a04SAngeloGioacchino Del Regno		pinctrl-names = "default";
126d5ed9a04SAngeloGioacchino Del Regno		pinctrl-0 = <&proximity_pins>;
127d5ed9a04SAngeloGioacchino Del Regno	};
1289415e246SAngeloGioacchino Del Regno};
1299415e246SAngeloGioacchino Del Regno
130c9e7d216SAngeloGioacchino Del Regno&pio {
131f010d1b6SAngeloGioacchino Del Regno	nfc_pins: nfc-pins {
132f010d1b6SAngeloGioacchino Del Regno		pins-irq {
133f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
134f010d1b6SAngeloGioacchino Del Regno			bias-pull-down;
135f010d1b6SAngeloGioacchino Del Regno			input-enable;
136f010d1b6SAngeloGioacchino Del Regno		};
137f010d1b6SAngeloGioacchino Del Regno
138f010d1b6SAngeloGioacchino Del Regno		pins-fw-ven {
139f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO94__FUNC_GPIO94>,
140f010d1b6SAngeloGioacchino Del Regno				 <PINMUX_GPIO149__FUNC_GPIO149>;
141f010d1b6SAngeloGioacchino Del Regno		};
142f010d1b6SAngeloGioacchino Del Regno	};
143f010d1b6SAngeloGioacchino Del Regno
1449e49cbefSAngeloGioacchino Del Regno	ts_pins: touchscreen-pins {
1459e49cbefSAngeloGioacchino Del Regno		pins-irq {
1469e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
1479e49cbefSAngeloGioacchino Del Regno			bias-pull-up;
1489e49cbefSAngeloGioacchino Del Regno			input-enable;
1499e49cbefSAngeloGioacchino Del Regno		};
1509e49cbefSAngeloGioacchino Del Regno
1519e49cbefSAngeloGioacchino Del Regno		pins-rst {
1529e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
1539e49cbefSAngeloGioacchino Del Regno			output-high;
1549e49cbefSAngeloGioacchino Del Regno		};
1559e49cbefSAngeloGioacchino Del Regno	};
1569e49cbefSAngeloGioacchino Del Regno
157d5ed9a04SAngeloGioacchino Del Regno	proximity_pins: proximity-pins {
158d5ed9a04SAngeloGioacchino Del Regno		pins-irq {
159d5ed9a04SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
160d5ed9a04SAngeloGioacchino Del Regno			bias-pull-up;
161d5ed9a04SAngeloGioacchino Del Regno			input-enable;
162d5ed9a04SAngeloGioacchino Del Regno		};
163d5ed9a04SAngeloGioacchino Del Regno	};
164d5ed9a04SAngeloGioacchino Del Regno
165*9b42966dSAngeloGioacchino Del Regno	accel_pins: accelerometer-pins {
166*9b42966dSAngeloGioacchino Del Regno		pins-irq {
167*9b42966dSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO12__FUNC_GPIO12>;
168*9b42966dSAngeloGioacchino Del Regno			bias-pull-up;
169*9b42966dSAngeloGioacchino Del Regno			input-enable;
170*9b42966dSAngeloGioacchino Del Regno		};
171*9b42966dSAngeloGioacchino Del Regno	};
172*9b42966dSAngeloGioacchino Del Regno
1739415e246SAngeloGioacchino Del Regno	i2c0_pins: i2c0-pins {
1749415e246SAngeloGioacchino Del Regno		pins-bus {
1759415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
1769415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO46__FUNC_SCL0>;
1779415e246SAngeloGioacchino Del Regno			input-enable;
1789415e246SAngeloGioacchino Del Regno		};
1799415e246SAngeloGioacchino Del Regno	};
1809415e246SAngeloGioacchino Del Regno
1819415e246SAngeloGioacchino Del Regno	i2c1_pins: i2c1-pins {
1829415e246SAngeloGioacchino Del Regno		pins-bus {
1839415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO125__FUNC_SDA1>,
1849415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO126__FUNC_SCL1>;
1859415e246SAngeloGioacchino Del Regno			bias-disable;
1869415e246SAngeloGioacchino Del Regno		};
1879415e246SAngeloGioacchino Del Regno	};
1889415e246SAngeloGioacchino Del Regno
1899415e246SAngeloGioacchino Del Regno	i2c2_pins: i2c2-pins {
1909415e246SAngeloGioacchino Del Regno		pins-bus {
1919415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO43__FUNC_SDA2>,
1929415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO44__FUNC_SCL2>;
1939415e246SAngeloGioacchino Del Regno			bias-disable;
1949415e246SAngeloGioacchino Del Regno		};
1959415e246SAngeloGioacchino Del Regno	};
1969415e246SAngeloGioacchino Del Regno
1979415e246SAngeloGioacchino Del Regno	i2c3_pins: i2c3-pins {
1989415e246SAngeloGioacchino Del Regno		pins-bus {
1999415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO136__FUNC_SDA3>,
2009415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO137__FUNC_SCL3>;
2019415e246SAngeloGioacchino Del Regno			bias-disable;
2029415e246SAngeloGioacchino Del Regno		};
2039415e246SAngeloGioacchino Del Regno	};
2049415e246SAngeloGioacchino Del Regno
2059415e246SAngeloGioacchino Del Regno	i2c4_pins: i2c4-pins {
2069415e246SAngeloGioacchino Del Regno		pins-bus {
2079415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO100__FUNC_SDA4>,
2089415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO101__FUNC_SCL4>;
2099415e246SAngeloGioacchino Del Regno			bias-disable;
2109415e246SAngeloGioacchino Del Regno		};
2119415e246SAngeloGioacchino Del Regno	};
2129415e246SAngeloGioacchino Del Regno
213c9e7d216SAngeloGioacchino Del Regno	uart0_pins: uart0-pins {
214c9e7d216SAngeloGioacchino Del Regno		pins-rx {
215c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO113__FUNC_URXD0>;
216c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
217c9e7d216SAngeloGioacchino Del Regno			input-enable;
218c9e7d216SAngeloGioacchino Del Regno		};
219c9e7d216SAngeloGioacchino Del Regno		pins-tx {
220c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO114__FUNC_UTXD0>;
221c9e7d216SAngeloGioacchino Del Regno			output-high;
222c9e7d216SAngeloGioacchino Del Regno		};
223c9e7d216SAngeloGioacchino Del Regno	};
224c9e7d216SAngeloGioacchino Del Regno
225c9e7d216SAngeloGioacchino Del Regno	uart2_pins: uart2-pins {
226c9e7d216SAngeloGioacchino Del Regno		pins-rx {
227c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO31__FUNC_URXD2>;
228c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
229c9e7d216SAngeloGioacchino Del Regno			input-enable;
230c9e7d216SAngeloGioacchino Del Regno		};
231c9e7d216SAngeloGioacchino Del Regno		pins-tx {
232c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO32__FUNC_UTXD2>;
233c9e7d216SAngeloGioacchino Del Regno		};
234c9e7d216SAngeloGioacchino Del Regno	};
235c9e7d216SAngeloGioacchino Del Regno};
236c9e7d216SAngeloGioacchino Del Regno
237c9e7d216SAngeloGioacchino Del Regno&uart0 {
238c9e7d216SAngeloGioacchino Del Regno	status = "okay";
239c9e7d216SAngeloGioacchino Del Regno
240c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
241c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart0_pins>;
242c9e7d216SAngeloGioacchino Del Regno};
243c9e7d216SAngeloGioacchino Del Regno
244c9e7d216SAngeloGioacchino Del Regno&uart2 {
245c9e7d216SAngeloGioacchino Del Regno	status = "okay";
246c9e7d216SAngeloGioacchino Del Regno
247c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
248c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart2_pins>;
249c9e7d216SAngeloGioacchino Del Regno};
250