sunxi: dts: Sync with kernel

Sync the sunxi dts files with the changes queued up for kernel-4.3 in
mripard's sunxi/dt-for-4.3 branch.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
master
Hans de Goede 9 years ago
parent d8d079966f
commit da52a4a367
  1. 1
      arch/arm/dts/Makefile
  2. 49
      arch/arm/dts/axp152.dtsi
  3. 5
      arch/arm/dts/axp209.dtsi
  4. 15
      arch/arm/dts/sun4i-a10-ba10-tvbox.dts
  5. 34
      arch/arm/dts/sun4i-a10-chuwi-v7-cw0825.dts
  6. 19
      arch/arm/dts/sun4i-a10-cubieboard.dts
  7. 202
      arch/arm/dts/sun4i-a10-itead-iteaduino-plus.dts
  8. 15
      arch/arm/dts/sun4i-a10-mini-xplus.dts
  9. 32
      arch/arm/dts/sun4i-a10-olinuxino-lime.dts
  10. 16
      arch/arm/dts/sun4i-a10.dtsi
  11. 37
      arch/arm/dts/sun5i-a10s-olinuxino-micro.dts
  12. 58
      arch/arm/dts/sun5i-a13-hsg-h702.dts
  13. 37
      arch/arm/dts/sun5i-a13-olinuxino.dts
  14. 29
      arch/arm/dts/sun5i-a13-utoo-p66.dts
  15. 16
      arch/arm/dts/sun5i.dtsi
  16. 2
      arch/arm/dts/sun6i-a31-m9.dts
  17. 5
      arch/arm/dts/sun6i-a31-mele-a1000g-quad.dts
  18. 16
      arch/arm/dts/sun6i-a31.dtsi
  19. 5
      arch/arm/dts/sun6i-a31s-cs908.dts
  20. 56
      arch/arm/dts/sun7i-a20-cubietruck.dts
  21. 2
      arch/arm/dts/sun7i-a20-i12-tvbox.dts
  22. 32
      arch/arm/dts/sun7i-a20-olinuxino-lime.dts
  23. 32
      arch/arm/dts/sun7i-a20-olinuxino-micro.dts
  24. 16
      arch/arm/dts/sun7i-a20.dtsi
  25. 7
      arch/arm/dts/sun8i-a23-a33.dtsi
  26. 9
      arch/arm/dts/sun8i-a23-ippo-q8h-v5.dts
  27. 33
      arch/arm/dts/sun8i-a23.dtsi
  28. 9
      arch/arm/dts/sun8i-a33-ga10h-v1.1.dts
  29. 112
      arch/arm/dts/sun8i-a33-ippo-q8h-v1.2.dts
  30. 13
      arch/arm/dts/sun8i-a33-sinlinx-sina33.dts
  31. 33
      arch/arm/dts/sun8i-a33.dtsi
  32. 2
      arch/arm/dts/sunxi-common-regulators.dtsi

@ -77,6 +77,7 @@ dtb-$(CONFIG_MACH_SUN4I) += \
sun4i-a10-inet-3f.dtb \ sun4i-a10-inet-3f.dtb \
sun4i-a10-inet-3w.dtb \ sun4i-a10-inet-3w.dtb \
sun4i-a10-inet97fv2.dtb \ sun4i-a10-inet97fv2.dtb \
sun4i-a10-itead-iteaduino-plus.dtb \
sun4i-a10-jesurun-q5.dtb \ sun4i-a10-jesurun-q5.dtb \
sun4i-a10-marsboard.dtb \ sun4i-a10-marsboard.dtb \
sun4i-a10-mini-xplus.dtb \ sun4i-a10-mini-xplus.dtb \

