Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: sunxi: Add sun?i-q8-common.dtsi files for q8 tablets

Cheap allwinner based devices in the q8 enclosure come in many variants,
all sharing the case and a number of other basic features.

They differ in the display, touchscreen, accelerometer and wifi chips
used.

This commit adds 2 dtsi files defining the shared features of all the
q8 tablets. sunxi-q8-common.dtsi defines features shared amongst all
q8 tablets, sun8i-q8-common.dtsi defines features shared amongst all
a23 / a33 based q8 tablets, but not with a13 q8 based tablets.

a13 based tablets use a different card-detect pin for the mmc, and
use uart1 instead of the r_uart for the serial console.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

authored by

Hans de Goede and committed by
Maxime Ripard
72df94cb ac1dd1dc

+162 -138
+7 -69
arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
··· 44 44 45 45 /dts-v1/; 46 46 #include "sun8i-a23.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> 47 + #include "sun8i-q8-common.dtsi" 52 48 53 49 / { 54 50 model = "Ippo Q8H Dual Core Tablet (v5)"; 55 51 compatible = "ippo,q8h-v5", "allwinner,sun8i-a23"; 56 - 57 - aliases { 58 - serial0 = &r_uart; 59 - }; 60 - 61 - chosen { 62 - stdout-path = "serial0:115200n8"; 63 - }; 64 - }; 65 - 66 - &i2c0 { 67 - pinctrl-names = "default"; 68 - pinctrl-0 = <&i2c0_pins_a>; 69 - status = "okay"; 70 - }; 71 - 72 - &i2c1 { 73 - pinctrl-names = "default"; 74 - pinctrl-0 = <&i2c1_pins_a>; 75 - status = "okay"; 76 52 }; 77 53 78 54 &i2c2 { ··· 58 82 status = "failed"; 59 83 }; 60 84 61 - &lradc { 62 - vref-supply = <&reg_vcc3v0>; 63 - status = "okay"; 64 - 65 - button@200 { 66 - label = "Volume Up"; 67 - linux,code = <KEY_VOLUMEUP>; 68 - channel = <0>; 69 - voltage = <200000>; 70 - }; 71 - 72 - button@400 { 73 - label = "Volume Down"; 74 - linux,code = <KEY_VOLUMEDOWN>; 75 - channel = <0>; 76 - voltage = <400000>; 77 - }; 78 - }; 79 - 80 - &mmc0 { 81 - pinctrl-names = "default"; 82 - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>; 83 - vmmc-supply = <&reg_vcc3v0>; 84 - bus-width = <4>; 85 - cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 86 - cd-inverted; 87 - status = "okay"; 88 - }; 89 - 90 - &pio { 91 - mmc0_cd_pin_q8h: mmc0_cd_pin@0 { 92 - allwinner,pins = "PB4"; 93 - allwinner,function = "gpio_in"; 94 - allwinner,drive = <SUN4I_PINCTRL_10_MA>; 95 - allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 96 - }; 97 - }; 98 - 99 - &r_uart { 100 - pinctrl-names = "default"; 101 - pinctrl-0 = <&r_uart_pins_a>; 102 - status = "okay"; 103 - }; 104 - 85 + /* 86 + * FIXME for now we only support host mode and rely on u-boot to have 87 + * turned on Vbus which is controlled by the axp223 pmic on the board. 88 + * 89 + * Once we have axp223 support we should switch to fully supporting otg. 90 + */ 105 91 &usb_otg { 106 92 dr_mode = "host"; 107 93 status = "okay";
+1 -69
arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts
··· 42 42 43 43 /dts-v1/; 44 44 #include "sun8i-a33.dtsi" 45 - #include "sunxi-common-regulators.dtsi" 46 - 47 - #include <dt-bindings/gpio/gpio.h> 48 - #include <dt-bindings/input/input.h> 49 - #include <dt-bindings/pinctrl/sun4i-a10.h> 45 + #include "sun8i-q8-common.dtsi" 50 46 51 47 / { 52 48 model = "Ippo Q8H Quad Core Tablet (v1.2)"; 53 49 compatible = "ippo,a33-q8h-v1.2", "allwinner,sun8i-a33"; 54 - 55 - aliases { 56 - serial0 = &r_uart; 57 - }; 58 - 59 - chosen { 60 - stdout-path = "serial0:115200n8"; 61 - }; 62 - }; 63 - 64 - &i2c0 { 65 - pinctrl-names = "default"; 66 - pinctrl-0 = <&i2c0_pins_a>; 67 - status = "okay"; 68 - }; 69 - 70 - &i2c1 { 71 - pinctrl-names = "default"; 72 - pinctrl-0 = <&i2c1_pins_a>; 73 - status = "okay"; 74 - }; 75 - 76 - &lradc { 77 - vref-supply = <&reg_vcc3v0>; 78 - status = "okay"; 79 - 80 - button@200 { 81 - label = "Volume Up"; 82 - linux,code = <KEY_VOLUMEUP>; 83 - channel = <0>; 84 - voltage = <200000>; 85 - }; 86 - 87 - button@400 { 88 - label = "Volume Down"; 89 - linux,code = <KEY_VOLUMEDOWN>; 90 - channel = <0>; 91 - voltage = <400000>; 92 - }; 93 - }; 94 - 95 - &mmc0 { 96 - pinctrl-names = "default"; 97 - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>; 98 - vmmc-supply = <&reg_vcc3v0>; 99 - bus-width = <4>; 100 - cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 101 - cd-inverted; 102 - status = "okay"; 103 - }; 104 - 105 - &pio { 106 - mmc0_cd_pin_q8h: mmc0_cd_pin@0 { 107 - allwinner,pins = "PB4"; 108 - allwinner,function = "gpio_in"; 109 - allwinner,drive = <SUN4I_PINCTRL_10_MA>; 110 - allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 111 - }; 112 - }; 113 - 114 - &r_uart { 115 - pinctrl-names = "default"; 116 - pinctrl-0 = <&r_uart_pins_a>; 117 - status = "okay"; 118 50 }; 119 51 120 52 /*
+77
arch/arm/boot/dts/sun8i-q8-common.dtsi
··· 1 + /* 2 + * Copyright 2015 Hans de Goede <hdegoede@redhat.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + #include "sunxi-q8-common.dtsi" 43 + 44 + / { 45 + aliases { 46 + serial0 = &r_uart; 47 + }; 48 + 49 + chosen { 50 + stdout-path = "serial0:115200n8"; 51 + }; 52 + }; 53 + 54 + &mmc0 { 55 + pinctrl-names = "default"; 56 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8>; 57 + vmmc-supply = <&reg_vcc3v0>; 58 + bus-width = <4>; 59 + cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 60 + cd-inverted; 61 + status = "okay"; 62 + }; 63 + 64 + &pio { 65 + mmc0_cd_pin_q8: mmc0_cd_pin@0 { 66 + allwinner,pins = "PB4"; 67 + allwinner,function = "gpio_in"; 68 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 69 + allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 70 + }; 71 + }; 72 + 73 + &r_uart { 74 + pinctrl-names = "default"; 75 + pinctrl-0 = <&r_uart_pins_a>; 76 + status = "okay"; 77 + };
+77
arch/arm/boot/dts/sunxi-q8-common.dtsi
··· 1 + /* 2 + * Copyright 2015 Hans de Goede <hdegoede@redhat.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + #include <dt-bindings/gpio/gpio.h> 44 + #include <dt-bindings/input/input.h> 45 + #include <dt-bindings/pinctrl/sun4i-a10.h> 46 + #include "sunxi-common-regulators.dtsi" 47 + 48 + &i2c0 { 49 + pinctrl-names = "default"; 50 + pinctrl-0 = <&i2c0_pins_a>; 51 + status = "okay"; 52 + }; 53 + 54 + &i2c1 { 55 + pinctrl-names = "default"; 56 + pinctrl-0 = <&i2c1_pins_a>; 57 + status = "okay"; 58 + }; 59 + 60 + &lradc { 61 + vref-supply = <&reg_vcc3v0>; 62 + status = "okay"; 63 + 64 + button@200 { 65 + label = "Volume Up"; 66 + linux,code = <KEY_VOLUMEUP>; 67 + channel = <0>; 68 + voltage = <200000>; 69 + }; 70 + 71 + button@400 { 72 + label = "Volume Down"; 73 + linux,code = <KEY_VOLUMEDOWN>; 74 + channel = <0>; 75 + voltage = <400000>; 76 + }; 77 + };