Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e982d58c authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'sunxi-dt-for-4.14-2' of...

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

Pull "Allwinner device tree changes for 4.14, round 2" from Chen-Yu Tsai:

The usual improvements:

  - AXP813/AXP818 PMIC (mfd and codec) enabled for Allwinner A83T boards

  - USB enabled for Allwinner A83T boards

* tag 'sunxi-dt-for-4.14-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: sun8i: a83t: h8homlet-v2: Enable USB ports
  ARM: sun8i: a83t: cubietruck-plus: Enable onboard USB peripherals
  ARM: sun8i: a83t: Add device node for USB OTG controller
  ARM: sun8i: a83t: Add USB PHY and host device nodes
  ARM: sun8i: a83t: h8homlet-v2: Enable AC100 combo chip in AXP818 PMIC
  ARM: sun8i: a83t: h8homlet-v2: Enable PMIC part of AXP818 PMIC
  ARM: sun8i: a83t: cubietruck-plus: Enable AC100 combo chip in AXP818 PMIC
  ARM: sun8i: a83t: cubietruck-plus: Enable PMIC part of AXP818 PMIC
  ARM: sun8i: a83t: Add device node and pinmux setting for RSB controller
parents 26667970 75ce73fd
Loading
Loading
Loading
Loading
+64 −0
Original line number Diff line number Diff line
@@ -58,6 +58,10 @@
	};
};

&ehci0 {
	status = "okay";
};

&mmc0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_pins>;
@@ -78,8 +82,68 @@
	status = "okay";
};

&ohci0 {
	status = "okay";
};

&reg_usb0_vbus {
	gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
	status = "okay";
};

&reg_usb1_vbus {
	gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
	status = "okay";
};

&r_rsb {
	status = "okay";

	axp81x: pmic@3a3 {
		compatible = "x-powers,axp818", "x-powers,axp813";
		reg = <0x3a3>;
		interrupt-parent = <&r_intc>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
	};

	ac100: codec@e89 {
		compatible = "x-powers,ac100";
		reg = <0xe89>;

		ac100_codec: codec {
			compatible = "x-powers,ac100-codec";
			interrupt-parent = <&r_pio>;
			interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
			#clock-cells = <0>;
			clock-output-names = "4M_adda";
		};

		ac100_rtc: rtc {
			compatible = "x-powers,ac100-rtc";
			interrupt-parent = <&r_intc>;
			interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
			clocks = <&ac100_codec>;
			#clock-cells = <1>;
			clock-output-names = "cko1_rtc",
					     "cko2_rtc",
					     "cko3_rtc";
		};
	};
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pb_pins>;
	status = "okay";
};

&usbphy {
	usb0_vbus-supply = <&reg_usb0_vbus>;
	usb1_vbus-supply = <&reg_usb1_vbus>;
	status = "okay";
};

&usb_otg {
	dr_mode = "host";
	status = "okay";
};
+79 −5
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@

/dts-v1/;
#include "sun8i-a83t.dtsi"
#include "sunxi-common-regulators.dtsi"

#include <dt-bindings/gpio/gpio.h>

@@ -83,11 +84,15 @@
		};
	};

	reg_vcc3v3: vcc3v3 {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	usb-hub {
		/* I2C is not connected */
		compatible = "smsc,usb3503";
		initial-mode = <1>; /* initialize in HUB mode */
		disabled-ports = <1>;
		intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
		reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
		connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
		refclk-frequency = <19200000>;
	};

	sound {
@@ -109,6 +114,16 @@
	};
};

&ehci0 {
	/* GL830 USB-to-SATA bridge here */
	status = "okay";
};

&ehci1 {
	/* USB3503 HSIC USB 2.0 hub here */
	status = "okay";
};

&mmc0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_pins>;
@@ -129,6 +144,59 @@
	status = "okay";
};

&r_rsb {
	status = "okay";

	axp81x: pmic@3a3 {
		compatible = "x-powers,axp818", "x-powers,axp813";
		reg = <0x3a3>;
		interrupt-parent = <&r_intc>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
	};

	ac100: codec@e89 {
		compatible = "x-powers,ac100";
		reg = <0xe89>;

		ac100_codec: codec {
			compatible = "x-powers,ac100-codec";
			interrupt-parent = <&r_pio>;
			interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
			#clock-cells = <0>;
			clock-output-names = "4M_adda";
		};

		ac100_rtc: rtc {
			compatible = "x-powers,ac100-rtc";
			interrupt-parent = <&r_intc>;
			interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
			clocks = <&ac100_codec>;
			#clock-cells = <1>;
			clock-output-names = "cko1_rtc",
					     "cko2_rtc",
					     "cko3_rtc";
		};
	};
};

