Message ID | 20180606051702.6478-4-anarsoul@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
于 2018年6月6日 GMT+08:00 下午1:17:02, Vasily Khoruzhick <anarsoul@gmail.com> 写到: >From: Icenowy Zheng <icenowy@aosc.xyz> 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@aosc.xyz> >Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> >--- > 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@aosc.xyz> >+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com> >+ * >+ */ >+ >+/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"; >+};
OK, will do. On Tue, Jun 5, 2018 at 10:20 PM, Icenowy Zheng <icenowy@aosc.io> wrote: > > > 于 2018年6月6日 GMT+08:00 下午1:17:02, Vasily Khoruzhick <anarsoul@gmail.com> 写到: >>From: Icenowy Zheng <icenowy@aosc.xyz> > > 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@aosc.xyz> >>Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> >>--- >> 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@aosc.xyz> >>+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com> >>+ * >>+ */ >>+ >>+/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"; >>+};
On Tue, Jun 05, 2018 at 10:17:02PM -0700, Vasily Khoruzhick wrote: > From: Icenowy Zheng <icenowy@aosc.xyz> > > 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@aosc.xyz> > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> I've updated Icenowy's domain and applied, thanks! Maxime
On Wed, Jun 6, 2018 at 12:37 PM, Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > I've updated Icenowy's domain and applied, thanks! > Maxime Thanks!
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@aosc.xyz> + * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com> + * + */ + +/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"; +};