于 2018年6月6日 GMT+08:00 下午1:17:02, Vasily Khoruzhick <anarsoul@xxxxxxxxx> 写到: >From: Icenowy Zheng <icenowy@xxxxxxxx> Could you change all the mail address to @aosc.io ? > >Pinebook is a A64-based laptop produced by Pine64, with the following >peripherals: > >USB: >- Two external USB ports (one is directly connected to A64's OTG >controller, the other is under a internal hub connected to the >host-only >controller.) >- USB HID keyboard and touchpad connected to the internal hub. >- USB UVC camera connected to the internal hub. > >Power-related: >- A DC IN jack connected to AXP803's DCIN pin. >- A Li-Polymer battery connected to AXP803's battery pins. > >Storage: >- An eMMC by Foresee on the main board (in the product revision of the >main board it's designed to be switchable). >- An external MicroSD card slot. > >Display: >- An eDP LCD panel (1366x768) connected via an ANX6345 RGB-eDP bridge. >- A mini HDMI port. > >Misc: >- A Hall sensor designed to detect the status of lid, connected to GPIO >PL12. >- A headphone jack connected to the SoC's internal codec. >- A debug UART port muxed with headphone jack. > >This commit adds basical support for it. > >[vasily: squashed several commits into one, added simplefb node, added >usbphy > to ehci0 and ohci0 nodes and other cosmetic changes to dts] > >Signed-off-by: Icenowy Zheng <icenowy@xxxxxxxx> >Signed-off-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx> >--- > arch/arm64/boot/dts/allwinner/Makefile | 1 + > .../dts/allwinner/sun50i-a64-pinebook.dts | 280 ++++++++++++++++++ > 2 files changed, 281 insertions(+) >create mode 100644 >arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > >diff --git a/arch/arm64/boot/dts/allwinner/Makefile >b/arch/arm64/boot/dts/allwinner/Makefile >index 8bebe7da5ed9..a8c6d0c6f2c5 100644 >--- a/arch/arm64/boot/dts/allwinner/Makefile >+++ b/arch/arm64/boot/dts/allwinner/Makefile >@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb >dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb >sun50i-a64-pine64.dtb >+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb >diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts >new file mode 100644 >index 000000000000..58253d6f9be1 >--- /dev/null >+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts >@@ -0,0 +1,280 @@ >+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >+/* >+ * Copyright (C) 2017 Icenowy Zheng <icenowy@xxxxxxxx> >+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@xxxxxxxxx> >+ * >+ */ >+ >+/dts-v1/; >+ >+#include "sun50i-a64.dtsi" >+ >+#include <dt-bindings/gpio/gpio.h> >+#include <dt-bindings/input/input.h> >+#include <dt-bindings/pwm/pwm.h> >+ >+/ { >+ model = "Pinebook"; >+ compatible = "pine64,pinebook", "allwinner,sun50i-a64"; >+ >+ aliases { >+ serial0 = &uart0; >+ ethernet0 = &rtl8723cs; >+ }; >+ >+ backlight: backlight { >+ compatible = "pwm-backlight"; >+ pwms = <&pwm 0 50000 0>; >+ brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>; >+ default-brightness-level = <2>; >+ enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ >+ }; >+ >+ chosen { >+ stdout-path = "serial0:115200n8"; >+ >+ framebuffer-lcd { >+ panel-supply = <®_dc1sw>; >+ dvdd25-supply = <®_dldo2>; >+ dvdd12-supply = <®_fldo1>; >+ }; >+ }; >+ >+ gpio_keys { >+ compatible = "gpio-keys"; >+ >+ lid_switch { >+ label = "Lid Switch"; >+ gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */ >+ linux,input-type = <EV_SW>; >+ linux,code = <SW_LID>; >+ linux,can-disable; >+ }; >+ }; >+ >+ reg_vcc3v3: vcc3v3 { >+ compatible = "regulator-fixed"; >+ regulator-name = "vcc3v3"; >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ }; >+ >+ wifi_pwrseq: wifi_pwrseq { >+ compatible = "mmc-pwrseq-simple"; >+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ >+ }; >+}; >+ >+&ehci0 { >+ phys = <&usbphy 0>; >+ phy-names = "usb"; >+ status = "okay"; >+}; >+ >+&ehci1 { >+ status = "okay"; >+}; >+ >+&mmc0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&mmc0_pins>; >+ vmmc-supply = <®_dcdc1>; >+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; >+ cd-inverted; >+ disable-wp; >+ bus-width = <4>; >+ status = "okay"; >+}; >+ >+&mmc1 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&mmc1_pins>; >+ vmmc-supply = <®_dldo4>; >+ vqmmc-supply = <®_eldo1>; >+ mmc-pwrseq = <&wifi_pwrseq>; >+ bus-width = <4>; >+ non-removable; >+ status = "okay"; >+ >+ rtl8723cs: wifi@1 { >+ reg = <1>; >+ }; >+}; >+ >+&mmc2 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&mmc2_pins>; >+ vmmc-supply = <®_dcdc1>; >+ vqmmc-supply = <®_eldo1>; >+ bus-width = <8>; >+ non-removable; >+ cap-mmc-hw-reset; >+ mmc-hs200-1_8v; >+ status = "okay"; >+}; >+ >+&ohci0 { >+ phys = <&usbphy 0>; >+ phy-names = "usb"; >+ status = "okay"; >+}; >+ >+&ohci1 { >+ status = "okay"; >+}; >+ >+&pwm { >+ status = "okay"; >+}; >+ >+&r_rsb { >+ status = "okay"; >+ >+ axp803: pmic@3a3 { >+ compatible = "x-powers,axp803"; >+ reg = <0x3a3>; >+ interrupt-parent = <&r_intc>; >+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; >+ }; >+}; >+ >+/* The ANX6345 eDP-bridge is on r_i2c */ >+&r_i2c { >+ clock-frequency = <100000>; >+ pinctrl-names = "default"; >+ pinctrl-0 = <&r_i2c_pins_a>; >+ status = "okay"; >+}; >+ >+#include "axp803.dtsi" >+ >+®_aldo1 { >+ regulator-min-microvolt = <2800000>; >+ regulator-max-microvolt = <2800000>; >+ regulator-name = "vcc-csi"; >+}; >+ >+®_aldo2 { >+ regulator-always-on; >+ regulator-min-microvolt = <1800000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-pl"; >+}; >+ >+®_aldo3 { >+ regulator-always-on; >+ regulator-min-microvolt = <2700000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-pll-avcc"; >+}; >+ >+®_dc1sw { >+ regulator-name = "vcc-lcd"; >+}; >+ >+®_dcdc1 { >+ regulator-always-on; >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-3v3"; >+}; >+ >+®_dcdc2 { >+ regulator-always-on; >+ regulator-min-microvolt = <1000000>; >+ regulator-max-microvolt = <1300000>; >+ regulator-name = "vdd-cpux"; >+}; >+ >+/* DCDC3 is polyphased with DCDC2 */ >+ >+®_dcdc5 { >+ regulator-always-on; >+ regulator-min-microvolt = <1200000>; >+ regulator-max-microvolt = <1200000>; >+ regulator-name = "vcc-dram"; >+}; >+ >+®_dcdc6 { >+ regulator-always-on; >+ regulator-min-microvolt = <1100000>; >+ regulator-max-microvolt = <1100000>; >+ regulator-name = "vdd-sys"; >+}; >+ >+®_dldo1 { >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-hdmi"; >+}; >+ >+®_dldo2 { >+ regulator-min-microvolt = <2500000>; >+ regulator-max-microvolt = <2500000>; >+ regulator-name = "vcc-edp"; >+}; >+ >+®_dldo3 { >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "avdd-csi"; >+}; >+ >+®_dldo4 { >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-wifi"; >+}; >+ >+®_eldo1 { >+ regulator-always-on; >+ regulator-min-microvolt = <1800000>; >+ regulator-max-microvolt = <1800000>; >+ regulator-name = "cpvdd"; >+}; >+ >+®_eldo3 { >+ regulator-min-microvolt = <1800000>; >+ regulator-max-microvolt = <1800000>; >+ regulator-name = "vdd-1v8-csi"; >+}; >+ >+®_fldo1 { >+ regulator-min-microvolt = <1200000>; >+ regulator-max-microvolt = <1200000>; >+ regulator-name = "vcc-1v2-hsic"; >+}; >+ >+®_fldo2 { >+ regulator-always-on; >+ regulator-min-microvolt = <1100000>; >+ regulator-max-microvolt = <1100000>; >+ regulator-name = "vdd-cpus"; >+}; >+ >+®_ldo_io0 { >+ regulator-min-microvolt = <3300000>; >+ regulator-max-microvolt = <3300000>; >+ regulator-name = "vcc-usb"; >+ status = "okay"; >+}; >+ >+®_rtc_ldo { >+ regulator-name = "vcc-rtc"; >+}; >+ >+&uart0 { >+ pinctrl-names = "default"; >+ pinctrl-0 = <&uart0_pins_a>; >+ status = "okay"; >+}; >+ >+&usb_otg { >+ dr_mode = "host"; >+}; >+ >+&usbphy { >+ usb0_vbus-supply = <®_ldo_io0>; >+ usb1_vbus-supply = <®_ldo_io0>; >+ status = "okay"; >+}; -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html