&reg_usb1_vbus {
	gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */
	status = "okay";
};

&reg_usb2_vbus {
	gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
	status = "okay";
};

&reg_vcc3v0 {
	status = "disabled";
};

&reg_vcc5v0 {
	status = "disabled";
};

&spdif {
	status = "okay";
};
@@ -138,3 +206,9 @@
	pinctrl-0 = <&uart0_pb_pins>;
	status = "okay";
};

&usbphy {
	usb1_vbus-supply = <&reg_usb1_vbus>;
	usb2_vbus-supply = <&reg_usb2_vbus>;
	status = "okay";
};
+99 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@
#include <dt-bindings/clock/sun8i-a83t-ccu.h>
#include <dt-bindings/clock/sun8i-r-ccu.h>
#include <dt-bindings/reset/sun8i-a83t-ccu.h>
#include <dt-bindings/reset/sun8i-r-ccu.h>

/ {
	interrupt-parent = <&gic>;
@@ -241,6 +242,82 @@
			#size-cells = <0>;
		};

		usb_otg: usb@01c19000 {
			compatible = "allwinner,sun8i-a83t-musb",
				     "allwinner,sun8i-a33-musb";
			reg = <0x01c19000 0x0400>;
			clocks = <&ccu CLK_BUS_OTG>;
			resets = <&ccu RST_BUS_OTG>;
			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "mc";
			phys = <&usbphy 0>;
			phy-names = "usb";
			extcon = <&usbphy 0>;
			status = "disabled";
		};

		usbphy: phy@1c19400 {
			compatible = "allwinner,sun8i-a83t-usb-phy";
			reg = <0x01c19400 0x10>,
			      <0x01c1a800 0x14>,
			      <0x01c1b800 0x14>;
			reg-names = "phy_ctrl",
				    "pmu1",
				    "pmu2";
			clocks = <&ccu CLK_USB_PHY0>,
				 <&ccu CLK_USB_PHY1>,
				 <&ccu CLK_USB_HSIC>,
				 <&ccu CLK_USB_HSIC_12M>;
			clock-names = "usb0_phy",
				      "usb1_phy",
				      "usb2_phy",
				      "usb2_hsic_12M";
			resets = <&ccu RST_USB_PHY0>,
				 <&ccu RST_USB_PHY1>,
				 <&ccu RST_USB_HSIC>;
			reset-names = "usb0_reset",
				      "usb1_reset",
				      "usb2_reset";
			status = "disabled";
			#phy-cells = <1>;
		};

		ehci0: usb@1c1a000 {
			compatible = "allwinner,sun8i-a83t-ehci",
				     "generic-ehci";
			reg = <0x01c1a000 0x100>;
			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_EHCI0>;
			resets = <&ccu RST_BUS_EHCI0>;
			phys = <&usbphy 1>;
			phy-names = "usb";
			status = "disabled";
		};

		ohci0: usb@1c1a400 {
			compatible = "allwinner,sun8i-a83t-ohci",
				     "generic-ohci";
			reg = <0x01c1a400 0x100>;
			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_OHCI0>, <&ccu CLK_USB_OHCI0>;
			resets = <&ccu RST_BUS_OHCI0>;
			phys = <&usbphy 1>;
			phy-names = "usb";
			status = "disabled";
		};

		ehci1: usb@1c1b000 {
			compatible = "allwinner,sun8i-a83t-ehci",
				     "generic-ehci";
			reg = <0x01c1b000 0x100>;
			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_EHCI1>;
			resets = <&ccu RST_BUS_EHCI1>;
			phys = <&usbphy 2>;
			phy-names = "usb";
			status = "disabled";
		};

		ccu: clock@1c20000 {
			compatible = "allwinner,sun8i-a83t-ccu";
			reg = <0x01c20000 0x400>;
@@ -379,6 +456,28 @@
			#gpio-cells = <3>;
			interrupt-controller;
			#interrupt-cells = <3>;

			r_rsb_pins: r-rsb-pins {
				pins = "PL0", "PL1";
				function = "s_rsb";
				drive-strength = <20>;
				bias-pull-up;
			};
		};

		r_rsb: rsb@1f03400 {
			compatible = "allwinner,sun8i-a83t-rsb",
				     "allwinner,sun8i-a23-rsb";
			reg = <0x01f03400 0x400>;
			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&r_ccu CLK_APB0_RSB>;
			clock-frequency = <3000000>;
			resets = <&r_ccu RST_APB0_RSB>;
			pinctrl-names = "default";
			pinctrl-0 = <&r_rsb_pins>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
	};
};