diff options
author | Tom Rini <trini@konsulko.com> | 2016-10-30 08:11:50 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-10-30 08:11:50 -0400 |
commit | 7ce79599a1b8f2078b15fa170f11f2666200b24e (patch) | |
tree | dcf8df06f13a5cb6ac4903605d96b7b6434a045d | |
parent | 4ddc981225288e68d45eb8e33271d1481920086f (diff) | |
parent | fed329aebe3aaac0928c73547ac6316af2adf0cd (diff) |
Merge branch 'master' of http://git.denx.de/u-boot-sunxi
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | arch/arm/cpu/armv7/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/dts/sun50i-a64-pine64-common.dtsi | 13 | ||||
-rw-r--r-- | arch/arm/dts/sun50i-a64.dtsi | 29 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-sunxi/cpu_sun4i.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-sunxi/usb_phy.c | 5 | ||||
-rw-r--r-- | configs/A20-Olimex-SOM-EVB_defconfig | 2 | ||||
-rw-r--r-- | configs/pine64_plus_defconfig | 1 | ||||
-rw-r--r-- | drivers/i2c/mvtwsi.c | 6 | ||||
-rw-r--r-- | drivers/usb/host/ehci-sunxi.c | 7 | ||||
-rw-r--r-- | drivers/usb/host/ohci-sunxi.c | 1 | ||||
-rw-r--r-- | include/configs/sun4i.h | 1 | ||||
-rw-r--r-- | include/configs/sun50i.h | 5 | ||||
-rw-r--r-- | include/configs/sun5i.h | 1 | ||||
-rw-r--r-- | include/configs/sun6i.h | 1 | ||||
-rw-r--r-- | include/configs/sun7i.h | 1 | ||||
-rw-r--r-- | include/configs/sun8i.h | 1 | ||||
-rw-r--r-- | include/configs/sunxi-common.h | 1 | ||||
-rw-r--r-- | scripts/Makefile.spl | 2 | ||||
-rw-r--r-- | scripts/config_whitelist.txt | 1 | ||||
-rw-r--r-- | tools/Makefile | 3 | ||||
-rw-r--r-- | tools/mksunxiboot.c | 2 |
22 files changed, 67 insertions, 22 deletions
@@ -1096,7 +1096,7 @@ u-boot-x86-16bit.bin: u-boot FORCE $(call if_changed,objcopy) endif -ifneq ($(CONFIG_SUNXI),) +ifneq ($(CONFIG_ARCH_SUNXI),) OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \ --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile index c1eeefd5dd7..4d3bc9440fa 100644 --- a/arch/arm/cpu/armv7/Makefile +++ b/arch/arm/cpu/armv7/Makefile @@ -12,7 +12,7 @@ obj-y += cache_v7.o cache_v7_asm.o obj-y += cpu.o cp15.o obj-y += syslib.o -ifneq ($(CONFIG_AM43XX)$(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_MX7)$(CONFIG_TI81XX)$(CONFIG_AT91FAMILY)$(CONFIG_SUNXI)$(CONFIG_ARCH_SOCFPGA)$(CONFIG_LS102XA),) +ifneq ($(CONFIG_AM43XX)$(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_MX7)$(CONFIG_TI81XX)$(CONFIG_AT91FAMILY)$(CONFIG_ARCH_SUNXI)$(CONFIG_ARCH_SOCFPGA)$(CONFIG_LS102XA),) ifneq ($(CONFIG_SKIP_LOWLEVEL_INIT),y) obj-y += lowlevel_init.o endif diff --git a/arch/arm/dts/sun50i-a64-pine64-common.dtsi b/arch/arm/dts/sun50i-a64-pine64-common.dtsi index d5a72494645..9ec81c65e78 100644 --- a/arch/arm/dts/sun50i-a64-pine64-common.dtsi +++ b/arch/arm/dts/sun50i-a64-pine64-common.dtsi @@ -46,6 +46,7 @@ aliases { serial0 = &uart0; + ethernet0 = &emac; }; soc { @@ -78,3 +79,15 @@ pinctrl-0 = <&i2c1_pins>; status = "okay"; }; + +&usbphy { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi index 7d0dc76a11f..bef0d00be8b 100644 --- a/arch/arm/dts/sun50i-a64.dtsi +++ b/arch/arm/dts/sun50i-a64.dtsi @@ -653,5 +653,34 @@ #address-cells = <1>; #size-cells = <0>; }; + + usbphy: phy@1c1b810 { + compatible = "allwinner,sun50i-a64-usb-phy", + "allwinner,sun8i-a33-usb-phy"; + reg = <0x01c1b810 0x14>, <0x01c1b800 0x4>; + reg-names = "phy_ctrl", "pmu1"; + status = "disabled"; + #phy-cells = <1>; + }; + + ehci1: usb@01c1b000 { + compatible = "allwinner,sun50i-a64-ehci", + "generic-ehci"; + reg = <0x01c1b000 0x100>; + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; + phys = <&usbphy 1>; + phy-names = "usb"; + status = "disabled"; + }; + + ohci1: usb@01c1b400 { + compatible = "allwinner,sun50i-a64-ohci", + "generic-ohci"; + reg = <0x01c1b400 0x100>; + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; + phys = <&usbphy 1>; + phy-names = "usb"; + status = "enabled"; + }; }; }; diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h b/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h index 5f938309150..7232f6d9277 100644 --- a/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h +++ b/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h @@ -56,7 +56,7 @@ #define SUNXI_USB2_BASE 0x01c1c000 #endif #ifdef CONFIG_SUNXI_GEN_SUN6I -#ifdef CONFIG_MACH_SUN8I_H3 +#if defined(CONFIG_MACH_SUN8I_H3) || defined(CONFIG_MACH_SUN50I) #define SUNXI_USBPHY_BASE 0x01c19000 #define SUNXI_USB0_BASE 0x01c1a000 #define SUNXI_USB1_BASE 0x01c1b000 diff --git a/arch/arm/mach-sunxi/usb_phy.c b/arch/arm/mach-sunxi/usb_phy.c index bd1bbee410b..278587b4933 100644 --- a/arch/arm/mach-sunxi/usb_phy.c +++ b/arch/arm/mach-sunxi/usb_phy.c @@ -146,12 +146,13 @@ __maybe_unused static void usb_phy_write(struct sunxi_usb_phy *phy, int addr, } } -#if defined CONFIG_MACH_SUN8I_H3 +#if defined(CONFIG_MACH_SUN8I_H3) || defined(CONFIG_MACH_SUN50I) static void sunxi_usb_phy_config(struct sunxi_usb_phy *phy) { +#if defined CONFIG_MACH_SUN8I_H3 if (phy->id == 0) clrbits_le32(SUNXI_USBPHY_BASE + REG_PHY_UNK_H3, 0x01); - +#endif clrbits_le32(phy->base + REG_PMU_UNK_H3, 0x02); } #elif defined CONFIG_MACH_SUN8I_A83T diff --git a/configs/A20-Olimex-SOM-EVB_defconfig b/configs/A20-Olimex-SOM-EVB_defconfig index 7a14a7b9b22..3f4e90db4aa 100644 --- a/configs/A20-Olimex-SOM-EVB_defconfig +++ b/configs/A20-Olimex-SOM-EVB_defconfig @@ -2,7 +2,7 @@ CONFIG_ARM=y CONFIG_ARCH_SUNXI=y CONFIG_SPL_I2C_SUPPORT=y CONFIG_MACH_SUN7I=y -CONFIG_DRAM_CLK=480 +CONFIG_DRAM_CLK=384 CONFIG_MMC0_CD_PIN="PH1" CONFIG_MMC3_CD_PIN="PH0" CONFIG_MMC3_PINS="PH" diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig index 348cbd4841a..6d0198f02cc 100644 --- a/configs/pine64_plus_defconfig +++ b/configs/pine64_plus_defconfig @@ -11,3 +11,4 @@ CONFIG_CONSOLE_MUX=y # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_EHCI_HCD=y diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c index 60c8ea19146..cea3da0b276 100644 --- a/drivers/i2c/mvtwsi.c +++ b/drivers/i2c/mvtwsi.c @@ -29,7 +29,7 @@ DECLARE_GLOBAL_DATA_PTR; #include <asm/arch/orion5x.h> #elif (defined(CONFIG_KIRKWOOD) || defined(CONFIG_ARCH_MVEBU)) #include <asm/arch/soc.h> -#elif defined(CONFIG_SUNXI) +#elif defined(CONFIG_ARCH_SUNXI) #include <asm/arch/i2c.h> #else #error Driver mvtwsi not supported by SoC or board @@ -40,7 +40,7 @@ DECLARE_GLOBAL_DATA_PTR; * TWSI register structure */ -#ifdef CONFIG_SUNXI +#ifdef CONFIG_ARCH_SUNXI struct mvtwsi_registers { u32 slave_address; @@ -399,7 +399,7 @@ static int twsi_stop(struct mvtwsi_registers *twsi, uint tick) */ static uint twsi_calc_freq(const int n, const int m) { -#ifdef CONFIG_SUNXI +#ifdef CONFIG_ARCH_SUNXI return CONFIG_SYS_TCLK / (10 * (m + 1) * (1 << n)); #else return CONFIG_SYS_TCLK / (10 * (m + 1) * (2 << n)); diff --git a/drivers/usb/host/ehci-sunxi.c b/drivers/usb/host/ehci-sunxi.c index f2d83e34bc1..5bb97ff45b9 100644 --- a/drivers/usb/host/ehci-sunxi.c +++ b/drivers/usb/host/ehci-sunxi.c @@ -45,10 +45,10 @@ static int ehci_usb_probe(struct udevice *dev) * clocks resp. phys. */ priv->ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_EHCI0; -#ifdef CONFIG_MACH_SUN8I_H3 +#if defined(CONFIG_MACH_SUN8I_H3) || defined(CONFIG_MACH_SUN50I) extra_ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_OHCI0; #endif - priv->phy_index = ((u32)hccr - SUNXI_USB1_BASE) / BASE_DIST; + priv->phy_index = ((uintptr_t)hccr - SUNXI_USB1_BASE) / BASE_DIST; priv->ahb_gate_mask <<= priv->phy_index * AHB_CLK_DIST; extra_ahb_gate_mask <<= priv->phy_index * AHB_CLK_DIST; priv->phy_index++; /* Non otg phys start at 1 */ @@ -63,7 +63,7 @@ static int ehci_usb_probe(struct udevice *dev) sunxi_usb_phy_init(priv->phy_index); sunxi_usb_phy_power_on(priv->phy_index); - hcor = (struct ehci_hcor *)((uint32_t)hccr + + hcor = (struct ehci_hcor *)((uintptr_t)hccr + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); return ehci_register(dev, hccr, hcor, NULL, 0, plat->init_type); @@ -98,6 +98,7 @@ static const struct udevice_id ehci_usb_ids[] = { { .compatible = "allwinner,sun8i-a83t-ehci", }, { .compatible = "allwinner,sun8i-h3-ehci", }, { .compatible = "allwinner,sun9i-a80-ehci", }, + { .compatible = "allwinner,sun50i-a64-ehci", }, { } }; diff --git a/drivers/usb/host/ohci-sunxi.c b/drivers/usb/host/ohci-sunxi.c index 06893749b0a..0c45eec04aa 100644 --- a/drivers/usb/host/ohci-sunxi.c +++ b/drivers/usb/host/ohci-sunxi.c @@ -101,6 +101,7 @@ static const struct udevice_id ohci_usb_ids[] = { { .compatible = "allwinner,sun8i-a83t-ohci", }, { .compatible = "allwinner,sun8i-h3-ohci", }, { .compatible = "allwinner,sun9i-a80-ohci", }, + { .compatible = "allwinner,sun50i-a64-ohci", }, { } }; diff --git a/include/configs/sun4i.h b/include/configs/sun4i.h index ea079eb5f78..3dfd95ad77f 100644 --- a/include/configs/sun4i.h +++ b/include/configs/sun4i.h @@ -14,7 +14,6 @@ #ifdef CONFIG_USB_EHCI #define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 #endif #define CONFIG_SUNXI_USB_PHYS 3 diff --git a/include/configs/sun50i.h b/include/configs/sun50i.h index 0fdb4c7b99c..3e5708b4936 100644 --- a/include/configs/sun50i.h +++ b/include/configs/sun50i.h @@ -11,6 +11,11 @@ * A64 specific configuration */ +#ifdef CONFIG_USB_EHCI +#define CONFIG_USB_EHCI_SUNXI +#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 +#endif + #define CONFIG_SUNXI_USB_PHYS 1 #define COUNTER_FREQUENCY CONFIG_TIMER_CLK_FREQ diff --git a/include/configs/sun5i.h b/include/configs/sun5i.h index d2576599036..ec8f3199ba3 100644 --- a/include/configs/sun5i.h +++ b/include/configs/sun5i.h @@ -14,7 +14,6 @@ #ifdef CONFIG_USB_EHCI #define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif #define CONFIG_SUNXI_USB_PHYS 2 diff --git a/include/configs/sun6i.h b/include/configs/sun6i.h index 67a26c2e45f..6c1eca4d268 100644 --- a/include/configs/sun6i.h +++ b/include/configs/sun6i.h @@ -17,7 +17,6 @@ #ifdef CONFIG_USB_EHCI #define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 #endif #define CONFIG_SUNXI_USB_PHYS 3 diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h index d8e6e207951..5455901efe3 100644 --- a/include/configs/sun7i.h +++ b/include/configs/sun7i.h @@ -15,7 +15,6 @@ #ifdef CONFIG_USB_EHCI #define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 #endif #define CONFIG_SUNXI_USB_PHYS 3 diff --git a/include/configs/sun8i.h b/include/configs/sun8i.h index 011d70f3677..a4c3fb69e41 100644 --- a/include/configs/sun8i.h +++ b/include/configs/sun8i.h @@ -15,7 +15,6 @@ #ifdef CONFIG_USB_EHCI #define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif #ifdef CONFIG_MACH_SUN8I_H3 diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index e0464df0388..8363414828f 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -35,7 +35,6 @@ /* * High Level Configuration Options */ -#define CONFIG_SUNXI /* sunxi family */ #ifdef CONFIG_SPL_BUILD #define CONFIG_SYS_THUMB_BUILD /* Thumbs mode to save space in SPL */ #endif diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index e8cf9f38656..e0b0117dc9b 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -166,7 +166,7 @@ ifdef CONFIG_ARCH_SOCFPGA ALL-y += $(obj)/$(SPL_BIN).sfp endif -ifdef CONFIG_SUNXI +ifdef CONFIG_ARCH_SUNXI ALL-y += $(obj)/sunxi-spl.bin endif diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 11b5a221ee6..d476367088c 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -4355,7 +4355,6 @@ CONFIG_STV0991_HZ CONFIG_STV0991_HZ_CLOCK CONFIG_ST_SMI CONFIG_SUN4 -CONFIG_SUNXI CONFIG_SUNXI_AHCI CONFIG_SUNXI_EMAC CONFIG_SUNXI_GMAC diff --git a/tools/Makefile b/tools/Makefile index e6f7993f995..400588cf0f5 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -13,6 +13,7 @@ CONFIG_CMD_NET = y CONFIG_XWAY_SWAP_BYTES = y CONFIG_NETCONSOLE = y CONFIG_SHA1_CHECK_UB_IMG = y +CONFIG_SUNXI = y endif subdir-$(HOST_TOOLS_ALL) += easylogo @@ -169,7 +170,7 @@ hostprogs-$(CONFIG_MX23) += mxsboot hostprogs-$(CONFIG_MX28) += mxsboot HOSTCFLAGS_mxsboot.o := -pedantic -hostprogs-$(CONFIG_SUNXI) += mksunxiboot +hostprogs-$(CONFIG_ARCH_SUNXI) += mksunxiboot hostprogs-$(CONFIG_NETCONSOLE) += ncb hostprogs-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1 diff --git a/tools/mksunxiboot.c b/tools/mksunxiboot.c index 9c1c5b7cee2..0f0b003a837 100644 --- a/tools/mksunxiboot.c +++ b/tools/mksunxiboot.c @@ -15,7 +15,7 @@ #include <errno.h> #include <sys/types.h> #include <sys/stat.h> -#include "asm/arch/spl.h" +#include "../arch/arm/include/asm/arch-sunxi/spl.h" #define STAMP_VALUE 0x5F0A6C39 |