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/;
8*f010d1b6SAngeloGioacchino 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";
699415e246SAngeloGioacchino Del Regno};
709415e246SAngeloGioacchino Del Regno
719415e246SAngeloGioacchino Del Regno&i2c2 {
729415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
739415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c2_pins>;
749415e246SAngeloGioacchino Del Regno	status = "okay";
759e49cbefSAngeloGioacchino Del Regno
769e49cbefSAngeloGioacchino Del Regno	touchscreen@20 {
779e49cbefSAngeloGioacchino Del Regno		compatible = "syna,rmi4-i2c";
789e49cbefSAngeloGioacchino Del Regno		reg = <0x20>;
799e49cbefSAngeloGioacchino Del Regno		#address-cells = <1>;
809e49cbefSAngeloGioacchino Del Regno		#size-cells = <0>;
819e49cbefSAngeloGioacchino Del Regno		interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_FALLING>;
829e49cbefSAngeloGioacchino Del Regno		pinctrl-names = "default";
839e49cbefSAngeloGioacchino Del Regno		pinctrl-0 = <&ts_pins>;
849e49cbefSAngeloGioacchino Del Regno		syna,startup-delay-ms = <160>;
859e49cbefSAngeloGioacchino Del Regno		syna,reset-delay-ms = <90>;
869e49cbefSAngeloGioacchino Del Regno
879e49cbefSAngeloGioacchino Del Regno		rmi4-f01@1 {
889e49cbefSAngeloGioacchino Del Regno			reg = <0x1>;
899e49cbefSAngeloGioacchino Del Regno			syna,nosleep-mode = <1>;
909e49cbefSAngeloGioacchino Del Regno		};
919e49cbefSAngeloGioacchino Del Regno
929e49cbefSAngeloGioacchino Del Regno		rmi4-f12@12 {
939e49cbefSAngeloGioacchino Del Regno			reg = <0x12>;
949e49cbefSAngeloGioacchino Del Regno			syna,sensor-type = <1>;
959e49cbefSAngeloGioacchino Del Regno		};
969e49cbefSAngeloGioacchino Del Regno	};
979415e246SAngeloGioacchino Del Regno};
989415e246SAngeloGioacchino Del Regno
999415e246SAngeloGioacchino Del Regno&i2c3 {
1009415e246SAngeloGioacchino Del Regno	pinctrl-names = "default";
1019415e246SAngeloGioacchino Del Regno	pinctrl-0 = <&i2c3_pins>;
1029415e246SAngeloGioacchino Del Regno	status = "okay";
103d5ed9a04SAngeloGioacchino Del Regno
104*f010d1b6SAngeloGioacchino Del Regno	pn547: nfc@28 {
105*f010d1b6SAngeloGioacchino Del Regno		compatible = "nxp,pn544-i2c";
106*f010d1b6SAngeloGioacchino Del Regno		reg = <0x28>;
107*f010d1b6SAngeloGioacchino Del Regno		interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_RISING>;
108*f010d1b6SAngeloGioacchino Del Regno		pinctrl-names = "default";
109*f010d1b6SAngeloGioacchino Del Regno		pinctrl-0 = <&nfc_pins>;
110*f010d1b6SAngeloGioacchino Del Regno		enable-gpios = <&pio 149 GPIO_ACTIVE_HIGH>;
111*f010d1b6SAngeloGioacchino Del Regno		firmware-gpios = <&pio 94 GPIO_ACTIVE_HIGH>;
112*f010d1b6SAngeloGioacchino Del Regno	};
113*f010d1b6SAngeloGioacchino Del Regno
114d5ed9a04SAngeloGioacchino Del Regno	proximity@48 {
115d5ed9a04SAngeloGioacchino Del Regno		compatible = "sensortek,stk3310";
116d5ed9a04SAngeloGioacchino Del Regno		reg = <0x48>;
117d5ed9a04SAngeloGioacchino Del Regno		interrupts-extended = <&pio 8 IRQ_TYPE_EDGE_FALLING>;
118d5ed9a04SAngeloGioacchino Del Regno		pinctrl-names = "default";
119d5ed9a04SAngeloGioacchino Del Regno		pinctrl-0 = <&proximity_pins>;
120d5ed9a04SAngeloGioacchino Del Regno	};
1219415e246SAngeloGioacchino Del Regno};
1229415e246SAngeloGioacchino Del Regno
123c9e7d216SAngeloGioacchino Del Regno&pio {
124*f010d1b6SAngeloGioacchino Del Regno	nfc_pins: nfc-pins {
125*f010d1b6SAngeloGioacchino Del Regno		pins-irq {
126*f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO3__FUNC_GPIO3>;
127*f010d1b6SAngeloGioacchino Del Regno			bias-pull-down;
128*f010d1b6SAngeloGioacchino Del Regno			input-enable;
129*f010d1b6SAngeloGioacchino Del Regno		};
130*f010d1b6SAngeloGioacchino Del Regno
131*f010d1b6SAngeloGioacchino Del Regno		pins-fw-ven {
132*f010d1b6SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO94__FUNC_GPIO94>,
133*f010d1b6SAngeloGioacchino Del Regno				 <PINMUX_GPIO149__FUNC_GPIO149>;
134*f010d1b6SAngeloGioacchino Del Regno		};
135*f010d1b6SAngeloGioacchino Del Regno	};
136*f010d1b6SAngeloGioacchino Del Regno
1379e49cbefSAngeloGioacchino Del Regno	ts_pins: touchscreen-pins {
1389e49cbefSAngeloGioacchino Del Regno		pins-irq {
1399e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
1409e49cbefSAngeloGioacchino Del Regno			bias-pull-up;
1419e49cbefSAngeloGioacchino Del Regno			input-enable;
1429e49cbefSAngeloGioacchino Del Regno		};
1439e49cbefSAngeloGioacchino Del Regno
1449e49cbefSAngeloGioacchino Del Regno		pins-rst {
1459e49cbefSAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
1469e49cbefSAngeloGioacchino Del Regno			output-high;
1479e49cbefSAngeloGioacchino Del Regno		};
1489e49cbefSAngeloGioacchino Del Regno	};
1499e49cbefSAngeloGioacchino Del Regno
150d5ed9a04SAngeloGioacchino Del Regno	proximity_pins: proximity-pins {
151d5ed9a04SAngeloGioacchino Del Regno		pins-irq {
152d5ed9a04SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
153d5ed9a04SAngeloGioacchino Del Regno			bias-pull-up;
154d5ed9a04SAngeloGioacchino Del Regno			input-enable;
155d5ed9a04SAngeloGioacchino Del Regno		};
156d5ed9a04SAngeloGioacchino Del Regno	};
157d5ed9a04SAngeloGioacchino Del Regno
1589415e246SAngeloGioacchino Del Regno	i2c0_pins: i2c0-pins {
1599415e246SAngeloGioacchino Del Regno		pins-bus {
1609415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
1619415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO46__FUNC_SCL0>;
1629415e246SAngeloGioacchino Del Regno			input-enable;
1639415e246SAngeloGioacchino Del Regno		};
1649415e246SAngeloGioacchino Del Regno	};
1659415e246SAngeloGioacchino Del Regno
1669415e246SAngeloGioacchino Del Regno	i2c1_pins: i2c1-pins {
1679415e246SAngeloGioacchino Del Regno		pins-bus {
1689415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO125__FUNC_SDA1>,
1699415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO126__FUNC_SCL1>;
1709415e246SAngeloGioacchino Del Regno			bias-disable;
1719415e246SAngeloGioacchino Del Regno		};
1729415e246SAngeloGioacchino Del Regno	};
1739415e246SAngeloGioacchino Del Regno
1749415e246SAngeloGioacchino Del Regno	i2c2_pins: i2c2-pins {
1759415e246SAngeloGioacchino Del Regno		pins-bus {
1769415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO43__FUNC_SDA2>,
1779415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO44__FUNC_SCL2>;
1789415e246SAngeloGioacchino Del Regno			bias-disable;
1799415e246SAngeloGioacchino Del Regno		};
1809415e246SAngeloGioacchino Del Regno	};
1819415e246SAngeloGioacchino Del Regno
1829415e246SAngeloGioacchino Del Regno	i2c3_pins: i2c3-pins {
1839415e246SAngeloGioacchino Del Regno		pins-bus {
1849415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO136__FUNC_SDA3>,
1859415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO137__FUNC_SCL3>;
1869415e246SAngeloGioacchino Del Regno			bias-disable;
1879415e246SAngeloGioacchino Del Regno		};
1889415e246SAngeloGioacchino Del Regno	};
1899415e246SAngeloGioacchino Del Regno
1909415e246SAngeloGioacchino Del Regno	i2c4_pins: i2c4-pins {
1919415e246SAngeloGioacchino Del Regno		pins-bus {
1929415e246SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO100__FUNC_SDA4>,
1939415e246SAngeloGioacchino Del Regno				 <PINMUX_GPIO101__FUNC_SCL4>;
1949415e246SAngeloGioacchino Del Regno			bias-disable;
1959415e246SAngeloGioacchino Del Regno		};
1969415e246SAngeloGioacchino Del Regno	};
1979415e246SAngeloGioacchino Del Regno
198c9e7d216SAngeloGioacchino Del Regno	uart0_pins: uart0-pins {
199c9e7d216SAngeloGioacchino Del Regno		pins-rx {
200c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO113__FUNC_URXD0>;
201c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
202c9e7d216SAngeloGioacchino Del Regno			input-enable;
203c9e7d216SAngeloGioacchino Del Regno		};
204c9e7d216SAngeloGioacchino Del Regno		pins-tx {
205c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO114__FUNC_UTXD0>;
206c9e7d216SAngeloGioacchino Del Regno			output-high;
207c9e7d216SAngeloGioacchino Del Regno		};
208c9e7d216SAngeloGioacchino Del Regno	};
209c9e7d216SAngeloGioacchino Del Regno
210c9e7d216SAngeloGioacchino Del Regno	uart2_pins: uart2-pins {
211c9e7d216SAngeloGioacchino Del Regno		pins-rx {
212c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO31__FUNC_URXD2>;
213c9e7d216SAngeloGioacchino Del Regno			bias-pull-up;
214c9e7d216SAngeloGioacchino Del Regno			input-enable;
215c9e7d216SAngeloGioacchino Del Regno		};
216c9e7d216SAngeloGioacchino Del Regno		pins-tx {
217c9e7d216SAngeloGioacchino Del Regno			pinmux = <PINMUX_GPIO32__FUNC_UTXD2>;
218c9e7d216SAngeloGioacchino Del Regno		};
219c9e7d216SAngeloGioacchino Del Regno	};
220c9e7d216SAngeloGioacchino Del Regno};
221c9e7d216SAngeloGioacchino Del Regno
222c9e7d216SAngeloGioacchino Del Regno&uart0 {
223c9e7d216SAngeloGioacchino Del Regno	status = "okay";
224c9e7d216SAngeloGioacchino Del Regno
225c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
226c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart0_pins>;
227c9e7d216SAngeloGioacchino Del Regno};
228c9e7d216SAngeloGioacchino Del Regno
229c9e7d216SAngeloGioacchino Del Regno&uart2 {
230c9e7d216SAngeloGioacchino Del Regno	status = "okay";
231c9e7d216SAngeloGioacchino Del Regno
232c9e7d216SAngeloGioacchino Del Regno	pinctrl-names = "default";
233c9e7d216SAngeloGioacchino Del Regno	pinctrl-0 = <&uart2_pins>;
234c9e7d216SAngeloGioacchino Del Regno};
235