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"
10*e83a6b4bSAngeloGioacchino Del Regno#include "mt6331.dtsi"
11c9e7d216SAngeloGioacchino Del Regno
12c9e7d216SAngeloGioacchino Del Regno/ {
13c9e7d216SAngeloGioacchino Del Regno	model = "Sony Xperia M5";
14c9e7d216SAngeloGioacchino Del Regno	compatible = "sony,xperia-m5", "mediatek,mt6795";
15c9e7d216SAngeloGioacchino Del Regno	chassis-type = "handset";
16c9e7d216SAngeloGioacchino Del Regno
17c9e7d216SAngeloGioacchino Del Regno	aliases {
18c9e7d216SAngeloGioacchino Del Regno		mmc0 = &mmc0;
19c9e7d216SAngeloGioacchino Del Regno		mmc1 = &mmc1;
20c9e7d216SAngeloGioacchino Del Regno		serial0 = &uart0;
21c9e7d216SAngeloGioacchino Del Regno		serial1 = &uart1;
22c9e7d216SAngeloGioacchino Del Regno	};
23c9e7d216SAngeloGioacchino Del Regno
24c9e7d216SAngeloGioacchino Del Regno	memory@40000000 {
25c9e7d216SAngeloGioacchino Del Regno		device_type = "memory";
26c9e7d216SAngeloGioacchino Del Regno		reg = <0 0x40000000 0 0x1e800000>;
27c9e7d216SAngeloGioacchino Del Regno	};
28c9e7d216SAngeloGioacchino Del Regno
29c9e7d216SAngeloGioacchino Del Regno	reserved_memory: reserved-memory {
30c9e7d216SAngeloGioacchino Del Regno		#address-cells = <2>;
31c9e7d216SAngeloGioacchino Del Regno		#size-cells = <2>;
32c9e7d216SAngeloGioacchino Del Regno		ranges;
33c9e7d216SAngeloGioacchino Del Regno
34c9e7d216SAngeloGioacchino Del Regno		/* 128 KiB reserved for ARM Trusted Firmware (BL31) */
35c9e7d216SAngeloGioacchino Del Regno		bl31_secmon_reserved: secmon@43000000 {
36c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x43000000 0 0x30000>;
37c9e7d216SAngeloGioacchino Del Regno			no-map;
38c9e7d216SAngeloGioacchino Del Regno		};
39c9e7d216SAngeloGioacchino Del Regno
40c9e7d216SAngeloGioacchino Del Regno		/* preloader and bootloader regions cannot be touched */
41c9e7d216SAngeloGioacchino Del Regno		preloader-region@44800000 {
42c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x44800000 0 0x100000>;
43c9e7d216SAngeloGioacchino Del Regno			no-map;
44c9e7d216SAngeloGioacchino Del Regno		};
45c9e7d216SAngeloGioacchino Del Regno
46c9e7d216SAngeloGioacchino Del Regno		bootloader-region@46000000 {
47c9e7d216SAngeloGioacchino Del Regno			reg = <0 0x46000000 0 0x400000>;
48c9e7d216SAngeloGioacchino Del Regno			no-map;
49c9e7d216SAngeloGioacchino Del Regno		};
50c9e7d216SAngeloGioacchino Del Regno	};
51c9e7d216SAngeloGioacchino Del Regno};
52c9e7d216SAngeloGioacchino Del Regno
53c63e6a46SAngeloGioacchino Del Regno&fhctl {
54c63e6a46SAngeloGioacchino Del Regno	clocks = <&apmixedsys CLK_APMIXED_MAINPLL>, <&apmixedsys CLK_APMIXED_MPLL>,
55c63e6a46SAngeloGioacchino Del Regno		 <&apmixedsys CLK_APMIXED_MSDCPLL>;
56c63e6a46SAngeloGioacchino Del Regno	mediatek,hopping-ssc-percent = <8>, <5>, <8>;
57c63e6a46SAngeloGioacchino Del Regno	status = "okay";
58c63e6a46SAngeloGioacchino Del Regno};
59c63e6a46SAngeloGioacchino Del Regno
609415e246SAngeloGioacchino Del Regno&i2c0 {
619415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
629415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c0_pins>;
639415e246SAngeloGioacchino Del Regno	status = "okay";
649415e246SAngeloGioacchino Del Regno};
659415e246SAngeloGioacchino Del Regno
669415e246SAngeloGioacchino Del Regno&i2c1 {
679415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
689415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c1_pins>;
699415e246SAngeloGioacchino Del Regno	status = "okay";
709b42966dSAngeloGioacchino Del Regno
719b42966dSAngeloGioacchino Del Regno	accelerometer@10 {
729b42966dSAngeloGioacchino Del Regno		compatible = "bosch,bma255";
739b42966dSAngeloGioacchino Del Regno		reg = <0x10>;
749b42966dSAngeloGioacchino Del Regno		pinctrl-names = "default";
759b42966dSAngeloGioacchino Del Regno		pinctrl-0 = <&accel_pins>;
769b42966dSAngeloGioacchino Del Regno	};
7713961ef8SAngeloGioacchino Del Regno
7813961ef8SAngeloGioacchino Del Regno	magnetometer@12 {
7913961ef8SAngeloGioacchino Del Regno		compatible = "bosch,bmm150";
8013961ef8SAngeloGioacchino Del Regno		reg = <0x12>;
8113961ef8SAngeloGioacchino Del Regno	};
829415e246SAngeloGioacchino Del Regno};
839415e246SAngeloGioacchino Del Regno
849415e246SAngeloGioacchino Del Regno&i2c2 {
859415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
869415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c2_pins>;
879415e246SAngeloGioacchino Del Regno	status = "okay";
889e49cbefSAngeloGioacchino Del Regno
899e49cbefSAngeloGioacchino Del Regno	touchscreen@20 {
909e49cbefSAngeloGioacchino Del Regno		compatible = "syna,rmi4-i2c";
919e49cbefSAngeloGioacchino Del Regno		reg = <0x20>;
929e49cbefSAngeloGioacchino Del Regno		#address-cells = <1>;
939e49cbefSAngeloGioacchino Del Regno		#size-cells = <0>;
949e49cbefSAngeloGioacchino Del Regno		interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_FALLING>;
959e49cbefSAngeloGioacchino Del Regno		pinctrl-names = "default";
969e49cbefSAngeloGioacchino Del Regno		pinctrl-0 = <&ts_pins>;
979e49cbefSAngeloGioacchino Del Regno		syna,startup-delay-ms = <160>;
989e49cbefSAngeloGioacchino Del Regno		syna,reset-delay-ms = <90>;
999e49cbefSAngeloGioacchino Del Regno
1009e49cbefSAngeloGioacchino Del Regno		rmi4-f01@1 {
1019e49cbefSAngeloGioacchino Del Regno			reg = <0x1>;
1029e49cbefSAngeloGioacchino Del Regno			syna,nosleep-mode = <1>;
1039e49cbefSAngeloGioacchino Del Regno		};
1049e49cbefSAngeloGioacchino Del Regno
1059e49cbefSAngeloGioacchino Del Regno		rmi4-f12@12 {
1069e49cbefSAngeloGioacchino Del Regno			reg = <0x12>;
1079e49cbefSAngeloGioacchino Del Regno			syna,sensor-type = <1>;
1089e49cbefSAngeloGioacchino Del Regno		};
1099e49cbefSAngeloGioacchino Del Regno	};
1109415e246SAngeloGioacchino Del Regno};
1119415e246SAngeloGioacchino Del Regno
1129415e246SAngeloGioacchino Del Regno&i2c3 {
1139415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
1149415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c3_pins>;
1159415e246SAngeloGioacchino Del Regno	status = "okay";
116d5ed9a04SAngeloGioacchino Del Regno
117f010d1b6SAngeloGioacchino Del Regno	pn547: nfc@28 {
118f010d1b6SAngeloGioacchino Del Regno		compatible = "nxp,pn544-i2c";
119f010d1b6SAngeloGioacchino Del Regno		reg = <0x28>;
120f010d1b6SAngeloGioacchino Del Regno		interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_RISING>;
121f010d1b6SAngeloGioacchino Del Regno		pinctrl-names = "default";
122f010d1b6SAngeloGioacchino Del Regno		pinctrl-0 = <&nfc_pins>;
123f010d1b6SAngeloGioacchino Del Regno		enable-gpios = <&pio 149 GPIO_ACTIVE_HIGH>;
124f010d1b6SAngeloGioacchino Del Regno		firmware-gpios = <&pio 94 GPIO_ACTIVE_HIGH>;
125f010d1b6SAngeloGioacchino Del Regno	};
126f010d1b6SAngeloGioacchino Del Regno
127d5ed9a04SAngeloGioacchino Del Regno	proximity@48 {
128d5ed9a04SAngeloGioacchino Del Regno		compatible = "sensortek,stk3310";
129d5ed9a04SAngeloGioacchino Del Regno		reg = <0x48>;
130d5ed9a04SAngeloGioacchino Del Regno		interrupts-extended = <&pio 8 IRQ_TYPE_EDGE_FALLING>;
131d5ed9a04SAngeloGioacchino Del Regno		pinctrl-names = "default";
132d5ed9a04SAngeloGioacchino Del Regno		pinctrl-0 = <&proximity_pins>;
133d5ed9a04SAngeloGioacchino Del Regno	};
1349415e246SAngeloGioacchino Del Regno};
1359415e246SAngeloGioacchino Del Regno
136c9e7d216SAngeloGioacchino Del Regno&pio {
137f010d1b6SAngeloGioacchino Del Regno	nfc_pins: nfc-pins {
138f010d1b6SAngeloGioacchino Del Regno		pins-irq {
139f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
140f010d1b6SAngeloGioacchino Del Regno			bias-pull-down;
141f010d1b6SAngeloGioacchino Del Regno			input-enable;
142f010d1b6SAngeloGioacchino Del Regno		};
143f010d1b6SAngeloGioacchino Del Regno
144f010d1b6SAngeloGioacchino Del Regno		pins-fw-ven {
145f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO94__FUNC_GPIO94>,
146f010d1b6SAngeloGioacchino Del Regno				 <PINMUX_GPIO149__FUNC_GPIO149>;
147f010d1b6SAngeloGioacchino Del Regno		};
148f010d1b6SAngeloGioacchino Del Regno	};
149f010d1b6SAngeloGioacchino Del Regno
1509e49cbefSAngeloGioacchino Del Regno	ts_pins: touchscreen-pins {
1519e49cbefSAngeloGioacchino Del Regno		pins-irq {
1529e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
1539e49cbefSAngeloGioacchino Del Regno			bias-pull-up;
1549e49cbefSAngeloGioacchino Del Regno			input-enable;
1559e49cbefSAngeloGioacchino Del Regno		};
1569e49cbefSAngeloGioacchino Del Regno
1579e49cbefSAngeloGioacchino Del Regno		pins-rst {
1589e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
1599e49cbefSAngeloGioacchino Del Regno			output-high;
1609e49cbefSAngeloGioacchino Del Regno		};
1619e49cbefSAngeloGioacchino Del Regno	};
1629e49cbefSAngeloGioacchino Del Regno
163d5ed9a04SAngeloGioacchino Del Regno	proximity_pins: proximity-pins {
164d5ed9a04SAngeloGioacchino Del Regno		pins-irq {
165d5ed9a04SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
166d5ed9a04SAngeloGioacchino Del Regno			bias-pull-up;
167d5ed9a04SAngeloGioacchino Del Regno			input-enable;
168d5ed9a04SAngeloGioacchino Del Regno		};
169d5ed9a04SAngeloGioacchino Del Regno	};
170d5ed9a04SAngeloGioacchino Del Regno
1719b42966dSAngeloGioacchino Del Regno	accel_pins: accelerometer-pins {
1729b42966dSAngeloGioacchino Del Regno		pins-irq {
1739b42966dSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO12__FUNC_GPIO12>;
1749b42966dSAngeloGioacchino Del Regno			bias-pull-up;
1759b42966dSAngeloGioacchino Del Regno			input-enable;
1769b42966dSAngeloGioacchino Del Regno		};
1779b42966dSAngeloGioacchino Del Regno	};
1789b42966dSAngeloGioacchino Del Regno
1799415e246SAngeloGioacchino Del Regno	i2c0_pins: i2c0-pins {
1809415e246SAngeloGioacchino Del Regno		pins-bus {
1819415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
1829415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO46__FUNC_SCL0>;
1839415e246SAngeloGioacchino Del Regno			input-enable;
1849415e246SAngeloGioacchino Del Regno		};
1859415e246SAngeloGioacchino Del Regno	};
1869415e246SAngeloGioacchino Del Regno
1879415e246SAngeloGioacchino Del Regno	i2c1_pins: i2c1-pins {
1889415e246SAngeloGioacchino Del Regno		pins-bus {
1899415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO125__FUNC_SDA1>,
1909415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO126__FUNC_SCL1>;
1919415e246SAngeloGioacchino Del Regno			bias-disable;
1929415e246SAngeloGioacchino Del Regno		};
1939415e246SAngeloGioacchino Del Regno	};
1949415e246SAngeloGioacchino Del Regno
1959415e246SAngeloGioacchino Del Regno	i2c2_pins: i2c2-pins {
1969415e246SAngeloGioacchino Del Regno		pins-bus {
1979415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO43__FUNC_SDA2>,
1989415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO44__FUNC_SCL2>;
1999415e246SAngeloGioacchino Del Regno			bias-disable;
2009415e246SAngeloGioacchino Del Regno		};
2019415e246SAngeloGioacchino Del Regno	};
2029415e246SAngeloGioacchino Del Regno
2039415e246SAngeloGioacchino Del Regno	i2c3_pins: i2c3-pins {
2049415e246SAngeloGioacchino Del Regno		pins-bus {
2059415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO136__FUNC_SDA3>,
2069415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO137__FUNC_SCL3>;
2079415e246SAngeloGioacchino Del Regno			bias-disable;
2089415e246SAngeloGioacchino Del Regno		};
2099415e246SAngeloGioacchino Del Regno	};
2109415e246SAngeloGioacchino Del Regno
2119415e246SAngeloGioacchino Del Regno	i2c4_pins: i2c4-pins {
2129415e246SAngeloGioacchino Del Regno		pins-bus {
2139415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO100__FUNC_SDA4>,
2149415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO101__FUNC_SCL4>;
2159415e246SAngeloGioacchino Del Regno			bias-disable;
2169415e246SAngeloGioacchino Del Regno		};
2179415e246SAngeloGioacchino Del Regno	};
2189415e246SAngeloGioacchino Del Regno
219c9e7d216SAngeloGioacchino Del Regno	uart0_pins: uart0-pins {
220c9e7d216SAngeloGioacchino Del Regno		pins-rx {
221c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO113__FUNC_URXD0>;
222c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
223c9e7d216SAngeloGioacchino Del Regno			input-enable;
224c9e7d216SAngeloGioacchino Del Regno		};
225c9e7d216SAngeloGioacchino Del Regno		pins-tx {
226c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO114__FUNC_UTXD0>;
227c9e7d216SAngeloGioacchino Del Regno			output-high;
228c9e7d216SAngeloGioacchino Del Regno		};
229c9e7d216SAngeloGioacchino Del Regno	};
230c9e7d216SAngeloGioacchino Del Regno
231c9e7d216SAngeloGioacchino Del Regno	uart2_pins: uart2-pins {
232c9e7d216SAngeloGioacchino Del Regno		pins-rx {
233c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO31__FUNC_URXD2>;
234c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
235c9e7d216SAngeloGioacchino Del Regno			input-enable;
236c9e7d216SAngeloGioacchino Del Regno		};
237c9e7d216SAngeloGioacchino Del Regno		pins-tx {
238c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO32__FUNC_UTXD2>;
239c9e7d216SAngeloGioacchino Del Regno		};
240c9e7d216SAngeloGioacchino Del Regno	};
241c9e7d216SAngeloGioacchino Del Regno};
242c9e7d216SAngeloGioacchino Del Regno
243*e83a6b4bSAngeloGioacchino Del Regno&pmic {
244*e83a6b4bSAngeloGioacchino Del Regno	/*
245*e83a6b4bSAngeloGioacchino Del Regno	 * Smartphones, including the Xperia M5, are equipped with a companion
246*e83a6b4bSAngeloGioacchino Del Regno	 * MT6332 PMIC: when this is present, the main MT6331 PMIC will fire
247*e83a6b4bSAngeloGioacchino Del Regno	 * an interrupt on the companion, so we use the MT6332 IRQ GPIO.
248*e83a6b4bSAngeloGioacchino Del Regno	 */
249*e83a6b4bSAngeloGioacchino Del Regno	interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
250*e83a6b4bSAngeloGioacchino Del Regno};
251*e83a6b4bSAngeloGioacchino Del Regno
252c9e7d216SAngeloGioacchino Del Regno&uart0 {
253c9e7d216SAngeloGioacchino Del Regno	status = "okay";
254c9e7d216SAngeloGioacchino Del Regno
255c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
256c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart0_pins>;
257c9e7d216SAngeloGioacchino Del Regno};
258c9e7d216SAngeloGioacchino Del Regno
259c9e7d216SAngeloGioacchino Del Regno&uart2 {
260c9e7d216SAngeloGioacchino Del Regno	status = "okay";
261c9e7d216SAngeloGioacchino Del Regno
262c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
263c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart2_pins>;
264c9e7d216SAngeloGioacchino Del Regno};
265