@ -0,0 +1,49 @@
/*
* Copyright 2015 Chen-Yu Tsai
*
* Chen-Yu Tsai <wens@csie.org>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
&axp152 {
compatible = "x-powers,axp152";
interrupt-controller;
#interrupt-cells = <1>;
};

@ -18,11 +18,6 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public
* License along with this file; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* Or, alternatively, * Or, alternatively,
* *
* b) Permission is hereby granted, free of charge, to any person * b) Permission is hereby granted, free of charge, to any person

@ -125,12 +125,21 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
usb2_vbus_pin_a: usb2_vbus_pin@0 { usb2_vbus_pin_a: usb2_vbus_pin@0 {
allwinner,pins = "PH12"; allwinner,pins = "PH12";
}; };
}; };
&reg_usb0_vbus {
regulator-boot-on;
status = "okay";
};
&reg_usb1_vbus { &reg_usb1_vbus {
status = "okay"; status = "okay";
}; };
@ -146,7 +155,13 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy { &usbphy {
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -114,6 +114,30 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio {
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
};
&reg_usb0_vbus {
status = "okay";
};
&reg_usb2_vbus { &reg_usb2_vbus {
status = "okay"; status = "okay";
}; };
@ -124,7 +148,17 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";
}; };

@ -155,6 +155,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
led_pins_cubieboard: led_pins@0 { led_pins_cubieboard: led_pins@0 {
allwinner,pins = "PH20", "PH21"; allwinner,pins = "PH20", "PH21";
@ -162,6 +166,13 @@
allwinner,drive = <SUN4I_PINCTRL_20_MA>; allwinner,drive = <SUN4I_PINCTRL_20_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
}; };
&reg_ahci_5v { &reg_ahci_5v {
@ -216,7 +227,15 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>;
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -0,0 +1,202 @@
/*
* Copyright 2015 Josef Gajdusek <atx@atx.name>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/dts-v1/;
#include "sun4i-a10.dtsi"
#include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>
/ {
model = "Iteaduino Plus A10";
compatible = "itead,iteaduino-plus-a10", "allwinner,sun4i-a10";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
};
&ahci {
target-supply = <&reg_ahci_5v>;
status = "okay";
};
&cpu0 {
cpu-supply = <&reg_dcdc2>;
};
&ehci0 {
status = "okay";
};
&ehci1 {
status = "okay";
};
&emac {
pinctrl-names = "default";
pinctrl-0 = <&emac_pins_a>;
phy = <&phy1>;
status = "okay";
};
&emac_sram {
status = "okay";
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
axp209: pmic@34 {
reg = <0x34>;
interrupts = <0>;
};
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>;
status = "okay";
};
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins_a>;
status = "okay";
};
&ir0 {
pinctrl-names = "default";
pinctrl-0 = <&ir0_rx_pins_a>;
status = "okay";
};
&mdio {
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
vmmc-supply = <&reg_vcc3v3>;
bus-width = <4>;
cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
cd-inverted;
status = "okay";
};
&ohci0 {
status = "okay";
};
&ohci1 {
status = "okay";
};
&reg_ahci_5v {
status = "okay";
};
#include "axp209.dtsi"
&reg_dcdc2 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1450000>;
regulator-name = "vdd-cpu";
};
&reg_dcdc3 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1400000>;
regulator-name = "vdd-int-dll";
};
&reg_ldo1 {
regulator-name = "vdd-rtc";
};
&reg_ldo2 {
regulator-always-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-name = "avcc";
};
&reg_usb1_vbus {
status = "okay";
};
&reg_usb2_vbus {
status = "okay";
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>,
<&spi0_cs0_pins_a>;
status = "okay";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
&usbphy {
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay";
};

@ -114,6 +114,15 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&reg_usb0_vbus {
regulator-boot-on;
status = "okay";
};
&reg_usb1_vbus { &reg_usb1_vbus {
status = "okay"; status = "okay";
}; };
@ -128,7 +137,13 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy { &usbphy {
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -150,6 +150,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
allwinner,pins = "PC3"; allwinner,pins = "PC3";
@ -164,6 +168,20 @@
allwinner,drive = <SUN4I_PINCTRL_20_MA>; allwinner,drive = <SUN4I_PINCTRL_20_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
}; };
&reg_ahci_5v { &reg_ahci_5v {
@ -172,6 +190,10 @@
status = "okay"; status = "okay";
}; };
&reg_usb0_vbus {
status = "okay";
};
&reg_usb1_vbus { &reg_usb1_vbus {
status = "okay"; status = "okay";
}; };
@ -186,7 +208,17 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -611,6 +611,19 @@
#size-cells = <0>; #size-cells = <0>;
}; };
usb_otg: usb@01c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ahb_gates 0>;
interrupts = <38>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
allwinner,sram = <&otg_sram 1>;
status = "disabled";
};
usbphy: phy@01c13400 { usbphy: phy@01c13400 {
#phy-cells = <1>; #phy-cells = <1>;
compatible = "allwinner,sun4i-a10-usb-phy"; compatible = "allwinner,sun4i-a10-usb-phy";
@ -713,8 +726,7 @@
clocks = <&apb0_gates 5>; clocks = <&apb0_gates 5>;
gpio-controller; gpio-controller;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <3>;
#size-cells = <0>;
#gpio-cells = <3>; #gpio-cells = <3>;
pwm0_pins_a: pwm0@0 { pwm0_pins_a: pwm0@0 {

@ -96,8 +96,15 @@
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>; pinctrl-0 = <&i2c0_pins_a>;
status = "okay"; status = "okay";
axp152: pmic@30 {
reg = <0x30>;
interrupts = <0>;
};
}; };
#include "axp152.dtsi"
&i2c1 { &i2c1 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>; pinctrl-0 = <&i2c1_pins_a>;
@ -189,6 +196,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 { mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
allwinner,pins = "PG1"; allwinner,pins = "PG1";
@ -217,6 +228,18 @@
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PG12";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
};
&reg_usb0_vbus {
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
status = "okay";
}; };
&reg_usb1_vbus { &reg_usb1_vbus {
@ -243,8 +266,20 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usb0_vbus_pin_a {
allwinner,pins = "PG11";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>;
usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
status = "okay"; status = "okay";
}; };

@ -45,6 +45,7 @@
#include "sunxi-common-regulators.dtsi" #include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/sun4i-a10.h> #include <dt-bindings/pinctrl/sun4i-a10.h>
/ { / {
@ -96,6 +97,25 @@
status = "okay"; status = "okay";
}; };
&lradc {
vref-supply = <&reg_ldo2>;
status = "okay";
button@200 {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
channel = <0>;
voltage = <200000>;
};
button@400 {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
channel = <0>;
voltage = <400000>;
};
};
&mmc0 { &mmc0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>; pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>;
@ -110,6 +130,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
mmc0_cd_pin_h702: mmc0_cd_pin@0 { mmc0_cd_pin_h702: mmc0_cd_pin@0 {
allwinner,pins = "PG0"; allwinner,pins = "PG0";
@ -117,6 +141,20 @@
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PG2";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PG1";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
}; };
#include "axp209.dtsi" #include "axp209.dtsi"
@ -152,13 +190,33 @@
regulator-name = "vcc-wifi"; regulator-name = "vcc-wifi";
}; };
&reg_usb0_vbus {
pinctrl-0 = <&usb0_vbus_pin_a>;
gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
status = "okay";
};
&uart1 { &uart1 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart1_pins_b>; pinctrl-0 = <&uart1_pins_b>;
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usb0_vbus_pin_a {
allwinner,pins = "PG12";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_ldo3>; usb1_vbus-supply = <&reg_ldo3>;
status = "okay"; status = "okay";
}; };

@ -159,6 +159,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
allwinner,pins = "PG0"; allwinner,pins = "PG0";
@ -174,6 +178,20 @@
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PG2";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PG1";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 { usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
allwinner,pins = "PG11"; allwinner,pins = "PG11";
allwinner,function = "gpio_out"; allwinner,function = "gpio_out";
@ -182,6 +200,11 @@
}; };
}; };
&reg_usb0_vbus {
status = "okay";
gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
};
&reg_usb1_vbus { &reg_usb1_vbus {
pinctrl-0 = <&usb1_vbus_pin_olinuxino>; pinctrl-0 = <&usb1_vbus_pin_olinuxino>;
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
@ -194,7 +217,21 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usb0_vbus_pin_a {
allwinner,pins = "PG12";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
status = "okay"; status = "okay";
}; };

@ -93,7 +93,7 @@
compatible = "chipone,icn8318"; compatible = "chipone,icn8318";
reg = <0x40>; reg = <0x40>;
interrupt-parent = <&pio>; interrupt-parent = <&pio>;
interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */ interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&ts_wake_pin_p66>; pinctrl-0 = <&ts_wake_pin_p66>;
wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
@ -153,6 +153,10 @@
}; };
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
mmc0_cd_pin_p66: mmc0_cd_pin@0 { mmc0_cd_pin_p66: mmc0_cd_pin@0 {
allwinner,pins = "PG0"; allwinner,pins = "PG0";
@ -161,6 +165,20 @@
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
}; };
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PG1";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PG2";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
i2c_lcd_pins: i2c_lcd_pin@0 { i2c_lcd_pins: i2c_lcd_pin@0 {
allwinner,pins = "PG10", "PG12"; allwinner,pins = "PG10", "PG12";
allwinner,function = "gpio_out"; allwinner,function = "gpio_out";
@ -219,7 +237,16 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
usb0_vbus-supply = <&reg_usb0_vbus>; usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_ldo3>; usb1_vbus-supply = <&reg_ldo3>;
status = "okay"; status = "okay";

@ -416,6 +416,19 @@
#size-cells = <0>; #size-cells = <0>;
}; };
usb_otg: usb@01c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ahb_gates 0>;
interrupts = <38>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
allwinner,sram = <&otg_sram 1>;
status = "disabled";
};
usbphy: phy@01c13400 { usbphy: phy@01c13400 {
#phy-cells = <1>; #phy-cells = <1>;
compatible = "allwinner,sun5i-a13-usb-phy"; compatible = "allwinner,sun5i-a13-usb-phy";
@ -475,8 +488,7 @@
clocks = <&apb0_gates 5>; clocks = <&apb0_gates 5>;
gpio-controller; gpio-controller;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <3>;
#size-cells = <0>;
#gpio-cells = <3>; #gpio-cells = <3>;
i2c0_pins_a: i2c0@0 { i2c0_pins_a: i2c0@0 {

@ -48,7 +48,7 @@
#include <dt-bindings/pinctrl/sun4i-a10.h> #include <dt-bindings/pinctrl/sun4i-a10.h>
/ { / {
model = "Mele M9 / A1000G Quad top set box"; model = "Mele M9 top set box";
compatible = "mele,m9", "allwinner,sun6i-a31"; compatible = "mele,m9", "allwinner,sun6i-a31";
aliases { aliases {

@ -143,6 +143,11 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy { &usbphy {
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
status = "okay"; status = "okay";

@ -512,6 +512,19 @@
#size-cells = <0>; #size-cells = <0>;
}; };
usb_otg: usb@01c19000 {
compatible = "allwinner,sun6i-a31-musb";
reg = <0x01c19000 0x0400>;
clocks = <&ahb1_gates 24>;
resets = <&ahb1_rst 24>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
status = "disabled";
};
usbphy: phy@01c19400 { usbphy: phy@01c19400 {
compatible = "allwinner,sun6i-a31-usb-phy"; compatible = "allwinner,sun6i-a31-usb-phy";
reg = <0x01c19400 0x10>, reg = <0x01c19400 0x10>,
@ -599,8 +612,7 @@
clocks = <&apb1_gates 5>; clocks = <&apb1_gates 5>;
gpio-controller; gpio-controller;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <3>;
#size-cells = <0>;
#gpio-cells = <3>; #gpio-cells = <3>;
uart0_pins_a: uart0@0 { uart0_pins_a: uart0@0 {

@ -93,6 +93,11 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy { &usbphy {
status = "okay"; status = "okay";
}; };

@ -88,15 +88,11 @@
}; };
}; };
reg_vmmc3: vmmc3 { mmc3_pwrseq: mmc3_pwrseq {
compatible = "regulator-fixed"; compatible = "mmc-pwrseq-simple";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&vmmc3_pin_cubietruck>; pinctrl-0 = <&mmc3_pwrseq_pin_cubietruck>;
regulator-name = "vmmc3"; reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpio = <&pio 7 9 GPIO_ACTIVE_HIGH>;
}; };
}; };
@ -172,7 +168,8 @@
&mmc3 { &mmc3 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins_a>; pinctrl-0 = <&mmc3_pins_a>;
vmmc-supply = <&reg_vmmc3>; vmmc-supply = <&reg_vcc3v3>;
mmc-pwrseq = <&mmc3_pwrseq>;
bus-width = <4>; bus-width = <4>;
non-removable; non-removable;
status = "okay"; status = "okay";
@ -181,7 +178,7 @@
reg = <1>; reg = <1>;
compatible = "brcm,bcm4329-fmac"; compatible = "brcm,bcm4329-fmac";
interrupt-parent = <&pio>; interrupt-parent = <&pio>;
interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */ interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
interrupt-names = "host-wake"; interrupt-names = "host-wake";
}; };
}; };
@ -199,23 +196,27 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
vmmc3_pin_cubietruck: vmmc3_pin@0 { ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
allwinner,pins = "PH9"; allwinner,pins = "PH12";
allwinner,function = "gpio_out"; allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 { led_pins_cubietruck: led_pins@0 {
allwinner,pins = "PH12"; allwinner,pins = "PH7", "PH11", "PH20", "PH21";
allwinner,function = "gpio_out"; allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
led_pins_cubietruck: led_pins@0 { mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin@0 {
allwinner,pins = "PH7", "PH11", "PH20", "PH21"; allwinner,pins = "PH9";
allwinner,function = "gpio_out"; allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
@ -227,6 +228,20 @@
allwinner,drive = <SUN4I_PINCTRL_10_MA>; allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH19";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
}; };
&pwm { &pwm {
@ -288,7 +303,16 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>; /* PH19 */
usb0_vbus_det-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
usb0_vbus-supply = <&reg_usb0_vbus>; usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;

@ -178,7 +178,7 @@
reg = <1>; reg = <1>;
compatible = "brcm,bcm4329-fmac"; compatible = "brcm,bcm4329-fmac";
interrupt-parent = <&pio>; interrupt-parent = <&pio>;
interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */ interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
interrupt-names = "host-wake"; interrupt-names = "host-wake";
}; };
}; };

@ -135,6 +135,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
allwinner,pins = "PC3"; allwinner,pins = "PC3";
@ -149,6 +153,20 @@
allwinner,drive = <SUN4I_PINCTRL_20_MA>; allwinner,drive = <SUN4I_PINCTRL_20_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
}; };
&reg_ahci_5v { &reg_ahci_5v {
@ -157,6 +175,10 @@
status = "okay"; status = "okay";
}; };
&reg_usb0_vbus {
status = "okay";
};
&reg_usb1_vbus { &reg_usb1_vbus {
status = "okay"; status = "okay";
}; };
@ -171,7 +193,17 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -215,6 +215,10 @@
status = "okay"; status = "okay";
}; };
&otg_sram {
status = "okay";
};
&pio { &pio {
mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 { mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 {
allwinner,pins = "PH11"; allwinner,pins = "PH11";
@ -229,12 +233,30 @@
allwinner,drive = <SUN4I_PINCTRL_20_MA>; allwinner,drive = <SUN4I_PINCTRL_20_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
usb0_id_detect_pin: usb0_id_detect_pin@0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
};
}; };
&reg_ahci_5v { &reg_ahci_5v {
status = "okay"; status = "okay";
}; };
&reg_usb0_vbus {
status = "okay";
};
&reg_usb1_vbus { &reg_usb1_vbus {
status = "okay"; status = "okay";
}; };
@ -275,7 +297,17 @@
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy { &usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>; usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>; usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay"; status = "okay";

@ -699,6 +699,19 @@
#size-cells = <0>; #size-cells = <0>;
}; };
usb_otg: usb@01c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ahb_gates 0>;
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
allwinner,sram = <&otg_sram 1>;
status = "disabled";
};
usbphy: phy@01c13400 { usbphy: phy@01c13400 {
#phy-cells = <1>; #phy-cells = <1>;
compatible = "allwinner,sun7i-a20-usb-phy"; compatible = "allwinner,sun7i-a20-usb-phy";
@ -794,8 +807,7 @@
clocks = <&apb0_gates 5>; clocks = <&apb0_gates 5>;
gpio-controller; gpio-controller;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <3>;
#size-cells = <0>;
#gpio-cells = <3>; #gpio-cells = <3>;
pwm0_pins_a: pwm0@0 { pwm0_pins_a: pwm0@0 {

@ -338,6 +338,8 @@
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ahb1_gates 26>; clocks = <&ahb1_gates 26>;
resets = <&ahb1_rst 26>; resets = <&ahb1_rst 26>;
phys = <&usbphy 1>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
@ -347,6 +349,8 @@
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ahb1_gates 29>, <&usb_clk 16>; clocks = <&ahb1_gates 29>, <&usb_clk 16>;
resets = <&ahb1_rst 29>; resets = <&ahb1_rst 29>;
phys = <&usbphy 1>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
@ -357,8 +361,7 @@
clocks = <&apb1_gates 5>; clocks = <&apb1_gates 5>;
gpio-controller; gpio-controller;
interrupt-controller; interrupt-controller;
#address-cells = <1>; #interrupt-cells = <3>;
#size-cells = <0>;
#gpio-cells = <3>; #gpio-cells = <3>;
uart0_pins_a: uart0@0 { uart0_pins_a: uart0@0 {

@ -125,3 +125,12 @@
pinctrl-0 = <&r_uart_pins_a>; pinctrl-0 = <&r_uart_pins_a>;
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy {
status = "okay";
};

@ -58,6 +58,39 @@
clock-output-names = "mbus"; clock-output-names = "mbus";
}; };
}; };
soc@01c00000 {
usb_otg: usb@01c19000 {
compatible = "allwinner,sun6i-a31-musb";
reg = <0x01c19000 0x0400>;
clocks = <&ahb1_gates 24>;
resets = <&ahb1_rst 24>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
status = "disabled";
};
usbphy: phy@01c19400 {
compatible = "allwinner,sun8i-a23-usb-phy";
reg = <0x01c19400 0x10>,
<0x01c1a800 0x4>;
reg-names = "phy_ctrl",
"pmu1";
clocks = <&usb_clk 8>,
<&usb_clk 9>;
clock-names = "usb0_phy",
"usb1_phy";
resets = <&usb_clk 0>,
<&usb_clk 1>;
reset-names = "usb0_reset",
"usb1_reset";
status = "disabled";
#phy-cells = <1>;
};
};
}; };
&pio { &pio {

@ -131,3 +131,12 @@
pinctrl-0 = <&r_uart_pins_a>; pinctrl-0 = <&r_uart_pins_a>;
status = "okay"; status = "okay";
}; };
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy {
status = "okay";
};

