Add support for Pinebook
Subsystems (5)
v4 cover Add support for Pinebook
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs sun50i-a64.dtsi with linux, adds support for mmc delay calibration, R_I2C controller, and addresses the issue with activating video bridge when any of GPIOs is missing.
v2: - sync sun50i-a64.dtsi with linux instead of adding missing nodes
- take sun50i-a64-pinebook.dts from linux
- don't introduce new Kconfig for A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable in video_bridge_set_active()
- fix order of dts files Makefile
- split anx6345 binding into sun50i-a64-pinebook-u-boot.dts
- drop speaker_amp node from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-next
Vasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support for R_I2C controller
sunxi: DT: add support for Pinebook
arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfig
Signature · 1 line
2.19.1
PATCH v4 1/5 mmc: sunxi: add support for automatic delay calibration
A64 and H6 support automatic delay calibration and Linux driver uses it instead of hardcoded delays. Add support for it to u-boot driver.
Fixes eMMC instability on Pinebook
--- arch/arm/include/asm/arch-sunxi/mmc.h | 6 +++++- drivers/mmc/sunxi_mmc.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-)
arch/arm/include/asm/arch-sunxi/mmc.h +5 -1
@@ -46,7 +46,9 @@ struct sunxi_mmc {u32 cbda;/* 0x94 */ u32 res2[26 ];#if defined(CONFIG_SUNXI_GEN_SUN6I ) || defined(CONFIG_MACH_SUN50I_H6 ) -u32 res3[64 ]; +u32 res3[17 ]; +u32 samp_dl; +u32 res4[46 ];#endif u32 fifo;/* 0x100 / 0x200 FIFO access address */ };
@@ -130,5 +132,7 @@ struct sunxi_mmc {#define SUNXI_MMC_COMMON_CLK_GATE (1 << 16)#define SUNXI_MMC_COMMON_RESET (1 << 18) +#define SUNXI_MMC_CAL_DL_SW_EN (0x1 << 7) +struct mmc *sunxi_mmc_init (int sdc_no);#endif /* _SUNXI_MMC_H */
drivers/mmc/sunxi_mmc.c +20 -1
@@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) {unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly;bool new_mode = false; +bool calibrate = false;u32 val =0 ;if (IS_ENABLED (CONFIG_MMC_SUNXI_HAS_NEW_MODE ) && (priv->mmc_no ==2 )) new_mode = true; +#if defined(CONFIG_MACH_SUN50I ) || defined(CONFIG_MACH_SUN50I_H6 ) + calibrate = true; +#endif +/* * The MMC clock has an extra /2 post-divider when operating in the new * mode.
@@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) val =CCM_MMC_CTRL_MODE_SEL_NEW ;setbits_le32 (&priv->reg->ntsr,SUNXI_MMC_NTSR_MODE_SEL_NEW );#endif - }else { + }else if (!calibrate) { +/* +* Use hardcoded delay values if controller doesn't support +* calibration +*/ val =CCM_MMC_CTRL_OCLK_DLY (oclk_dly) |CCM_MMC_CTRL_SCLK_DLY (sclk_dly); }
@@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *priv, struct mmc *mmc) rval &= ~SUNXI_MMC_CLK_DIVIDER_MASK ;writel (rval, &priv->reg->clkcr); +#if defined(CONFIG_MACH_SUN50I ) || defined(CONFIG_MACH_SUN50I_H6 ) +/* A64 supports calibration of delays on MMC controller and we +* have to set delay of zero before starting calibration. +* Allwinner BSP driver sets a delay only in the case of +* using HS400 which is not supported by mainline U-Boot or +* Linux at the moment +*/ +writel (SUNXI_MMC_CAL_DL_SW_EN , &priv->reg->samp_dl); +#endif +/* Re-enable Clock */ rval |=SUNXI_MMC_CLK_ENABLE ;writel (rval, &priv->reg->clkcr);
Signature · 1 line
2.19.1
PATCH v4 2/5 dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing
In reply to Vasily KhoruzhickBoth GPIOs are optional, so we shouldn't fail if any is missing. Without this fix reset is not deasserted if sleep GPIO is missing.
--- drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
drivers/video/bridge/video-bridge-uclass.c +11 -5
@@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *dev)int video_bridge_set_active (struct udevice *dev,bool active) {struct video_bridge_priv *uc_priv =dev_get_uclass_priv (dev); -int ret; +int ret =0 ;debug ("%s: %d\n" , __func__, active); - ret =dm_gpio_set_value (&uc_priv->sleep, !active); -if (ret) -return ret; -if (active) { +if (uc_priv->sleep.dev) { + ret =dm_gpio_set_value (&uc_priv->sleep, !active); +if (ret) +return ret; + } + +if (!active) +return 0 ; + +if (uc_priv->reset.dev) { ret =dm_gpio_set_value (&uc_priv->reset, true);if (ret)return ret;
Signature · 1 line
2.19.1
PATCH v4 3/5 sunxi: DT: A64: update device tree files for Allwinner A64 SoC
In reply to Vasily KhoruzhickUpdates the device tree files from the linux-next tree, exactly Linux commit:
commit 8c60c36d0b8c (tag: next-20181019)
Author: Stephen Rothwell <[email protected]>
Date: Fri Oct 19 18:13:43 2018 +1100
Add linux-next specific files for 20181019
--- arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- 9 files changed, 920 insertions(+), 45 deletions(-)
arch/arm/dts/sun50i-a64-amarula-relic.dts +161 -7
@@ -22,11 +22,11 @@ stdout-path = "serial0:115200n8"; }; - 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"; + clocks = <&rtc 1>; + clock-names = "ext_clock"; + reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */ }; };
@@ -34,10 +34,34 @@ status = "okay"; }; +&mmc1 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; + vmmc-supply = <®_dcdc1>; + /* + * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but + * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with + * 0Ohm register to vcc-io-wifi so eldo1 is used. + */ + vqmmc-supply = <®_eldo1>; + mmc-pwrseq = <&wifi_pwrseq>; + bus-width = <4>; + non-removable; + status = "okay"; + + brcmf: wifi at 1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&r_pio>; + interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* WL-WAKE-AP: PL3 */ + interrupt-names = "host-wake"; + }; +}; + &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; - vmmc-supply = <®_vcc3v3>; + vmmc-supply = <®_dcdc1>; bus-width = <8>; non-removable; cap-mmc-hw-reset;
@@ -48,9 +72,138 @@ status = "okay"; }; +&r_rsb { + status = "okay"; + + axp803: pmic at 3a3 { + compatible = "x-powers,axp803"; + reg = <0x3a3>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ + }; +}; + +#include "axp803.dtsi" + +®_aldo1 { + regulator-always-on; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "avdd-csi"; +}; + +®_aldo2 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-pl"; +}; + +®_aldo3 { + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "vcc-pll-avcc"; +}; + +®_dcdc1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3"; +}; + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <1040000>; + regulator-max-microvolt = <1300000>; + regulator-name = "vdd-cpux"; +}; + +/* DCDC3 is polyphased with DCDC2 */ + +®_dcdc5 { + regulator-always-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + 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-dsi-sensor"; +}; + +®_dldo2 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-mipi"; +}; + +®_dldo3 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "dovdd-csi"; +}; + +®_dldo4 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-wifi-io"; +}; + +®_drivevbus { + regulator-name = "usb0-vbus"; + status = "okay"; +}; + +®_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 = "dvdd-csi"; +}; + +®_fldo1 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-1v2-hsic"; +}; + +/* + * The A64 chip cannot work without this regulator off, although + * it seems to be only driving the AR100 core. + * Maybe we don't still know well about CPUs domain. + */ +®_fldo2 { + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-name = "vdd-cpus"; +}; + +®_rtc_ldo { + regulator-name = "vcc-rtc"; +}; + &uart0 { pinctrl-names = "default"; - pinctrl-0 = <&uart0_pins_a>; + pinctrl-0 = <&uart0_pb_pins>; status = "okay"; };
@@ -61,5 +214,6 @@ &usbphy { usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ + usb0_vbus-supply = <®_drivevbus>; status = "okay"; };
arch/arm/dts/sun50i-a64-bananapi-m64.dts +32 -2
@@ -60,6 +60,17 @@ stdout-path = "serial0:115200n8"; }; + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; + leds { compatible = "gpio-leds";
@@ -86,6 +97,10 @@ }; }; +&de { + status = "okay"; +}; + &ehci0 { status = "okay"; };
@@ -103,6 +118,17 @@ status = "okay"; }; +&hdmi { + hvcc-supply = <®_dldo1>; + status = "okay"; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>;
@@ -151,7 +177,7 @@ &mmc2 { pinctrl-names = "default"; - pinctrl-0 = <&mmc2_pins>; + pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; vmmc-supply = <®_dcdc1>; bus-width = <8>; non-removable;
@@ -296,9 +322,13 @@ regulator-name = "vcc-rtc"; }; +&simplefb_hdmi { + vcc-hdmi-supply = <®_dldo1>; +}; + &uart0 { pinctrl-names = "default"; - pinctrl-0 = <&uart0_pins_a>; + pinctrl-0 = <&uart0_pb_pins>; status = "okay"; };
arch/arm/dts/sun50i-a64-nanopi-a64.dts +85 -4
133 lines not on this page · raw message
arch/arm/dts/sun50i-a64-olinuxino.dts +100 -3
154 lines not on this page · raw message
arch/arm/dts/sun50i-a64-orangepi-win.dts +173 -6
235 lines not on this page · raw message
arch/arm/dts/sun50i-a64-pine64.dts +31 -1
@@ -62,6 +62,21 @@ chosen { stdout-path = "serial0:115200n8"; }; + + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; +}; + +&de { + status = "okay"; }; &ehci0 {
@@ -82,6 +97,17 @@ }; +&hdmi { + hvcc-supply = <®_dldo1>; + status = "okay"; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>;
@@ -229,6 +255,10 @@ regulator-name = "vcc-rtc"; }; +&simplefb_hdmi { + vcc-hdmi-supply = <®_dldo1>; +}; + /* On Euler connector */ &spdif { status = "disabled";
@@ -237,7 +267,7 @@ /* On Exp and Euler connectors */ &uart0 { pinctrl-names = "default"; - pinctrl-0 = <&uart0_pins_a>; + pinctrl-0 = <&uart0_pb_pins>; status = "okay"; };
arch/arm/dts/sun50i-a64-sopine-baseboard.dts +31 -1
@@ -61,6 +61,17 @@ stdout-path = "serial0:115200n8"; }; + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; + reg_vcc1v8: vcc1v8 { compatible = "regulator-fixed"; regulator-name = "vcc1v8";
@@ -69,6 +80,10 @@ }; }; +&de { + status = "okay"; +}; + &ehci0 { status = "okay"; };
@@ -86,6 +101,17 @@ status = "okay"; }; +&hdmi { + hvcc-supply = <®_dldo1>; + status = "okay"; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + &mdio { ext_rgmii_phy: ethernet-phy at 1 { compatible = "ethernet-phy-ieee802.3-c22";
@@ -134,9 +160,13 @@ regulator-name = "vcc-wifi"; }; +&simplefb_hdmi { + vcc-hdmi-supply = <®_dldo1>; +}; + &uart0 { pinctrl-names = "default"; - pinctrl-0 = <&uart0_pins_a>; + pinctrl-0 = <&uart0_pb_pins>; status = "okay"; };
arch/arm/dts/sun50i-a64-sopine.dtsi +15 -0
@@ -45,6 +45,8 @@ #include "sun50i-a64.dtsi" +#include <dt-bindings/gpio/gpio.h> + &mmc0 { pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>;
@@ -52,6 +54,7 @@ non-removable; disable-wp; bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ status = "okay"; };
@@ -66,6 +69,18 @@ }; }; +&spi0 { + status = "okay"; + + flash at 0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <40000000>; + }; +}; + #include "axp803.dtsi" ®_aldo2 {
arch/arm/dts/sun50i-a64.dtsi +292 -21
431 lines not on this page · raw message
Signature · 1 line
2.19.1
PATCH v4 4/5 sun50i: A64: add support for R_I2C controller
In reply to Vasily KhoruzhickAllwinner A64 has a I2C controller, which is in the R_ MMIO zone and has two groups of pinmuxes on PL bank, so it's called R_I2C.
Add support for this I2C controller and the pinmux which doesn't conflict with RSB.
--- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 ++++++ 3 files changed, 8 insertions(+)
arch/arm/include/asm/arch-sunxi/gpio.h +1 -0
@@ -211,6 +211,7 @@ enum sunxi_gpio_number {#define SUN8I_H3_GPL_R_TWI 2#define SUN8I_A23_GPL_R_TWI 3#define SUN8I_GPL_R_UART 2 +#define SUN50I_GPL_R_TWI 2#define SUN9I_GPN_R_RSB 3
arch/arm/mach-sunxi/Kconfig +1 -0
@@ -272,6 +272,7 @@ config MACH_SUN50I select ARM64 select DM_I2C select PHY_SUN4I_USB + select SUN6I_PRCM select SUNXI_DE2 select SUNXI_GEN_SUN6I select SUPPORT_SPL
board/sunxi/board.c +6 -0
@@ -168,10 +168,16 @@ void i2c_init_board(void)#endif #ifdef CONFIG_R_I2C_ENABLE +#ifdef CONFIG_MACH_SUN50I +clock_twi_onoff (5 ,1 ); +sunxi_gpio_set_cfgpin (SUNXI_GPL (8 ),SUN50I_GPL_R_TWI ); +sunxi_gpio_set_cfgpin (SUNXI_GPL (9 ),SUN50I_GPL_R_TWI ); +#else clock_twi_onoff (5 ,1 );sunxi_gpio_set_cfgpin (SUNXI_GPL (0 ),SUN8I_H3_GPL_R_TWI );sunxi_gpio_set_cfgpin (SUNXI_GPL (1 ),SUN8I_H3_GPL_R_TWI );#endif +#endif }#if defined(CONFIG_ENV_IS_IN_MMC ) && defined(CONFIG_ENV_IS_IN_FAT )
Signature · 1 line
2.19.1
PATCH v4 5/5 sunxi: DT: add support for Pinebook
In reply to Vasily KhoruzhickPinebook is a laptop produced by Pine64, with USB-connected keyboard, USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP bridge from Analogix.
--- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++++ configs/pinebook_defconfig | 22 ++ 4 files changed, 332 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfig
arch/arm/dts/Makefile +1 -0
@@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb \ + sun50i-a64-pinebook.dtb \ sun50i-a64-sopine-baseboard.dtb dtb-$(CONFIG_MACH_SUN9I) += \ sun9i-a80-optimus.dtb \
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +15 -0
@@ -0,0 +1,15 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Vasily Khoruzhick <[email protected]> + * + */ + +/* The ANX6345 eDP-bridge is on r_i2c */ +&r_i2c { + anx6345: edp-bridge at 38 { + compatible = "analogix,anx6345"; + reg = <0x38>; + reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ + status = "okay"; + }; +};
arch/arm/dts/sun50i-a64-pinebook.dts new file +294 -0
294 lines not on this page · raw message
configs/pinebook_defconfig new file +22 -0
@@ -0,0 +1,22 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SPL=y +CONFIG_MACH_SUN50I=y +CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y +CONFIG_DRAM_CLK=552 +CONFIG_DRAM_ZQ=3881949 +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 +CONFIG_R_I2C_ENABLE=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook" +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_PWM=y +CONFIG_PWM_SUNXI=y +CONFIG_USB_EHCI_HCD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y +# CONFIG_USB_GADGET is not set +CONFIG_VIDEO_BRIDGE=y +CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
Signature · 1 line
2.19.1
PATCH v4 5/5 sunxi: DT: add support for Pinebook
Hi!
Quoted 41 lines · Vasily Khoruzhick
Pinebook is a laptop produced by Pine64, with USB-connected keyboard, USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP bridge from Analogix.
Signed-off-by Vasily Khoruzhick <[email protected]>Acked-by Maxime Ripard <[email protected]>Tested-by Maxime Ripard <[email protected]>Cc Vagrant Cascadian <[email protected]>--- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++++ configs/pinebook_defconfig | 22 ++ 4 files changed, 332 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigarch/arm/dts/Makefile +1
-0@@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb \ + sun50i-a64-pinebook.dtb \ sun50i-a64-sopine-baseboard.dtb dtb-$(CONFIG_MACH_SUN9I) += \ sun9i-a80-optimus.dtb \arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +5
-0@@ -0,0 +1,15 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Vasily Khoruzhick <[email protected]> + * + */
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi line 15
Quoted 10 lines
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +10
-0+ +/* The ANX6345 eDP-bridge is on r_i2c */ +&r_i2c { + anx6345: edp-bridge at 38 { + compatible = "analogix,anx6345"; + reg = <0x38>; + reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ + status = "okay"; + }; +};
Maybe I missed something but I don't see when this dtsi file is used or included.
Quoted 329 lines
arch/arm/dts/sun50i-a64-pinebook.dts new file +294
-0@@ -0,0 +1,294 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2017 Icenowy Zheng <[email protected]> + * Copyright (C) 2018 Vasily Khoruzhick <[email protected]> + * + */ + +/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; + }; + + vdd_bl: regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "bl-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ + enable-active-high; + }; + + 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 */ + power-supply = <&vdd_bl>; + }; + + 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; + wakeup-source; + }; + }; + + 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_LOW>; + 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 at 1 { + reg = <1>; + }; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; + 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 at 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_pl89_pins>; + 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"; +}; + +&simplefb_hdmi { + vcc-hdmi-supply = <®_dldo1>; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pb_pins>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "host"; +}; + +&usbphy { + usb0_vbus-supply = <®_ldo_io0>; + usb1_vbus-supply = <®_ldo_io0>; + status = "okay"; +};configs/pinebook_defconfig new file +22
-0@@ -0,0 +1,22 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SPL=y +CONFIG_MACH_SUN50I=y +CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y +CONFIG_DRAM_CLK=552 +CONFIG_DRAM_ZQ=3881949 +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 +CONFIG_R_I2C_ENABLE=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook" +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_PWM=y +CONFIG_PWM_SUNXI=y +CONFIG_USB_EHCI_HCD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y +# CONFIG_USB_GADGET is not set +CONFIG_VIDEO_BRIDGE=y +CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
Signature · 15 lines
Loic Devulder <[email protected]> | ldevulder at irc 0x175A963893C85F55 | D220 DEF5 56A3 DE00 9DAA 78BA 175A 9638 93C8 5F55 Senior QA Engineer | Container & Storage Solutions Quality Assurance team (qa-css) SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB, 21284 (AG Nuernberg) -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181029/3e93d0af/attachment.sig>
PATCH v4 5/5 sunxi: DT: add support for Pinebook
Quoted 50 lines · On Mon, 29 Oct 2018 16:29:43 +0100 Loic Devulder <[email protected]> wrote:
Hi!
Quoted 47 lines · Vasily Khoruzhick
Pinebook is a laptop produced by Pine64, with USB-connected keyboard, USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP bridge from Analogix.
Signed-off-by Vasily Khoruzhick <[email protected]>Acked-by Maxime Ripard <[email protected]>Tested-by Maxime Ripard <[email protected]>Cc Vagrant Cascadian <[email protected]>--- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++++ configs/pinebook_defconfig | 22 ++ 4 files changed, 332 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigarch/arm/dts/Makefile +1
-0@@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb \ + sun50i-a64-pinebook.dtb \ sun50i-a64-sopine-baseboard.dtb dtb-$(CONFIG_MACH_SUN9I) += \ sun9i-a80-optimus.dtb \(quoted diff) +0
-0
b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsinew file mode 100644 index 0000000000..a99b7171d0arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +11
-0@@ -0,0 +1,15 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Vasily Khoruzhick <[email protected]> + * + */ + +/* The ANX6345 eDP-bridge is on r_i2c */ +&r_i2c { + anx6345: edp-bridge at 38 { + compatible = "analogix,anx6345"; + reg = <0x38>;
Quoted 8 lines
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi line 15
Quoted 5 lines
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +1
-0+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24*/
arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file +3
-0+ status = "okay"; + }; +};Maybe I missed something but I don't see when this dtsi file is used or included.
Yeah, that's some non-obvious U-Boot build magic:
Whenever there is a file which has "-u-boot.dtsi" appended to certain .dts filename stubs, U-Boot includes this file when building the .dtb. This is supposed to be used to add U-Boot specific DT nodes or properties to some otherwise unchanged (read: Linux mainline) DTs. Check scripts/Makefile.lib and search for u-boot.dtsi for the source.
Cheers,
Andre.
v4 cover Add support for Pinebook
In reply to Vasily KhoruzhickTested series applied to u-boot 2018.11-rc3 on pinebook, both with reboot and cold boot.
Thanks for all the work on it!
Quoted 42 lines · Vasily Khoruzhick
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs
sun50i-a64.dtsiwith linux, adds support for mmc delay calibration,R_I2Ccontroller, and addresses the issue with activating video bridge when any of GPIOs is missing.v2: - sync
sun50i-a64.dtsiwith linux instead of adding missing nodes
- takesun50i-a64-pinebook.dtsfrom linux
- don't introduce newKconfigfor A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable invideo_bridge_set_active()
- fix order of dts filesMakefile
- split anx6345 binding intosun50i-a64-pinebook-u-boot.dts
- dropspeaker_ampnode from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-nextVasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support forR_I2Ccontroller
sunxi: DT: add support for Pinebookarch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 +
Quoted 11 lines
board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigSignature · 1 line
2.19.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181030/4b27f0c9/attachment.sig>
v4 cover Add support for Pinebook
I have tested the series on my pinebook on top of git commit 99431c1c21685fe63d46b6eac995b78ce9adce0a
I am not sure if video is expected to work or not, in my case it does not work.
U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE: BL31: v1.6(release): NOTICE: BL31: Built : 09:10:17, Sep 23 2018 NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689) NOTICE: BL31: STUB PMIC setup code called
U-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Pinebook DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
Warning: HDMI PHY init timeout! Warning: HDMI PHY init timeout! In: serial Out: serial Err: serial
u-boot however works fine and the system is able to boot and the correct dtb is loaded.
El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
Quoted 70 lines
Tested series applied to u-boot 2018.11-rc3 on pinebook, both with reboot and cold boot.
Thanks for all the work on it!
Tested-by Vagrant Cascadian <[email protected]>Quoted 46 lines · Vasily Khoruzhick
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs
sun50i-a64.dtsiwith linux, adds support for mmc delay calibration,R_I2Ccontroller, and addresses the issue with activating video bridge when any of GPIOs is missing.v2: - sync
sun50i-a64.dtsiwith linux instead of adding missing nodes
- takesun50i-a64-pinebook.dtsfrom linux
- don't introduce newKconfigfor A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable invideo_bridge_set_active()
- fix order of dts filesMakefile
- split anx6345 binding intosun50i-a64-pinebook-u-boot.dts
- dropspeaker_ampnode from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-nextVasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or
sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support forR_I2Ccontroller
sunxi: DT: add support for Pinebookarch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 +Quoted 11 lines
board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigSignature · 1 line
2.19.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot
v4 cover Add support for Pinebook
Video is supposed to work, but you need ATF from Andre to enable LCD power:
https://github.com/apritzel/arm-trusted-firmware/
Quoted 109 lines · Dennis Gilmore
I have tested the series on my pinebook on top of git commit
99431c1c21685fe63d46b6eac995b78ce9adce0aI am not sure if video is expected to work or not, in my case it does not work.
U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
DRAM: 2048 MiB
Trying to boot from MMC1NOTICE: BL31: v1.6(release): NOTICE: BL31: Built : 09:10:17, Sep 23 2018 NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689) NOTICE: BL31: STUB PMIC setup code calledU-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Pinebook DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1Loading Environment from FAT... *** Warning - bad CRC, using default environment
Warning: HDMI PHY init timeout! Warning: HDMI PHY init timeout! In: serial Out: serial Err: serialu-boot however works fine and the system is able to boot and the correct dtb is loaded.
Tested-by Dennis Gilmore <[email protected]>El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
Quoted 70 lines
Tested series applied to u-boot 2018.11-rc3 on pinebook, both with reboot and cold boot.
Thanks for all the work on it!
Tested-by Vagrant Cascadian <[email protected]>Quoted 55 lines · Vasily Khoruzhick
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs
sun50i-a64.dtsiwith linux, adds support for mmc delay calibration,R_I2Ccontroller, and addresses the issue with activating video bridge when any of GPIOs is missing.v2: - sync
sun50i-a64.dtsiwith linux instead of adding missing nodes
- takesun50i-a64-pinebook.dtsfrom linux
- don't introduce newKconfigfor A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable invideo_bridge_set_active()
- fix order of dts filesMakefile
- split anx6345 binding intosun50i-a64-pinebook-u-boot.dts
- dropspeaker_ampnode from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-nextVasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or
sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support forR_I2Ccontroller
sunxi: DT: add support for Pinebookarch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigQuoted 2 lines
--
2.19.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot
v4 cover Add support for Pinebook
Quoted 4 lines · Vasily Khoruzhick
Video is supposed to work, but you need ATF from Andre to enable LCD power:
You need "allwinner" branch from this repo.
Quoted 110 lines · Dennis Gilmore
Quoted 109 lines
I have tested the series on my pinebook on top of git commit
99431c1c21685fe63d46b6eac995b78ce9adce0aI am not sure if video is expected to work or not, in my case it does not work.
U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
DRAM: 2048 MiB
Trying to boot from MMC1NOTICE: BL31: v1.6(release): NOTICE: BL31: Built : 09:10:17, Sep 23 2018 NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689) NOTICE: BL31: STUB PMIC setup code calledU-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Pinebook DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1Loading Environment from FAT... *** Warning - bad CRC, using default environment
Warning: HDMI PHY init timeout! Warning: HDMI PHY init timeout! In: serial Out: serial Err: serialu-boot however works fine and the system is able to boot and the correct dtb is loaded.
Tested-by Dennis Gilmore <[email protected]>El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
Quoted 70 lines
Tested series applied to u-boot 2018.11-rc3 on pinebook, both with reboot and cold boot.
Thanks for all the work on it!
Tested-by Vagrant Cascadian <[email protected]>Quoted 55 lines · Vasily Khoruzhick
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs
sun50i-a64.dtsiwith linux, adds support for mmc delay calibration,R_I2Ccontroller, and addresses the issue with activating video bridge when any of GPIOs is missing.v2: - sync
sun50i-a64.dtsiwith linux instead of adding missing nodes
- takesun50i-a64-pinebook.dtsfrom linux
- don't introduce newKconfigfor A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable invideo_bridge_set_active()
- fix order of dts filesMakefile
- split anx6345 binding intosun50i-a64-pinebook-u-boot.dts
- dropspeaker_ampnode from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-nextVasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or
sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support forR_I2Ccontroller
sunxi: DT: add support for Pinebookarch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigQuoted 2 lines
--
2.19.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot
v4 cover Add support for Pinebook
Quoted 7 lines · Vasily Khoruzhick
Quoted 4 lines · Vasily Khoruzhick
Video is supposed to work, but you need ATF from Andre to enable LCD power:
You need "allwinner" branch from this repo.
I deliberately switched the standard branch away, since everything is merged in mainline ATF now (including PMIC support). I will post U-Boot patches to change the instructions soon, but just use the master branch from the official repo (and report back any issues!):
https://github.com/ARM-Software/arm-trusted-firmware.git
You might need the latest DT in U-Boot (patches are queued, AFAIK) to let ATF know about your PMIC requirements.
Cheers,
Andre
Quoted 110 lines
Quoted 110 lines · Dennis Gilmore
Quoted 109 lines
I have tested the series on my pinebook on top of git commit
99431c1c21685fe63d46b6eac995b78ce9adce0aI am not sure if video is expected to work or not, in my case it does not work.
U-Boot SPL 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500)
DRAM: 2048 MiB
Trying to boot from MMC1NOTICE: BL31: v1.6(release): NOTICE: BL31: Built : 09:10:17, Sep 23 2018 NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689) NOTICE: BL31: STUB PMIC setup code calledU-Boot 2018.11-rc3-00027-g77a46c3a3c (Nov 03 2018 - 13:42:47 -0500) Allwinner Technology
CPU: Allwinner A64 (SUN50I) Model: Pinebook DRAM: 2 GiB MMC: SUNXI SD/MMC: 0, SUNXI SD/MMC: 1Loading Environment from FAT... *** Warning - bad CRC, using default environment
Warning: HDMI PHY init timeout! Warning: HDMI PHY init timeout! In: serial Out: serial Err: serialu-boot however works fine and the system is able to boot and the correct dtb is loaded.
Tested-by Dennis Gilmore <[email protected]>El mar, 30-10-2018 a las 14:36 -0700, Vagrant Cascadian escribió:
Quoted 70 lines
Tested series applied to u-boot 2018.11-rc3 on pinebook, both with reboot and cold boot.
Thanks for all the work on it!
Tested-by Vagrant Cascadian <[email protected]>Quoted 55 lines · Vasily Khoruzhick
This series adds support for the Pinebook, an allwinner A64 laptop produced by Pine64. It also syncs
sun50i-a64.dtsiwith linux, adds support for mmc delay calibration,R_I2Ccontroller, and addresses the issue with activating video bridge when any of GPIOs is missing.v2: - sync
sun50i-a64.dtsiwith linux instead of adding missing nodes
- takesun50i-a64-pinebook.dtsfrom linux
- don't introduce newKconfigfor A64 MMC calibration
- improve code in video bridge uclass to check for presensce of GPIO instead of ingoring EINVAL errors
v3: - enable calibration for H6 as well
- init ret variable invideo_bridge_set_active()
- fix order of dts filesMakefile
- split anx6345 binding intosun50i-a64-pinebook-u-boot.dts
- dropspeaker_ampnode from pinebook dts
- drop unnecessary options from defconfig
v4: - sync device tree files with linux-nextVasily Khoruzhick (5):
mmc: sunxi: add support for automatic delay calibration
dm: video: bridge: don't fail to activate bridge if reset or
sleep
GPIO is missing
sunxi: DT: A64: update device tree files for Allwinner A64 SoC
sun50i: A64: add support forR_I2Ccontroller
sunxi: DT: add support for Pinebookarch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-amarula-relic.dts | 168 +++++++++- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 34 +- arch/arm/dts/sun50i-a64-nanopi-a64.dts | 89 +++++- arch/arm/dts/sun50i-a64-olinuxino.dts | 103 +++++- arch/arm/dts/sun50i-a64-orangepi-win.dts | 179 ++++++++++- arch/arm/dts/sun50i-a64-pine64.dts | 32 +- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++ arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 32 +- arch/arm/dts/sun50i-a64-sopine.dtsi | 15 + arch/arm/dts/sun50i-a64.dtsi | 313 +++++++++++++++++-- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/include/asm/arch-sunxi/mmc.h | 6 +- arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 + configs/pinebook_defconfig | 22 ++ drivers/mmc/sunxi_mmc.c | 21 +- drivers/video/bridge/video-bridge-uclass.c | 16 +- 19 files changed, 1296 insertions(+), 52 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfigQuoted 2 lines
--
2.19.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot
v4 cover Add support for Pinebook
Quoted 5 lines · André Przywara
Quoted 2 lines · Vasily Khoruzhick
You need "allwinner" branch from this repo.
Quoted 8 lines
I deliberately switched the standard branch away, since everything is merged in mainline ATF now (including PMIC support). I will post U-Boot patches to change the instructions soon, but just use the master branch from the official repo (and report back any issues!):
https://github.com/ARM-Software/arm-trusted-firmware.gitYou might need the latest DT in U-Boot (patches are queued, AFAIK) to let ATF know about your PMIC requirements.
Thanks, I just tested it - and my patches work fine with ATF from official repo.
Quoted 3 lines
Cheers,
Andre
v4 cover Add support for Pinebook
Quoted 14 lines · Vasily Khoruzhick
On Sat, Nov 3, 2018 at 2:15 PM André Przywara <[email protected]
Quoted 13 lines
wrote:
Quoted 1 line · Vasily Khoruzhick
You need "allwinner" branch from this repo.
I deliberately switched the standard branch away, since everything is
merged in mainline ATF now (including PMIC support). I will post U- Boot
patches to change the instructions soon, but just use the master branch
from the official repo (and report back any issues!):
https://github.com/ARM-Software/arm-trusted-firmware.git
Quoted 6 lines
Quoted 3 lines
You might need the latest DT in U-Boot (patches are queued, AFAIK) to
let ATF know about your PMIC requirements.Thanks, I just tested it - and my patches work fine with ATF from official repo.
I have just tested with ATF from the official repo and it all works.
Thanks
Dennis