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";
699b42966dSAngeloGioacchino Del Regno
709b42966dSAngeloGioacchino Del Regno	accelerometer@10 {
719b42966dSAngeloGioacchino Del Regno		compatible = "bosch,bma255";
729b42966dSAngeloGioacchino Del Regno		reg = <0x10>;
739b42966dSAngeloGioacchino Del Regno		pinctrl-names = "default";
749b42966dSAngeloGioacchino Del Regno		pinctrl-0 = <&accel_pins>;
759b42966dSAngeloGioacchino Del Regno	};
76*13961ef8SAngeloGioacchino Del Regno
77*13961ef8SAngeloGioacchino Del Regno	magnetometer@12 {
78*13961ef8SAngeloGioacchino Del Regno		compatible = "bosch,bmm150";
79*13961ef8SAngeloGioacchino Del Regno		reg = <0x12>;
80*13961ef8SAngeloGioacchino Del Regno	};
819415e246SAngeloGioacchino Del Regno};
829415e246SAngeloGioacchino Del Regno
839415e246SAngeloGioacchino Del Regno&i2c2 {
849415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
859415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c2_pins>;
869415e246SAngeloGioacchino Del Regno	status = "okay";
879e49cbefSAngeloGioacchino Del Regno
889e49cbefSAngeloGioacchino Del Regno	touchscreen@20 {
899e49cbefSAngeloGioacchino Del Regno		compatible = "syna,rmi4-i2c";
909e49cbefSAngeloGioacchino Del Regno		reg = <0x20>;
919e49cbefSAngeloGioacchino Del Regno		#address-cells = <1>;
929e49cbefSAngeloGioacchino Del Regno		#size-cells = <0>;
939e49cbefSAngeloGioacchino Del Regno		interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_FALLING>;
949e49cbefSAngeloGioacchino Del Regno		pinctrl-names = "default";
959e49cbefSAngeloGioacchino Del Regno		pinctrl-0 = <&ts_pins>;
969e49cbefSAngeloGioacchino Del Regno		syna,startup-delay-ms = <160>;
979e49cbefSAngeloGioacchino Del Regno		syna,reset-delay-ms = <90>;
989e49cbefSAngeloGioacchino Del Regno
999e49cbefSAngeloGioacchino Del Regno		rmi4-f01@1 {
1009e49cbefSAngeloGioacchino Del Regno			reg = <0x1>;
1019e49cbefSAngeloGioacchino Del Regno			syna,nosleep-mode = <1>;
1029e49cbefSAngeloGioacchino Del Regno		};
1039e49cbefSAngeloGioacchino Del Regno
1049e49cbefSAngeloGioacchino Del Regno		rmi4-f12@12 {
1059e49cbefSAngeloGioacchino Del Regno			reg = <0x12>;
1069e49cbefSAngeloGioacchino Del Regno			syna,sensor-type = <1>;
1079e49cbefSAngeloGioacchino Del Regno		};
1089e49cbefSAngeloGioacchino Del Regno	};
1099415e246SAngeloGioacchino Del Regno};
1109415e246SAngeloGioacchino Del Regno
1119415e246SAngeloGioacchino Del Regno&i2c3 {
1129415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
1139415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c3_pins>;
1149415e246SAngeloGioacchino Del Regno	status = "okay";
115d5ed9a04SAngeloGioacchino Del Regno
116f010d1b6SAngeloGioacchino Del Regno	pn547: nfc@28 {
117f010d1b6SAngeloGioacchino Del Regno		compatible = "nxp,pn544-i2c";
118f010d1b6SAngeloGioacchino Del Regno		reg = <0x28>;
119f010d1b6SAngeloGioacchino Del Regno		interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_RISING>;
120f010d1b6SAngeloGioacchino Del Regno		pinctrl-names = "default";
121f010d1b6SAngeloGioacchino Del Regno		pinctrl-0 = <&nfc_pins>;
122f010d1b6SAngeloGioacchino Del Regno		enable-gpios = <&pio 149 GPIO_ACTIVE_HIGH>;
123f010d1b6SAngeloGioacchino Del Regno		firmware-gpios = <&pio 94 GPIO_ACTIVE_HIGH>;
124f010d1b6SAngeloGioacchino Del Regno	};
125f010d1b6SAngeloGioacchino Del Regno
126d5ed9a04SAngeloGioacchino Del Regno	proximity@48 {
127d5ed9a04SAngeloGioacchino Del Regno		compatible = "sensortek,stk3310";
128d5ed9a04SAngeloGioacchino Del Regno		reg = <0x48>;
129d5ed9a04SAngeloGioacchino Del Regno		interrupts-extended = <&pio 8 IRQ_TYPE_EDGE_FALLING>;
130d5ed9a04SAngeloGioacchino Del Regno		pinctrl-names = "default";
131d5ed9a04SAngeloGioacchino Del Regno		pinctrl-0 = <&proximity_pins>;
132d5ed9a04SAngeloGioacchino Del Regno	};
1339415e246SAngeloGioacchino Del Regno};
1349415e246SAngeloGioacchino Del Regno
135c9e7d216SAngeloGioacchino Del Regno&pio {
136f010d1b6SAngeloGioacchino Del Regno	nfc_pins: nfc-pins {
137f010d1b6SAngeloGioacchino Del Regno		pins-irq {
138f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
139f010d1b6SAngeloGioacchino Del Regno			bias-pull-down;
140f010d1b6SAngeloGioacchino Del Regno			input-enable;
141f010d1b6SAngeloGioacchino Del Regno		};
142f010d1b6SAngeloGioacchino Del Regno
143f010d1b6SAngeloGioacchino Del Regno		pins-fw-ven {
144f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO94__FUNC_GPIO94>,
145f010d1b6SAngeloGioacchino Del Regno				 <PINMUX_GPIO149__FUNC_GPIO149>;
146f010d1b6SAngeloGioacchino Del Regno		};
147f010d1b6SAngeloGioacchino Del Regno	};
148f010d1b6SAngeloGioacchino Del Regno
1499e49cbefSAngeloGioacchino Del Regno	ts_pins: touchscreen-pins {
1509e49cbefSAngeloGioacchino Del Regno		pins-irq {
1519e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
1529e49cbefSAngeloGioacchino Del Regno			bias-pull-up;
1539e49cbefSAngeloGioacchino Del Regno			input-enable;
1549e49cbefSAngeloGioacchino Del Regno		};
1559e49cbefSAngeloGioacchino Del Regno
1569e49cbefSAngeloGioacchino Del Regno		pins-rst {
1579e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
1589e49cbefSAngeloGioacchino Del Regno			output-high;
1599e49cbefSAngeloGioacchino Del Regno		};
1609e49cbefSAngeloGioacchino Del Regno	};
1619e49cbefSAngeloGioacchino Del Regno
162d5ed9a04SAngeloGioacchino Del Regno	proximity_pins: proximity-pins {
163d5ed9a04SAngeloGioacchino Del Regno		pins-irq {
164d5ed9a04SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
165d5ed9a04SAngeloGioacchino Del Regno			bias-pull-up;
166d5ed9a04SAngeloGioacchino Del Regno			input-enable;
167d5ed9a04SAngeloGioacchino Del Regno		};
168d5ed9a04SAngeloGioacchino Del Regno	};
169d5ed9a04SAngeloGioacchino Del Regno
1709b42966dSAngeloGioacchino Del Regno	accel_pins: accelerometer-pins {
1719b42966dSAngeloGioacchino Del Regno		pins-irq {
1729b42966dSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO12__FUNC_GPIO12>;
1739b42966dSAngeloGioacchino Del Regno			bias-pull-up;
1749b42966dSAngeloGioacchino Del Regno			input-enable;
1759b42966dSAngeloGioacchino Del Regno		};
1769b42966dSAngeloGioacchino Del Regno	};
1779b42966dSAngeloGioacchino Del Regno
1789415e246SAngeloGioacchino Del Regno	i2c0_pins: i2c0-pins {
1799415e246SAngeloGioacchino Del Regno		pins-bus {
1809415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
1819415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO46__FUNC_SCL0>;
1829415e246SAngeloGioacchino Del Regno			input-enable;
1839415e246SAngeloGioacchino Del Regno		};
1849415e246SAngeloGioacchino Del Regno	};
1859415e246SAngeloGioacchino Del Regno
1869415e246SAngeloGioacchino Del Regno	i2c1_pins: i2c1-pins {
1879415e246SAngeloGioacchino Del Regno		pins-bus {
1889415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO125__FUNC_SDA1>,
1899415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO126__FUNC_SCL1>;
1909415e246SAngeloGioacchino Del Regno			bias-disable;
1919415e246SAngeloGioacchino Del Regno		};
1929415e246SAngeloGioacchino Del Regno	};
1939415e246SAngeloGioacchino Del Regno
1949415e246SAngeloGioacchino Del Regno	i2c2_pins: i2c2-pins {
1959415e246SAngeloGioacchino Del Regno		pins-bus {
1969415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO43__FUNC_SDA2>,
1979415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO44__FUNC_SCL2>;
1989415e246SAngeloGioacchino Del Regno			bias-disable;
1999415e246SAngeloGioacchino Del Regno		};
2009415e246SAngeloGioacchino Del Regno	};
2019415e246SAngeloGioacchino Del Regno
2029415e246SAngeloGioacchino Del Regno	i2c3_pins: i2c3-pins {
2039415e246SAngeloGioacchino Del Regno		pins-bus {
2049415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO136__FUNC_SDA3>,
2059415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO137__FUNC_SCL3>;
2069415e246SAngeloGioacchino Del Regno			bias-disable;
2079415e246SAngeloGioacchino Del Regno		};
2089415e246SAngeloGioacchino Del Regno	};
2099415e246SAngeloGioacchino Del Regno
2109415e246SAngeloGioacchino Del Regno	i2c4_pins: i2c4-pins {
2119415e246SAngeloGioacchino Del Regno		pins-bus {
2129415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO100__FUNC_SDA4>,
2139415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO101__FUNC_SCL4>;
2149415e246SAngeloGioacchino Del Regno			bias-disable;
2159415e246SAngeloGioacchino Del Regno		};
2169415e246SAngeloGioacchino Del Regno	};
2179415e246SAngeloGioacchino Del Regno
218c9e7d216SAngeloGioacchino Del Regno	uart0_pins: uart0-pins {
219c9e7d216SAngeloGioacchino Del Regno		pins-rx {
220c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO113__FUNC_URXD0>;
221c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
222c9e7d216SAngeloGioacchino Del Regno			input-enable;
223c9e7d216SAngeloGioacchino Del Regno		};
224c9e7d216SAngeloGioacchino Del Regno		pins-tx {
225c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO114__FUNC_UTXD0>;
226c9e7d216SAngeloGioacchino Del Regno			output-high;
227c9e7d216SAngeloGioacchino Del Regno		};
228c9e7d216SAngeloGioacchino Del Regno	};
229c9e7d216SAngeloGioacchino Del Regno
230c9e7d216SAngeloGioacchino Del Regno	uart2_pins: uart2-pins {
231c9e7d216SAngeloGioacchino Del Regno		pins-rx {
232c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO31__FUNC_URXD2>;
233c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
234c9e7d216SAngeloGioacchino Del Regno			input-enable;
235c9e7d216SAngeloGioacchino Del Regno		};
236c9e7d216SAngeloGioacchino Del Regno		pins-tx {
237c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO32__FUNC_UTXD2>;
238c9e7d216SAngeloGioacchino Del Regno		};
239c9e7d216SAngeloGioacchino Del Regno	};
240c9e7d216SAngeloGioacchino Del Regno};
241c9e7d216SAngeloGioacchino Del Regno
242c9e7d216SAngeloGioacchino Del Regno&uart0 {
243c9e7d216SAngeloGioacchino Del Regno	status = "okay";
244c9e7d216SAngeloGioacchino Del Regno
245c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
246c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart0_pins>;
247c9e7d216SAngeloGioacchino Del Regno};
248c9e7d216SAngeloGioacchino Del Regno
249c9e7d216SAngeloGioacchino Del Regno&uart2 {
250c9e7d216SAngeloGioacchino Del Regno	status = "okay";
251c9e7d216SAngeloGioacchino Del Regno
252c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
253c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart2_pins>;
254c9e7d216SAngeloGioacchino Del Regno};
255