@ -1,17 +1,56 @@
/* /*
* Copyright 2015 Hans de Goede <hdegoede@redhat.com> * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
* *
* Minimal dts file for the Ippo Q8H V1.2 (A33, 1024x600) for u-boot only * This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
* *
* SPDX-License-Identifier: GPL-2.0+ or X11 * a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/ */
/dts-v1/; /dts-v1/;
#include "sun8i-a33.dtsi" #include "sun8i-a33.dtsi"
#include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>
/ { / {
model = "Ippo Q8H V1.2 (A33, 1024x600)"; model = "Ippo Q8H Quad Core Tablet (v1.2)";
compatible = "ippo,q8h-v1.2-a33-lcd1024x600", "allwinner,sun8i-a23"; compatible = "ippo,a33-q8h-v1.2", "allwinner,sun8i-a33";
aliases { aliases {
serial0 = &r_uart; serial0 = &r_uart;
@ -22,8 +61,73 @@
}; };
}; };
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>;
status = "okay";
};
&lradc {
vref-supply = <&reg_vcc3v0>;
status = "okay";
button@200 {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
channel = <0>;
voltage = <200000>;
};
button@400 {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
channel = <0>;
voltage = <400000>;
};
};
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>;
vmmc-supply = <&reg_vcc3v0>;
bus-width = <4>;
cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
cd-inverted;
status = "okay";
};
&pio {
mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
allwinner,pins = "PB4";
allwinner,function = "gpio_in";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
};
&r_uart { &r_uart {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&r_uart_pins_a>; pinctrl-0 = <&r_uart_pins_a>;
status = "okay"; status = "okay";
}; };
/*
* FIXME for now we only support host mode and rely on u-boot to have
* turned on Vbus which is controlled by the axp223 pmic on the board.
*
* Once we have axp223 support we should switch to fully supporting otg.
*/
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy {
status = "okay";
};

