aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Merker <merker@debian.org>2015-10-22 23:50:41 -0400
committerMaxime Ripard <maxime.ripard@free-electrons.com>2015-10-23 02:05:17 -0400
commita5ea06d0bc123cc7f49d042fab60ddd3964764c8 (patch)
treefd8b035d5960928c8f8e13372d68ebd29b99c963
parentc0949308dd47d74b6525ef4bae638869c0a58754 (diff)
ARM: dts: sun6i: Add dts file for MSI Primo81 tablet
The MSI Primo81 is an A31s based tablet, with 1G RAM, 16G NAND, 768x1024 IPS LCD display, mono speaker, 0.3 MP front camera, 2.0 MP rear camera, 3500 mAh battery, gt911 touchscreen, mma8452 accelerometer and rtl8188etv usb wifi. Has "power", "volume+" and "volume-" buttons (both volume buttons are also connected to the UBOOT_SEL pin). The external connectors are represented by MicroSD slot, MiniHDMI, MicroUSB OTG and 3.5mm headphone jack. USB OTG is enabled in host only mode. AXP221 USB power supply and GPIO support are required for full USB OTG support. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by: Karsten Merker <merker@debian.org> Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-primo81.dts255
2 files changed, 256 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index c00b72e750ab..78ade1a5e886 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -612,6 +612,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
612 sun6i-a31-m9.dtb \ 612 sun6i-a31-m9.dtb \
613 sun6i-a31-mele-a1000g-quad.dtb \ 613 sun6i-a31-mele-a1000g-quad.dtb \
614 sun6i-a31s-cs908.dtb \ 614 sun6i-a31s-cs908.dtb \
615 sun6i-a31s-primo81.dtb \
615 sun6i-a31s-sina31s.dtb \ 616 sun6i-a31s-sina31s.dtb \
616 sun6i-a31s-sinovoip-bpi-m2.dtb \ 617 sun6i-a31s-sinovoip-bpi-m2.dtb \
617 sun6i-a31s-yones-toptech-bs1078-v2.dtb 618 sun6i-a31s-yones-toptech-bs1078-v2.dtb
diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
new file mode 100644
index 000000000000..2d4250b1faf8
--- /dev/null
+++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
@@ -0,0 +1,255 @@
1/*
2 * Copyright 2014 Siarhei Siamashka <siarhei.siamashka@gmail.com>
3 * Copyright 2015 Karsten Merker <merker@debian.org>
4 * Copyright 2015 Chen-Yu Tsai <wens@csie.org>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "sun6i-a31s.dtsi"
47#include "sunxi-common-regulators.dtsi"
48
49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52
53/ {
54 model = "MSI Primo81 tablet";
55 compatible = "msi,primo81", "allwinner,sun6i-a31s";
56};
57
58&cpu0 {
59 cpu-supply = <&reg_dcdc3>;
60};
61
62&ehci0 {
63 /* rtl8188etv wifi is connected here */
64 status = "okay";
65};
66
67&i2c0 {
68 /* pull-ups and device VDDIO use AXP221 DLDO3 */
69 pinctrl-names = "default";
70 pinctrl-0 = <&i2c0_pins_a>;
71 status = "failed";
72};
73
74&i2c1 {
75 pinctrl-names = "default";
76 pinctrl-0 = <&i2c1_pins_a>;
77 status = "okay";
78
79 ctp@5d {
80 pinctrl-names = "default";
81 pinctrl-0 = <&gt911_int_primo81>;
82 compatible = "goodix,gt911";
83 reg = <0x5d>;
84 interrupt-parent = <&pio>;
85 interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; /* PA3 */
86 };
87};
88
89&i2c2 {
90 pinctrl-names = "default";
91 pinctrl-0 = <&i2c2_pins_a>;
92 status = "okay";
93
94 accelerometer@1c {
95 pinctrl-names = "default";
96 pinctrl-0 = <&mma8452_int_primo81>;
97 compatible = "fsl,mma8452";
98 reg = <0x1c>;
99 interrupt-parent = <&pio>;
100 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; /* PA9 */
101 #io-channel-cells = <1>;
102 };
103};
104
105&lradc {
106 vref-supply = <&reg_aldo3>;
107 status = "okay";
108
109 button@158 {
110 label = "Volume Up";
111 linux,code = <KEY_VOLUMEUP>;
112 channel = <0>;
113 voltage = <158730>;
114 };
115
116 button@349 {
117 label = "Volume Down";
118 linux,code = <KEY_VOLUMEDOWN>;
119 channel = <0>;
120 voltage = <349206>;
121 };
122};
123
124&mmc0 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_primo81>;
127 vmmc-supply = <&reg_dcdc1>;
128 bus-width = <4>;
129 cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
130 cd-inverted;
131 status = "okay";
132};
133
134&pio {
135 gt911_int_primo81: gt911_int_pin@0 {
136 allwinner,pins = "PA3";
137 allwinner,function = "gpio_in";
138 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
139 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
140 };
141
142 mma8452_int_primo81: mma8452_int_pin@0 {
143 allwinner,pins = "PA9";
144 allwinner,function = "gpio_in";
145 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
146 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
147 };
148
149 mmc0_cd_pin_primo81: mmc0_cd_pin@0 {
150 allwinner,pins = "PA8";
151 allwinner,function = "gpio_in";
152 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
154 };
155};
156
157&p2wi {
158 status = "okay";
159
160 axp22x: pmic@68 {
161 compatible = "x-powers,axp221";
162 reg = <0x68>;
163 interrupt-parent = <&nmi_intc>;
164 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
165 };
166};
167
168#include "axp22x.dtsi"
169
170&reg_aldo3 {
171 regulator-always-on;
172 regulator-min-microvolt = <2700000>;
173 regulator-max-microvolt = <3300000>;
174 regulator-name = "avcc";
175};
176
177&reg_dc1sw {
178 regulator-min-microvolt = <3000000>;
179 regulator-max-microvolt = <3000000>;
180 regulator-name = "vcc-lcd";
181};
182
183&reg_dc5ldo {
184 regulator-min-microvolt = <700000>;
185 regulator-max-microvolt = <1320000>;
186 regulator-name = "vdd-cpus"; /* This is an educated guess */
187};
188
189&reg_dcdc1 {
190 regulator-always-on;
191 regulator-min-microvolt = <3000000>;
192 regulator-max-microvolt = <3000000>;
193 regulator-name = "vcc-3v0";
194};
195
196&reg_dcdc2 {
197 regulator-min-microvolt = <700000>;
198 regulator-max-microvolt = <1320000>;
199 regulator-name = "vdd-gpu";
200};
201
202&reg_dcdc3 {
203 regulator-always-on;
204 regulator-min-microvolt = <700000>;
205 regulator-max-microvolt = <1320000>;
206 regulator-name = "vdd-cpu";
207};
208
209&reg_dcdc4 {
210 regulator-always-on;
211 regulator-min-microvolt = <700000>;
212 regulator-max-microvolt = <1320000>;
213 regulator-name = "vdd-sys-dll";
214};
215
216&reg_dcdc5 {
217 regulator-always-on;
218 regulator-min-microvolt = <1500000>;
219 regulator-max-microvolt = <1500000>;
220 regulator-name = "vcc-dram";
221};
222
223&reg_dldo1 {
224 regulator-min-microvolt = <3300000>;
225 regulator-max-microvolt = <3300000>;
226 regulator-name = "vcc-wifi";
227};
228
229&reg_dldo3 {
230 regulator-min-microvolt = <2800000>;
231 regulator-max-microvolt = <2800000>;
232 regulator-name = "vddio-csi";
233};
234
235&reg_eldo3 {
236 regulator-min-microvolt = <1080000>;
237 regulator-max-microvolt = <1320000>;
238 regulator-name = "vdd-mipi-bridge";
239};
240
241&simplefb_lcd {
242 vcc-lcd-supply = <&reg_dc1sw>;
243 vdd-mipi-bridge-supply = <&reg_eldo3>;
244};
245
246&usb_otg {
247 /* otg support requires support for AXP221 usb-power-supply and GPIO */
248 dr_mode = "host";
249 status = "okay";
250};
251
252&usbphy {
253 usb1_vbus-supply = <&reg_dldo1>;
254 status = "okay";
255};