1*3551b24fSHans de Goede/* 2*3551b24fSHans de Goede * Copyright 2016 Hans de Goede <hdegoede@redhat.com> 3*3551b24fSHans de Goede * 4*3551b24fSHans de Goede * This file is dual-licensed: you can use it either under the terms 5*3551b24fSHans de Goede * of the GPL or the X11 license, at your option. Note that this dual 6*3551b24fSHans de Goede * licensing only applies to this file, and not this project as a 7*3551b24fSHans de Goede * whole. 8*3551b24fSHans de Goede * 9*3551b24fSHans de Goede * a) This file is free software; you can redistribute it and/or 10*3551b24fSHans de Goede * modify it under the terms of the GNU General Public License as 11*3551b24fSHans de Goede * published by the Free Software Foundation; either version 2 of the 12*3551b24fSHans de Goede * License, or (at your option) any later version. 13*3551b24fSHans de Goede * 14*3551b24fSHans de Goede * This file is distributed in the hope that it will be useful, 15*3551b24fSHans de Goede * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*3551b24fSHans de Goede * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*3551b24fSHans de Goede * GNU General Public License for more details. 18*3551b24fSHans de Goede * 19*3551b24fSHans de Goede * Or, alternatively, 20*3551b24fSHans de Goede * 21*3551b24fSHans de Goede * b) Permission is hereby granted, free of charge, to any person 22*3551b24fSHans de Goede * obtaining a copy of this software and associated documentation 23*3551b24fSHans de Goede * files (the "Software"), to deal in the Software without 24*3551b24fSHans de Goede * restriction, including without limitation the rights to use, 25*3551b24fSHans de Goede * copy, modify, merge, publish, distribute, sublicense, and/or 26*3551b24fSHans de Goede * sell copies of the Software, and to permit persons to whom the 27*3551b24fSHans de Goede * Software is furnished to do so, subject to the following 28*3551b24fSHans de Goede * conditions: 29*3551b24fSHans de Goede * 30*3551b24fSHans de Goede * The above copyright notice and this permission notice shall be 31*3551b24fSHans de Goede * included in all copies or substantial portions of the Software. 32*3551b24fSHans de Goede * 33*3551b24fSHans de Goede * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34*3551b24fSHans de Goede * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35*3551b24fSHans de Goede * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36*3551b24fSHans de Goede * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37*3551b24fSHans de Goede * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38*3551b24fSHans de Goede * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39*3551b24fSHans de Goede * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40*3551b24fSHans de Goede * OTHER DEALINGS IN THE SOFTWARE. 41*3551b24fSHans de Goede */ 42*3551b24fSHans de Goede 43*3551b24fSHans de Goede/dts-v1/; 44*3551b24fSHans de Goede#include "sun8i-a23.dtsi" 45*3551b24fSHans de Goede#include "sunxi-common-regulators.dtsi" 46*3551b24fSHans de Goede 47*3551b24fSHans de Goede#include <dt-bindings/gpio/gpio.h> 48*3551b24fSHans de Goede#include <dt-bindings/input/input.h> 49*3551b24fSHans de Goede#include <dt-bindings/pinctrl/sun4i-a10.h> 50*3551b24fSHans de Goede#include <dt-bindings/pwm/pwm.h> 51*3551b24fSHans de Goede 52*3551b24fSHans de Goede/ { 53*3551b24fSHans de Goede model = "INet-86DZ Rev 01"; 54*3551b24fSHans de Goede compatible = "primux,inet86dz", "allwinner,sun8i-a23"; 55*3551b24fSHans de Goede 56*3551b24fSHans de Goede aliases { 57*3551b24fSHans de Goede serial0 = &r_uart; 58*3551b24fSHans de Goede }; 59*3551b24fSHans de Goede 60*3551b24fSHans de Goede backlight: backlight { 61*3551b24fSHans de Goede compatible = "pwm-backlight"; 62*3551b24fSHans de Goede pinctrl-names = "default"; 63*3551b24fSHans de Goede pinctrl-0 = <&bl_en_pin_inet86dz>; 64*3551b24fSHans de Goede pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 65*3551b24fSHans de Goede brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 66*3551b24fSHans de Goede default-brightness-level = <8>; 67*3551b24fSHans de Goede enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ 68*3551b24fSHans de Goede }; 69*3551b24fSHans de Goede 70*3551b24fSHans de Goede chosen { 71*3551b24fSHans de Goede stdout-path = "serial0:115200n8"; 72*3551b24fSHans de Goede }; 73*3551b24fSHans de Goede}; 74*3551b24fSHans de Goede 75*3551b24fSHans de Goede&ehci0 { 76*3551b24fSHans de Goede status = "okay"; 77*3551b24fSHans de Goede}; 78*3551b24fSHans de Goede 79*3551b24fSHans de Goede&i2c0 { 80*3551b24fSHans de Goede pinctrl-names = "default"; 81*3551b24fSHans de Goede pinctrl-0 = <&i2c0_pins_a>; 82*3551b24fSHans de Goede status = "okay"; 83*3551b24fSHans de Goede /* 84*3551b24fSHans de Goede * The gsl1680 is rated at 400KHz and it will not work reliable at 85*3551b24fSHans de Goede * 100KHz, this has been confirmed on multiple different tablets. 86*3551b24fSHans de Goede * The gsl1680 is the only device on this bus. 87*3551b24fSHans de Goede */ 88*3551b24fSHans de Goede clock-frequency = <400000>; 89*3551b24fSHans de Goede 90*3551b24fSHans de Goede gsl1680: touchscreen@40 { 91*3551b24fSHans de Goede compatible = "silead,gsl1680"; 92*3551b24fSHans de Goede reg = <0x40>; 93*3551b24fSHans de Goede interrupt-parent = <&pio>; 94*3551b24fSHans de Goede interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */ 95*3551b24fSHans de Goede pinctrl-names = "default"; 96*3551b24fSHans de Goede pinctrl-0 = <&ts_power_pin_inet86dz>; 97*3551b24fSHans de Goede power-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 98*3551b24fSHans de Goede touchscreen-size-x = <960>; 99*3551b24fSHans de Goede touchscreen-size-y = <640>; 100*3551b24fSHans de Goede touchscreen-max-fingers = <5>; 101*3551b24fSHans de Goede touchscreen-fw-name = "silead/gsl1680-inet86dz.fw"; 102*3551b24fSHans de Goede }; 103*3551b24fSHans de Goede}; 104*3551b24fSHans de Goede 105*3551b24fSHans de Goede&i2c1 { 106*3551b24fSHans de Goede pinctrl-names = "default"; 107*3551b24fSHans de Goede pinctrl-0 = <&i2c1_pins_a>; 108*3551b24fSHans de Goede status = "okay"; 109*3551b24fSHans de Goede}; 110*3551b24fSHans de Goede 111*3551b24fSHans de Goede&lradc { 112*3551b24fSHans de Goede vref-supply = <®_vcc3v0>; 113*3551b24fSHans de Goede status = "okay"; 114*3551b24fSHans de Goede 115*3551b24fSHans de Goede button@200 { 116*3551b24fSHans de Goede label = "Volume Up"; 117*3551b24fSHans de Goede linux,code = <KEY_VOLUMEUP>; 118*3551b24fSHans de Goede channel = <0>; 119*3551b24fSHans de Goede voltage = <200000>; 120*3551b24fSHans de Goede }; 121*3551b24fSHans de Goede 122*3551b24fSHans de Goede button@400 { 123*3551b24fSHans de Goede label = "Volume Down"; 124*3551b24fSHans de Goede linux,code = <KEY_VOLUMEDOWN>; 125*3551b24fSHans de Goede channel = <0>; 126*3551b24fSHans de Goede voltage = <400000>; 127*3551b24fSHans de Goede }; 128*3551b24fSHans de Goede}; 129*3551b24fSHans de Goede 130*3551b24fSHans de Goede&mmc0 { 131*3551b24fSHans de Goede pinctrl-names = "default"; 132*3551b24fSHans de Goede pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet86dz>; 133*3551b24fSHans de Goede vmmc-supply = <®_dcdc1>; 134*3551b24fSHans de Goede bus-width = <4>; 135*3551b24fSHans de Goede cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 136*3551b24fSHans de Goede cd-inverted; 137*3551b24fSHans de Goede status = "okay"; 138*3551b24fSHans de Goede}; 139*3551b24fSHans de Goede 140*3551b24fSHans de Goede&pio { 141*3551b24fSHans de Goede bl_en_pin_inet86dz: bl_en_pin@0 { 142*3551b24fSHans de Goede allwinner,pins = "PH6"; 143*3551b24fSHans de Goede allwinner,function = "gpio_in"; 144*3551b24fSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 145*3551b24fSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 146*3551b24fSHans de Goede }; 147*3551b24fSHans de Goede 148*3551b24fSHans de Goede mmc0_cd_pin_inet86dz: mmc0_cd_pin@0 { 149*3551b24fSHans de Goede allwinner,pins = "PB4"; 150*3551b24fSHans de Goede allwinner,function = "gpio_in"; 151*3551b24fSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 152*3551b24fSHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 153*3551b24fSHans de Goede }; 154*3551b24fSHans de Goede 155*3551b24fSHans de Goede ts_power_pin_inet86dz: ts_power_pin@0 { 156*3551b24fSHans de Goede allwinner,pins = "PH1"; 157*3551b24fSHans de Goede allwinner,function = "gpio_out"; 158*3551b24fSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 159*3551b24fSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 160*3551b24fSHans de Goede }; 161*3551b24fSHans de Goede 162*3551b24fSHans de Goede usb0_id_detect_pin: usb0_id_detect_pin@0 { 163*3551b24fSHans de Goede allwinner,pins = "PH8"; 164*3551b24fSHans de Goede allwinner,function = "gpio_in"; 165*3551b24fSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 166*3551b24fSHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 167*3551b24fSHans de Goede }; 168*3551b24fSHans de Goede}; 169*3551b24fSHans de Goede 170*3551b24fSHans de Goede&pwm { 171*3551b24fSHans de Goede pinctrl-names = "default"; 172*3551b24fSHans de Goede pinctrl-0 = <&pwm0_pins>; 173*3551b24fSHans de Goede status = "okay"; 174*3551b24fSHans de Goede}; 175*3551b24fSHans de Goede 176*3551b24fSHans de Goede&r_rsb { 177*3551b24fSHans de Goede status = "okay"; 178*3551b24fSHans de Goede 179*3551b24fSHans de Goede axp22x: pmic@3a3 { 180*3551b24fSHans de Goede compatible = "x-powers,axp223"; 181*3551b24fSHans de Goede reg = <0x3a3>; 182*3551b24fSHans de Goede interrupt-parent = <&nmi_intc>; 183*3551b24fSHans de Goede interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 184*3551b24fSHans de Goede eldoin-supply = <®_dcdc1>; 185*3551b24fSHans de Goede x-powers,drive-vbus-en; 186*3551b24fSHans de Goede }; 187*3551b24fSHans de Goede}; 188*3551b24fSHans de Goede 189*3551b24fSHans de Goede&r_uart { 190*3551b24fSHans de Goede pinctrl-names = "default"; 191*3551b24fSHans de Goede pinctrl-0 = <&r_uart_pins_a>; 192*3551b24fSHans de Goede status = "okay"; 193*3551b24fSHans de Goede}; 194*3551b24fSHans de Goede 195*3551b24fSHans de Goede#include "axp22x.dtsi" 196*3551b24fSHans de Goede 197*3551b24fSHans de Goede®_aldo1 { 198*3551b24fSHans de Goede regulator-always-on; 199*3551b24fSHans de Goede regulator-min-microvolt = <3000000>; 200*3551b24fSHans de Goede regulator-max-microvolt = <3000000>; 201*3551b24fSHans de Goede regulator-name = "vcc-io"; 202*3551b24fSHans de Goede}; 203*3551b24fSHans de Goede 204*3551b24fSHans de Goede®_aldo2 { 205*3551b24fSHans de Goede regulator-always-on; 206*3551b24fSHans de Goede regulator-min-microvolt = <2350000>; 207*3551b24fSHans de Goede regulator-max-microvolt = <2650000>; 208*3551b24fSHans de Goede regulator-name = "vdd-dll"; 209*3551b24fSHans de Goede}; 210*3551b24fSHans de Goede 211*3551b24fSHans de Goede®_aldo3 { 212*3551b24fSHans de Goede regulator-always-on; 213*3551b24fSHans de Goede regulator-min-microvolt = <2700000>; 214*3551b24fSHans de Goede regulator-max-microvolt = <3300000>; 215*3551b24fSHans de Goede regulator-name = "vcc-pll-avcc"; 216*3551b24fSHans de Goede}; 217*3551b24fSHans de Goede 218*3551b24fSHans de Goede®_dc1sw { 219*3551b24fSHans de Goede regulator-name = "vcc-lcd"; 220*3551b24fSHans de Goede}; 221*3551b24fSHans de Goede 222*3551b24fSHans de Goede®_dc5ldo { 223*3551b24fSHans de Goede regulator-always-on; 224*3551b24fSHans de Goede regulator-min-microvolt = <900000>; 225*3551b24fSHans de Goede regulator-max-microvolt = <1400000>; 226*3551b24fSHans de Goede regulator-name = "vdd-cpus"; 227*3551b24fSHans de Goede}; 228*3551b24fSHans de Goede 229*3551b24fSHans de Goede®_dcdc1 { 230*3551b24fSHans de Goede regulator-always-on; 231*3551b24fSHans de Goede regulator-min-microvolt = <3000000>; 232*3551b24fSHans de Goede regulator-max-microvolt = <3000000>; 233*3551b24fSHans de Goede regulator-name = "vcc-3v0"; 234*3551b24fSHans de Goede}; 235*3551b24fSHans de Goede 236*3551b24fSHans de Goede®_dcdc2 { 237*3551b24fSHans de Goede regulator-always-on; 238*3551b24fSHans de Goede regulator-min-microvolt = <900000>; 239*3551b24fSHans de Goede regulator-max-microvolt = <1400000>; 240*3551b24fSHans de Goede regulator-name = "vdd-sys"; 241*3551b24fSHans de Goede}; 242*3551b24fSHans de Goede 243*3551b24fSHans de Goede®_dcdc3 { 244*3551b24fSHans de Goede regulator-always-on; 245*3551b24fSHans de Goede regulator-min-microvolt = <900000>; 246*3551b24fSHans de Goede regulator-max-microvolt = <1400000>; 247*3551b24fSHans de Goede regulator-name = "vdd-cpu"; 248*3551b24fSHans de Goede}; 249*3551b24fSHans de Goede 250*3551b24fSHans de Goede®_dcdc5 { 251*3551b24fSHans de Goede regulator-always-on; 252*3551b24fSHans de Goede regulator-min-microvolt = <1500000>; 253*3551b24fSHans de Goede regulator-max-microvolt = <1500000>; 254*3551b24fSHans de Goede regulator-name = "vcc-dram"; 255*3551b24fSHans de Goede}; 256*3551b24fSHans de Goede 257*3551b24fSHans de Goede®_dldo1 { 258*3551b24fSHans de Goede regulator-min-microvolt = <3300000>; 259*3551b24fSHans de Goede regulator-max-microvolt = <3300000>; 260*3551b24fSHans de Goede regulator-name = "vcc-wifi"; 261*3551b24fSHans de Goede}; 262*3551b24fSHans de Goede 263*3551b24fSHans de Goede®_drivevbus { 264*3551b24fSHans de Goede regulator-name = "usb0-vbus"; 265*3551b24fSHans de Goede status = "okay"; 266*3551b24fSHans de Goede}; 267*3551b24fSHans de Goede 268*3551b24fSHans de Goede®_rtc_ldo { 269*3551b24fSHans de Goede regulator-name = "vcc-rtc"; 270*3551b24fSHans de Goede}; 271*3551b24fSHans de Goede 272*3551b24fSHans de Goede&simplefb_lcd { 273*3551b24fSHans de Goede vcc-lcd-supply = <®_dc1sw>; 274*3551b24fSHans de Goede}; 275*3551b24fSHans de Goede 276*3551b24fSHans de Goede&usb_otg { 277*3551b24fSHans de Goede dr_mode = "otg"; 278*3551b24fSHans de Goede status = "okay"; 279*3551b24fSHans de Goede}; 280*3551b24fSHans de Goede 281*3551b24fSHans de Goede&usb_power_supply { 282*3551b24fSHans de Goede status = "okay"; 283*3551b24fSHans de Goede}; 284*3551b24fSHans de Goede 285*3551b24fSHans de Goede&usbphy { 286*3551b24fSHans de Goede pinctrl-names = "default"; 287*3551b24fSHans de Goede pinctrl-0 = <&usb0_id_detect_pin>; 288*3551b24fSHans de Goede usb0_id_det-gpio = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ 289*3551b24fSHans de Goede usb0_vbus_power-supply = <&usb_power_supply>; 290*3551b24fSHans de Goede usb0_vbus-supply = <®_drivevbus>; 291*3551b24fSHans de Goede usb1_vbus-supply = <®_dldo1>; 292*3551b24fSHans de Goede status = "okay"; 293*3551b24fSHans de Goede}; 294