@ -63,6 +63,10 @@
}; };
}; };
&ehci0 {
status = "okay";
};
&lradc { &lradc {
vref-supply = <&reg_vcc3v0>; vref-supply = <&reg_vcc3v0>;
status = "okay"; status = "okay";
@ -113,6 +117,10 @@
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
}; };
&ohci0 {
status = "okay";
};
&pio { &pio {
mmc0_cd_pin_sina33: mmc0_cd_pin@0 { mmc0_cd_pin_sina33: mmc0_cd_pin@0 {
allwinner,pins = "PB4"; allwinner,pins = "PB4";
@ -127,3 +135,8 @@
pinctrl-0 = <&uart0_pins_b>; pinctrl-0 = <&uart0_pins_b>;
status = "okay"; status = "okay";
}; };
&usbphy {
status = "okay";
usb1_vbus-supply = <&reg_vcc5v0>; /* USB1 VBUS is always on */
};

@ -80,6 +80,39 @@
clock-output-names = "mbus"; clock-output-names = "mbus";
}; };
}; };
soc@01c00000 {
usb_otg: usb@01c19000 {
compatible = "allwinner,sun8i-a33-musb";
reg = <0x01c19000 0x0400>;
clocks = <&ahb1_gates 24>;
resets = <&ahb1_rst 24>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
status = "disabled";
};
usbphy: phy@01c19400 {
compatible = "allwinner,sun8i-a33-usb-phy";
reg = <0x01c19400 0x14>,
<0x01c1a800 0x4>;
reg-names = "phy_ctrl",
"pmu1";
clocks = <&usb_clk 8>,
<&usb_clk 9>;
clock-names = "usb0_phy",
"usb1_phy";
resets = <&usb_clk 0>,
<&usb_clk 1>;
reset-names = "usb0_reset",
"usb1_reset";
status = "disabled";
#phy-cells = <1>;
};
};
}; };
&pio { &pio {

@ -108,6 +108,7 @@
regulator-name = "usb1-vbus"; regulator-name = "usb1-vbus";
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
regulator-boot-on;
enable-active-high; enable-active-high;
gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>;
status = "disabled"; status = "disabled";
@ -120,6 +121,7 @@
regulator-name = "usb2-vbus"; regulator-name = "usb2-vbus";
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
regulator-boot-on;
enable-active-high; enable-active-high;
gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>; gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>;
status = "disabled"; status = "disabled";

Loading…
Cancel
Save