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

Merge tag 'sunxi-dt-for-4.5-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt

Allwinner DT patches, round 2

Mostly some audio codec patches to enable it on more boards, and a bunch
devices activation (Ethernet, touchscreen, backlights). One more board has
been added too.

* tag 'sunxi-dt-for-4.5-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
ARM: dts: sun5i: Add dts file for the Empire Electronix D709 tablet
ARM: dts: sun7i: Enable gmac on Wits Pro A20 DKT
ARM: dt: sun7i: Enable audio codec on MK808C
ARM: sunxi: dt: enable audio codec on mk802
ARM: dts: sun7i: Add PA gpio pin to Wexler TAB7200 tablet
ARM: dts: sun7i: Add backlight node to Wexler TAB7200 tablet
ARM: dts: sun7i: Enable touchscreen on Wexler TAB7200 tablet
ARM: dts: sun7i: Enable PWM controller on Wexler TAB7200 tablet
ARM: dts: sun4i: gemei-g9: Enable PA GPIO pin configuration
ARM: dts: sun4i: Enable onboard codec used on the pov protab2-ips9 tablet
ARM: dts: sun5i: Enable onboard codec used on the UTOO P66 tablet

Signed-off-by: Olof Johansson <olof@lixom.net>

+356 -1
+1
arch/arm/boot/dts/Makefile
··· 638 638 sun5i-a10s-olinuxino-micro.dtb \ 639 639 sun5i-a10s-r7-tv-dongle.dtb \ 640 640 sun5i-a10s-wobo-i5.dtb \ 641 + sun5i-a13-empire-electronix-d709.dtb \ 641 642 sun5i-a13-hsg-h702.dtb \ 642 643 sun5i-a13-inet-98v-rev2.dtb \ 643 644 sun5i-a13-olinuxino.dtb \
+13 -1
arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
··· 65 65 /* 66 66 * TODO: 67 67 * 2x cameras via CSI 68 - * audio input 69 68 * AXP battery management 70 69 * NAND 71 70 * OTG 72 71 * Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48 73 72 */ 74 73 &codec { 74 + /* PH15 controls power to external amplifier (ft2012q) */ 75 + pinctrl-names = "default"; 76 + pinctrl-0 = <&codec_pa_pin>; 77 + allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; 75 78 status = "okay"; 76 79 }; 77 80 ··· 152 149 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH01 */ 153 150 cd-inverted; 154 151 status = "okay"; 152 + }; 153 + 154 + &pio { 155 + codec_pa_pin: codec_pa_pin@0 { 156 + allwinner,pins = "PH15"; 157 + allwinner,function = "gpio_out"; 158 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 159 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 160 + }; 155 161 }; 156 162 157 163 &reg_dcdc2 {
+4
arch/arm/boot/dts/sun4i-a10-mk802.dts
··· 58 58 }; 59 59 }; 60 60 61 + &codec { 62 + status = "okay"; 63 + }; 64 + 61 65 &ehci0 { 62 66 status = "okay"; 63 67 };
+14
arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
··· 72 72 }; 73 73 }; 74 74 75 + &codec { 76 + pinctrl-names = "default"; 77 + pinctrl-0 = <&codec_pa_pin>; 78 + allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */ 79 + status = "okay"; 80 + }; 81 + 75 82 &cpu0 { 76 83 cpu-supply = <&reg_dcdc2>; 77 84 }; ··· 165 158 &pio { 166 159 bl_en_pin_protab: bl_en_pin@0 { 167 160 allwinner,pins = "PH7"; 161 + allwinner,function = "gpio_out"; 162 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 163 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 164 + }; 165 + 166 + codec_pa_pin: codec_pa_pin@0 { 167 + allwinner,pins = "PH15"; 168 168 allwinner,function = "gpio_out"; 169 169 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 170 170 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+241
arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
··· 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 + /dts-v1/; 44 + #include "sun5i-a13.dtsi" 45 + #include "sunxi-common-regulators.dtsi" 46 + #include <dt-bindings/gpio/gpio.h> 47 + #include <dt-bindings/input/input.h> 48 + #include <dt-bindings/interrupt-controller/irq.h> 49 + #include <dt-bindings/pinctrl/sun4i-a10.h> 50 + #include <dt-bindings/pwm/pwm.h> 51 + 52 + / { 53 + model = "Empire Electronix D709 tablet"; 54 + compatible = "empire-electronix,d709", "allwinner,sun5i-a13"; 55 + 56 + aliases { 57 + serial0 = &uart1; 58 + }; 59 + 60 + backlight: backlight { 61 + compatible = "pwm-backlight"; 62 + pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 63 + brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 64 + default-brightness-level = <8>; 65 + /* TODO: backlight uses axp gpio1 as enable pin */ 66 + }; 67 + 68 + chosen { 69 + stdout-path = "serial0:115200n8"; 70 + }; 71 + }; 72 + 73 + &cpu0 { 74 + cpu-supply = <&reg_dcdc2>; 75 + }; 76 + 77 + &ehci0 { 78 + status = "okay"; 79 + }; 80 + 81 + &i2c0 { 82 + pinctrl-names = "default"; 83 + pinctrl-0 = <&i2c0_pins_a>; 84 + status = "okay"; 85 + 86 + axp209: pmic@34 { 87 + reg = <0x34>; 88 + interrupts = <0>; 89 + }; 90 + }; 91 + 92 + #include "axp209.dtsi" 93 + 94 + &i2c1 { 95 + pinctrl-names = "default"; 96 + pinctrl-0 = <&i2c1_pins_a>; 97 + status = "okay"; 98 + 99 + pcf8563: rtc@51 { 100 + compatible = "nxp,pcf8563"; 101 + reg = <0x51>; 102 + }; 103 + }; 104 + 105 + &lradc { 106 + vref-supply = <&reg_ldo2>; 107 + status = "okay"; 108 + 109 + button@200 { 110 + label = "Volume Up"; 111 + linux,code = <KEY_VOLUMEUP>; 112 + channel = <0>; 113 + voltage = <200000>; 114 + }; 115 + 116 + button@400 { 117 + label = "Volume Down"; 118 + linux,code = <KEY_VOLUMEDOWN>; 119 + channel = <0>; 120 + voltage = <400000>; 121 + }; 122 + }; 123 + 124 + &mmc0 { 125 + pinctrl-names = "default"; 126 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet98fv2>; 127 + vmmc-supply = <&reg_vcc3v3>; 128 + bus-width = <4>; 129 + cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */ 130 + cd-inverted; 131 + status = "okay"; 132 + }; 133 + 134 + &mmc2 { 135 + pinctrl-names = "default"; 136 + pinctrl-0 = <&mmc2_pins_a>; 137 + vmmc-supply = <&reg_vcc3v3>; 138 + bus-width = <8>; 139 + non-removable; 140 + status = "okay"; 141 + 142 + mmccard: mmccard@0 { 143 + reg = <0>; 144 + compatible = "mmc-card"; 145 + broken-hpi; 146 + }; 147 + }; 148 + 149 + &otg_sram { 150 + status = "okay"; 151 + }; 152 + 153 + &pio { 154 + mmc0_cd_pin_inet98fv2: mmc0_cd_pin@0 { 155 + allwinner,pins = "PG0"; 156 + allwinner,function = "gpio_in"; 157 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 158 + allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 159 + }; 160 + 161 + usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 162 + allwinner,pins = "PG1"; 163 + allwinner,function = "gpio_in"; 164 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 165 + allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>; 166 + }; 167 + 168 + usb0_id_detect_pin: usb0_id_detect_pin@0 { 169 + allwinner,pins = "PG2"; 170 + allwinner,function = "gpio_in"; 171 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 172 + allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 173 + }; 174 + }; 175 + 176 + &pwm { 177 + pinctrl-names = "default"; 178 + pinctrl-0 = <&pwm0_pins>; 179 + status = "okay"; 180 + }; 181 + 182 + &reg_dcdc2 { 183 + regulator-always-on; 184 + regulator-min-microvolt = <1000000>; 185 + regulator-max-microvolt = <1400000>; 186 + regulator-name = "vdd-cpu"; 187 + }; 188 + 189 + &reg_dcdc3 { 190 + regulator-always-on; 191 + regulator-min-microvolt = <1250000>; 192 + regulator-max-microvolt = <1250000>; 193 + regulator-name = "vdd-int-pll"; 194 + }; 195 + 196 + &reg_ldo1 { 197 + regulator-name = "vdd-rtc"; 198 + }; 199 + 200 + &reg_ldo2 { 201 + regulator-always-on; 202 + regulator-min-microvolt = <3000000>; 203 + regulator-max-microvolt = <3000000>; 204 + regulator-name = "avcc"; 205 + }; 206 + 207 + &reg_ldo3 { 208 + regulator-min-microvolt = <3300000>; 209 + regulator-max-microvolt = <3300000>; 210 + regulator-name = "vcc-wifi"; 211 + }; 212 + 213 + &reg_usb0_vbus { 214 + gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 215 + status = "okay"; 216 + }; 217 + 218 + &uart1 { 219 + pinctrl-names = "default"; 220 + pinctrl-0 = <&uart1_pins_b>; 221 + status = "okay"; 222 + }; 223 + 224 + &usb_otg { 225 + dr_mode = "otg"; 226 + status = "okay"; 227 + }; 228 + 229 + &usb0_vbus_pin_a { 230 + allwinner,pins = "PG12"; 231 + }; 232 + 233 + &usbphy { 234 + pinctrl-names = "default"; 235 + pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; 236 + usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */ 237 + usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */ 238 + usb0_vbus-supply = <&reg_usb0_vbus>; 239 + usb1_vbus-supply = <&reg_ldo3>; 240 + status = "okay"; 241 + };
+14
arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
··· 73 73 }; 74 74 }; 75 75 76 + &codec { 77 + pinctrl-names = "default"; 78 + pinctrl-0 = <&codec_pa_pin>; 79 + allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */ 80 + status = "okay"; 81 + }; 82 + 76 83 &cpu0 { 77 84 cpu-supply = <&reg_dcdc2>; 78 85 }; ··· 175 168 }; 176 169 177 170 &pio { 171 + codec_pa_pin: codec_pa_pin@0 { 172 + allwinner,pins = "PG3"; 173 + allwinner,function = "gpio_out"; 174 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 175 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 176 + }; 177 + 178 178 mmc0_cd_pin_p66: mmc0_cd_pin@0 { 179 179 allwinner,pins = "PG0"; 180 180 allwinner,function = "gpio_in";
+4
arch/arm/boot/dts/sun7i-a20-mk808c.dts
··· 68 68 }; 69 69 }; 70 70 71 + &codec { 72 + status = "okay"; 73 + }; 74 + 71 75 &ehci0 { 72 76 status = "okay"; 73 77 };
+53
arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
··· 48 48 #include <dt-bindings/gpio/gpio.h> 49 49 #include <dt-bindings/input/input.h> 50 50 #include <dt-bindings/interrupt-controller/irq.h> 51 + #include <dt-bindings/pwm/pwm.h> 51 52 52 53 / { 53 54 model = "Wexler TAB7200"; ··· 58 57 serial0 = &uart0; 59 58 }; 60 59 60 + backlight { 61 + compatible = "pwm-backlight"; 62 + pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 63 + brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 64 + default-brightness-level = <8>; 65 + pinctrl-names = "default"; 66 + pinctrl-0 = <&bl_enable_pin>; 67 + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ 68 + }; 69 + 61 70 chosen { 62 71 stdout-path = "serial0:115200n8"; 63 72 }; 64 73 }; 65 74 66 75 &codec { 76 + pinctrl-names = "default"; 77 + pinctrl-0 = <&codec_pa_pin>; 78 + allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */ 67 79 status = "okay"; 68 80 }; 69 81 ··· 116 102 pinctrl-names = "default"; 117 103 pinctrl-0 = <&i2c2_pins_a>; 118 104 status = "okay"; 105 + 106 + gt911: touchscreen@5d { 107 + compatible = "goodix,gt911"; 108 + reg = <0x5d>; 109 + interrupt-parent = <&pio>; 110 + interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; /* EINT21 (PH21) */ 111 + pinctrl-names = "default"; 112 + pinctrl-0 = <&ts_reset_pin>; 113 + irq-gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* INT (PH21) */ 114 + reset-gpios = <&pio 1 13 GPIO_ACTIVE_HIGH>; /* RST (PB13) */ 115 + touchscreen-swapped-x-y; 116 + }; 119 117 }; 120 118 121 119 &lradc { ··· 172 146 }; 173 147 174 148 &pio { 149 + bl_enable_pin: bl_enable_pin@0 { 150 + allwinner,pins = "PH7"; 151 + allwinner,function = "gpio_out"; 152 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 153 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 154 + }; 155 + 156 + codec_pa_pin: codec_pa_pin@0 { 157 + allwinner,pins = "PH15"; 158 + allwinner,function = "gpio_out"; 159 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 160 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 161 + }; 162 + 163 + ts_reset_pin: ts_reset_pin@0 { 164 + allwinner,pins = "PB13"; 165 + allwinner,function = "gpio_out"; 166 + allwinner,drive = <SUN4I_PINCTRL_10_MA>; 167 + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 168 + }; 169 + 175 170 usb0_id_detect_pin: usb0_id_detect_pin@0 { 176 171 allwinner,pins = "PH4"; 177 172 allwinner,function = "gpio_in"; 178 173 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 179 174 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 180 175 }; 176 + }; 177 + 178 + &pwm { 179 + pinctrl-names = "default"; 180 + pinctrl-0 = <&pwm0_pins_a>; 181 + status = "okay"; 181 182 }; 182 183 183 184 &reg_dcdc2 {
+12
arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
··· 80 80 status = "okay"; 81 81 }; 82 82 83 + &gmac { 84 + pinctrl-names = "default"; 85 + pinctrl-0 = <&gmac_pins_rgmii_a>; 86 + phy = <&phy1>; 87 + phy-mode = "rgmii"; 88 + status = "okay"; 89 + 90 + phy1: ethernet-phy@1 { 91 + reg = <1>; 92 + }; 93 + }; 94 + 83 95 &i2c0 { 84 96 pinctrl-names = "default"; 85 97 pinctrl-0 = <&i2c0_pins_a>;