* [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy
@ 2018-02-04 10:19 Álvaro Fernández Rojas
2018-02-04 10:19 ` [U-Boot] [PATCH 1/3] phy: " Álvaro Fernández Rojas
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Álvaro Fernández Rojas @ 2018-02-04 10:19 UTC (permalink / raw)
To: u-boot
Add support for BCM6318 usbh phy.
Álvaro Fernández Rojas (3):
phy: add support for bcm6318 usbh phy
mips: bmips: add support for bcm6318 usb
mips: bmips: add ar-5315 usb support
arch/mips/dts/brcm,bcm6318.dtsi | 30 +++++++
arch/mips/dts/comtrend,ar-5315u.dts | 12 +++
configs/comtrend_ar5315u_ram_defconfig | 9 +++
drivers/phy/Kconfig | 7 ++
drivers/phy/Makefile | 1 +
drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++
include/configs/bmips_bcm6318.h | 7 ++
7 files changed, 210 insertions(+)
create mode 100644 drivers/phy/bcm6318-usbh-phy.c
--
2.11.0
^ permalink raw reply [flat|nested] 10+ messages in thread* [U-Boot] [PATCH 1/3] phy: add support for bcm6318 usbh phy 2018-02-04 10:19 [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas @ 2018-02-04 10:19 ` Álvaro Fernández Rojas 2018-02-04 18:33 ` Daniel Schwierzeck 2018-02-04 10:19 ` [U-Boot] [PATCH 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 10:19 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/phy/Kconfig | 7 ++ drivers/phy/Makefile | 1 + drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 drivers/phy/bcm6318-usbh-phy.c diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index d3fa9ded2a..4e9d09910c 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -59,6 +59,13 @@ config SPL_NOP_PHY This is useful when a driver uses the PHY framework but no real PHY hardware exists. +config BCM6318_USBH_PHY + bool "BCM6318 USBH PHY support" + depends on PHY && ARCH_BMIPS + select POWER_DOMAIN + help + Support for the Broadcom MIPS BCM6318 USBH PHY. + config BCM6348_USBH_PHY bool "BCM6348 USBH PHY support" depends on PHY && ARCH_BMIPS diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile index d8239854a3..68087ae3b1 100644 --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_$(SPL_)PHY) += phy-uclass.o obj-$(CONFIG_$(SPL_)NOP_PHY) += nop-phy.o +obj-$(CONFIG_BCM6318_USBH_PHY) += bcm6318-usbh-phy.o obj-$(CONFIG_BCM6348_USBH_PHY) += bcm6348-usbh-phy.o obj-$(CONFIG_BCM6358_USBH_PHY) += bcm6358-usbh-phy.o obj-$(CONFIG_BCM6368_USBH_PHY) += bcm6368-usbh-phy.o diff --git a/drivers/phy/bcm6318-usbh-phy.c b/drivers/phy/bcm6318-usbh-phy.c new file mode 100644 index 0000000000..9f22269ced --- /dev/null +++ b/drivers/phy/bcm6318-usbh-phy.c @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/bcm63xx/usb-common.c: + * Copyright 2008 Maxime Bizon <mbizon@freebox.fr> + * Copyright 2013 Florian Fainelli <florian@openwrt.org> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <clk.h> +#include <dm.h> +#include <generic-phy.h> +#include <power-domain.h> +#include <reset.h> +#include <asm/io.h> +#include <dm/device.h> + +/* USBH Setup register */ +#define USBH_SETUP_REG 0x00 +#define USBH_SETUP_IOC BIT(4) + +/* USBH PLL Control register */ +#define USBH_PLL_REG 0x04 +#define USBH_PLL_SUSP_EN BIT(27) +#define USBH_PLL_IDDQ_PWRDN BIT(31) + +/* USBH Swap Control register */ +#define USBH_SWAP_REG 0x0c +#define USBH_SWAP_OHCI_DATA BIT(0) +#define USBH_SWAP_OHCI_ENDIAN BIT(1) +#define USBH_SWAP_EHCI_DATA BIT(3) +#define USBH_SWAP_EHCI_ENDIAN BIT(4) + +/* USBH Sim Control register */ +#define USBH_SIM_REG 0x20 +#define USBH_SIM_LADDR BIT(5) + +struct bcm6318_usbh_priv { + void __iomem *regs; +}; + +static int bcm6318_usbh_init(struct phy *phy) +{ + struct bcm6318_usbh_priv *priv = dev_get_priv(phy->dev); + + /* enable pll control susp */ + setbits_be32(priv->regs + USBH_PLL_REG, USBH_PLL_SUSP_EN); + + /* configure to work in native cpu endian */ + clrsetbits_be32(priv->regs + USBH_SWAP_REG, + USBH_SWAP_EHCI_ENDIAN | USBH_SWAP_OHCI_ENDIAN, + USBH_SWAP_EHCI_DATA | USBH_SWAP_OHCI_DATA); + + /* setup config */ + setbits_be32(priv->regs + USBH_SETUP_REG, USBH_SETUP_IOC); + + /* disable pll control pwrdn */ + clrbits_be32(priv->regs + USBH_PLL_REG, USBH_PLL_IDDQ_PWRDN); + + /* sim control config */ + setbits_be32(priv->regs + USBH_SIM_REG, USBH_SIM_LADDR); + + return 0; +} + +static struct phy_ops bcm6318_usbh_ops = { + .init = bcm6318_usbh_init, +}; + +static const struct udevice_id bcm6318_usbh_ids[] = { + { .compatible = "brcm,bcm6318-usbh" }, + { /* sentinel */ } +}; + +static int bcm6318_usbh_probe(struct udevice *dev) +{ + struct bcm6318_usbh_priv *priv = dev_get_priv(dev); + struct power_domain pwr_dom; + struct reset_ctl rst_ctl; + struct clk clk; + fdt_addr_t addr; + fdt_size_t size; + int ret; + + addr = devfdt_get_addr_size_index(dev, 0, &size); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->regs = ioremap(addr, size); + + /* enable usbh clock */ + ret = clk_get_by_name(dev, "usbh", &clk); + if (ret < 0) + return ret; + + ret = clk_enable(&clk); + if (ret < 0) + return ret; + + ret = clk_free(&clk); + if (ret < 0) + return ret; + + /* enable power domain */ + ret = power_domain_get(dev, &pwr_dom); + if (ret < 0) + return ret; + + ret = power_domain_on(&pwr_dom); + if (ret < 0) + return ret; + + ret = power_domain_free(&pwr_dom); + if (ret < 0) + return ret; + + /* perform reset */ + ret = reset_get_by_index(dev, 0, &rst_ctl); + if (ret < 0) + return ret; + + ret = reset_deassert(&rst_ctl); + if (ret < 0) + return ret; + + ret = reset_free(&rst_ctl); + if (ret < 0) + return ret; + + mdelay(100); + + return 0; +} + +U_BOOT_DRIVER(bcm6318_usbh) = { + .name = "bcm6318-usbh", + .id = UCLASS_PHY, + .of_match = bcm6318_usbh_ids, + .ops = &bcm6318_usbh_ops, + .priv_auto_alloc_size = sizeof(struct bcm6318_usbh_priv), + .probe = bcm6318_usbh_probe, +}; -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 1/3] phy: add support for bcm6318 usbh phy 2018-02-04 10:19 ` [U-Boot] [PATCH 1/3] phy: " Álvaro Fernández Rojas @ 2018-02-04 18:33 ` Daniel Schwierzeck 0 siblings, 0 replies; 10+ messages in thread From: Daniel Schwierzeck @ 2018-02-04 18:33 UTC (permalink / raw) To: u-boot On 04.02.2018 11:19, Álvaro Fernández Rojas wrote: > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/phy/Kconfig | 7 ++ > drivers/phy/Makefile | 1 + > drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 152 insertions(+) > create mode 100644 drivers/phy/bcm6318-usbh-phy.c > Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> -- - Daniel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180204/69078684/attachment.sig> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 2/3] mips: bmips: add support for bcm6318 usb 2018-02-04 10:19 [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 1/3] phy: " Álvaro Fernández Rojas @ 2018-02-04 10:19 ` Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 3 siblings, 0 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 10:19 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- arch/mips/dts/brcm,bcm6318.dtsi | 30 ++++++++++++++++++++++++++++++ include/configs/bmips_bcm6318.h | 7 +++++++ 2 files changed, 37 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6318.dtsi b/arch/mips/dts/brcm,bcm6318.dtsi index 54964a7009..015acc9173 100644 --- a/arch/mips/dts/brcm,bcm6318.dtsi +++ b/arch/mips/dts/brcm,bcm6318.dtsi @@ -153,5 +153,35 @@ reg = <0x10004000 0x38>; u-boot,dm-pre-reloc; }; + + ehci: usb-controller at 10005000 { + compatible = "brcm,bcm6318-ehci", "generic-ehci"; + reg = <0x10005000 0x100>; + phys = <&usbh>; + big-endian; + + status = "disabled"; + }; + + ohci: usb-controller at 10005100 { + compatible = "brcm,bcm6318-ohci", "generic-ohci"; + reg = <0x10005100 0x100>; + phys = <&usbh>; + big-endian; + + status = "disabled"; + }; + + usbh: usb-phy at 10005200 { + compatible = "brcm,bcm6318-usbh"; + reg = <0x10005200 0x30>; + #phy-cells = <0>; + clocks = <&periph_clk BCM6318_CLK_USB>; + clock-names = "usbh"; + power-domains = <&periph_pwr BCM6318_PWR_USB>; + resets = <&periph_rst BCM6318_RST_USBH>; + + status = "disabled"; + }; }; }; diff --git a/include/configs/bmips_bcm6318.h b/include/configs/bmips_bcm6318.h index 454a7b7f7b..5541cc5cf6 100644 --- a/include/configs/bmips_bcm6318.h +++ b/include/configs/bmips_bcm6318.h @@ -14,6 +14,13 @@ #define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_SYS_SDRAM_BASE 0x80000000 +/* USB */ +#define CONFIG_EHCI_DESC_BIG_ENDIAN +#define CONFIG_EHCI_MMIO_BIG_ENDIAN +#define CONFIG_SYS_OHCI_SWAP_REG_ACCESS +#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2 +#define CONFIG_USB_OHCI_NEW + /* U-Boot */ #define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + 0x100000 -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH 3/3] mips: bmips: add ar-5315 usb support 2018-02-04 10:19 [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 1/3] phy: " Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas @ 2018-02-04 10:19 ` Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 3 siblings, 0 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 10:19 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- arch/mips/dts/comtrend,ar-5315u.dts | 12 ++++++++++++ configs/comtrend_ar5315u_ram_defconfig | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/arch/mips/dts/comtrend,ar-5315u.dts b/arch/mips/dts/comtrend,ar-5315u.dts index 4e4d69b638..af3159a03a 100644 --- a/arch/mips/dts/comtrend,ar-5315u.dts +++ b/arch/mips/dts/comtrend,ar-5315u.dts @@ -21,6 +21,10 @@ }; }; +&ehci { + status = "okay"; +}; + &leds { status = "okay"; @@ -67,6 +71,10 @@ }; }; +&ohci { + status = "okay"; +}; + &spi { status = "okay"; @@ -83,3 +91,7 @@ u-boot,dm-pre-reloc; status = "okay"; }; + +&usbh { + status = "okay"; +}; diff --git a/configs/comtrend_ar5315u_ram_defconfig b/configs/comtrend_ar5315u_ram_defconfig index c83234a98b..1c3595d2b4 100644 --- a/configs/comtrend_ar5315u_ram_defconfig +++ b/configs/comtrend_ar5315u_ram_defconfig @@ -28,6 +28,7 @@ CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_SF=y CONFIG_CMD_SPI=y +CONFIG_CMD_USB=y # CONFIG_CMD_NET is not set # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set @@ -41,6 +42,8 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y +CONFIG_PHY=y +CONFIG_BCM6358_USBH_PHY=y CONFIG_POWER_DOMAIN=y CONFIG_BCM6328_POWER_DOMAIN=y CONFIG_DM_RESET=y @@ -50,3 +53,9 @@ CONFIG_DM_SERIAL=y CONFIG_BCM6345_SERIAL=y CONFIG_DM_SPI=y CONFIG_BCM63XX_HSSPI=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_GENERIC=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_GENERIC=y -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy 2018-02-04 10:19 [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas ` (2 preceding siblings ...) 2018-02-04 10:19 ` [U-Boot] [PATCH 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas @ 2018-02-04 20:11 ` Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 1/3] phy: " Álvaro Fernández Rojas ` (3 more replies) 3 siblings, 4 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 20:11 UTC (permalink / raw) To: u-boot Add support for BCM6318 usbh phy. v2: use correct phy driver Álvaro Fernández Rojas (3): phy: add support for bcm6318 usbh phy mips: bmips: add support for bcm6318 usb mips: bmips: add ar-5315 usb support arch/mips/dts/brcm,bcm6318.dtsi | 30 +++++++ arch/mips/dts/comtrend,ar-5315u.dts | 12 +++ configs/comtrend_ar5315u_ram_defconfig | 9 +++ drivers/phy/Kconfig | 7 ++ drivers/phy/Makefile | 1 + drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++ include/configs/bmips_bcm6318.h | 7 ++ 7 files changed, 210 insertions(+) create mode 100644 drivers/phy/bcm6318-usbh-phy.c -- 2.11.0 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2 1/3] phy: add support for bcm6318 usbh phy 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas @ 2018-02-04 20:11 ` Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas ` (2 subsequent siblings) 3 siblings, 0 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 20:11 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> --- v2: no changes drivers/phy/Kconfig | 7 ++ drivers/phy/Makefile | 1 + drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 drivers/phy/bcm6318-usbh-phy.c diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index d3fa9ded2a..4e9d09910c 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -59,6 +59,13 @@ config SPL_NOP_PHY This is useful when a driver uses the PHY framework but no real PHY hardware exists. +config BCM6318_USBH_PHY + bool "BCM6318 USBH PHY support" + depends on PHY && ARCH_BMIPS + select POWER_DOMAIN + help + Support for the Broadcom MIPS BCM6318 USBH PHY. + config BCM6348_USBH_PHY bool "BCM6348 USBH PHY support" depends on PHY && ARCH_BMIPS diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile index d8239854a3..68087ae3b1 100644 --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_$(SPL_)PHY) += phy-uclass.o obj-$(CONFIG_$(SPL_)NOP_PHY) += nop-phy.o +obj-$(CONFIG_BCM6318_USBH_PHY) += bcm6318-usbh-phy.o obj-$(CONFIG_BCM6348_USBH_PHY) += bcm6348-usbh-phy.o obj-$(CONFIG_BCM6358_USBH_PHY) += bcm6358-usbh-phy.o obj-$(CONFIG_BCM6368_USBH_PHY) += bcm6368-usbh-phy.o diff --git a/drivers/phy/bcm6318-usbh-phy.c b/drivers/phy/bcm6318-usbh-phy.c new file mode 100644 index 0000000000..9f22269ced --- /dev/null +++ b/drivers/phy/bcm6318-usbh-phy.c @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/bcm63xx/usb-common.c: + * Copyright 2008 Maxime Bizon <mbizon@freebox.fr> + * Copyright 2013 Florian Fainelli <florian@openwrt.org> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <clk.h> +#include <dm.h> +#include <generic-phy.h> +#include <power-domain.h> +#include <reset.h> +#include <asm/io.h> +#include <dm/device.h> + +/* USBH Setup register */ +#define USBH_SETUP_REG 0x00 +#define USBH_SETUP_IOC BIT(4) + +/* USBH PLL Control register */ +#define USBH_PLL_REG 0x04 +#define USBH_PLL_SUSP_EN BIT(27) +#define USBH_PLL_IDDQ_PWRDN BIT(31) + +/* USBH Swap Control register */ +#define USBH_SWAP_REG 0x0c +#define USBH_SWAP_OHCI_DATA BIT(0) +#define USBH_SWAP_OHCI_ENDIAN BIT(1) +#define USBH_SWAP_EHCI_DATA BIT(3) +#define USBH_SWAP_EHCI_ENDIAN BIT(4) + +/* USBH Sim Control register */ +#define USBH_SIM_REG 0x20 +#define USBH_SIM_LADDR BIT(5) + +struct bcm6318_usbh_priv { + void __iomem *regs; +}; + +static int bcm6318_usbh_init(struct phy *phy) +{ + struct bcm6318_usbh_priv *priv = dev_get_priv(phy->dev); + + /* enable pll control susp */ + setbits_be32(priv->regs + USBH_PLL_REG, USBH_PLL_SUSP_EN); + + /* configure to work in native cpu endian */ + clrsetbits_be32(priv->regs + USBH_SWAP_REG, + USBH_SWAP_EHCI_ENDIAN | USBH_SWAP_OHCI_ENDIAN, + USBH_SWAP_EHCI_DATA | USBH_SWAP_OHCI_DATA); + + /* setup config */ + setbits_be32(priv->regs + USBH_SETUP_REG, USBH_SETUP_IOC); + + /* disable pll control pwrdn */ + clrbits_be32(priv->regs + USBH_PLL_REG, USBH_PLL_IDDQ_PWRDN); + + /* sim control config */ + setbits_be32(priv->regs + USBH_SIM_REG, USBH_SIM_LADDR); + + return 0; +} + +static struct phy_ops bcm6318_usbh_ops = { + .init = bcm6318_usbh_init, +}; + +static const struct udevice_id bcm6318_usbh_ids[] = { + { .compatible = "brcm,bcm6318-usbh" }, + { /* sentinel */ } +}; + +static int bcm6318_usbh_probe(struct udevice *dev) +{ + struct bcm6318_usbh_priv *priv = dev_get_priv(dev); + struct power_domain pwr_dom; + struct reset_ctl rst_ctl; + struct clk clk; + fdt_addr_t addr; + fdt_size_t size; + int ret; + + addr = devfdt_get_addr_size_index(dev, 0, &size); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->regs = ioremap(addr, size); + + /* enable usbh clock */ + ret = clk_get_by_name(dev, "usbh", &clk); + if (ret < 0) + return ret; + + ret = clk_enable(&clk); + if (ret < 0) + return ret; + + ret = clk_free(&clk); + if (ret < 0) + return ret; + + /* enable power domain */ + ret = power_domain_get(dev, &pwr_dom); + if (ret < 0) + return ret; + + ret = power_domain_on(&pwr_dom); + if (ret < 0) + return ret; + + ret = power_domain_free(&pwr_dom); + if (ret < 0) + return ret; + + /* perform reset */ + ret = reset_get_by_index(dev, 0, &rst_ctl); + if (ret < 0) + return ret; + + ret = reset_deassert(&rst_ctl); + if (ret < 0) + return ret; + + ret = reset_free(&rst_ctl); + if (ret < 0) + return ret; + + mdelay(100); + + return 0; +} + +U_BOOT_DRIVER(bcm6318_usbh) = { + .name = "bcm6318-usbh", + .id = UCLASS_PHY, + .of_match = bcm6318_usbh_ids, + .ops = &bcm6318_usbh_ops, + .priv_auto_alloc_size = sizeof(struct bcm6318_usbh_priv), + .probe = bcm6318_usbh_probe, +}; -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2 2/3] mips: bmips: add support for bcm6318 usb 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 1/3] phy: " Álvaro Fernández Rojas @ 2018-02-04 20:11 ` Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas 2018-03-19 1:13 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Daniel Schwierzeck 3 siblings, 0 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 20:11 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- v2: no changes arch/mips/dts/brcm,bcm6318.dtsi | 30 ++++++++++++++++++++++++++++++ include/configs/bmips_bcm6318.h | 7 +++++++ 2 files changed, 37 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6318.dtsi b/arch/mips/dts/brcm,bcm6318.dtsi index 54964a7009..015acc9173 100644 --- a/arch/mips/dts/brcm,bcm6318.dtsi +++ b/arch/mips/dts/brcm,bcm6318.dtsi @@ -153,5 +153,35 @@ reg = <0x10004000 0x38>; u-boot,dm-pre-reloc; }; + + ehci: usb-controller at 10005000 { + compatible = "brcm,bcm6318-ehci", "generic-ehci"; + reg = <0x10005000 0x100>; + phys = <&usbh>; + big-endian; + + status = "disabled"; + }; + + ohci: usb-controller at 10005100 { + compatible = "brcm,bcm6318-ohci", "generic-ohci"; + reg = <0x10005100 0x100>; + phys = <&usbh>; + big-endian; + + status = "disabled"; + }; + + usbh: usb-phy at 10005200 { + compatible = "brcm,bcm6318-usbh"; + reg = <0x10005200 0x30>; + #phy-cells = <0>; + clocks = <&periph_clk BCM6318_CLK_USB>; + clock-names = "usbh"; + power-domains = <&periph_pwr BCM6318_PWR_USB>; + resets = <&periph_rst BCM6318_RST_USBH>; + + status = "disabled"; + }; }; }; diff --git a/include/configs/bmips_bcm6318.h b/include/configs/bmips_bcm6318.h index 454a7b7f7b..5541cc5cf6 100644 --- a/include/configs/bmips_bcm6318.h +++ b/include/configs/bmips_bcm6318.h @@ -14,6 +14,13 @@ #define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_SYS_SDRAM_BASE 0x80000000 +/* USB */ +#define CONFIG_EHCI_DESC_BIG_ENDIAN +#define CONFIG_EHCI_MMIO_BIG_ENDIAN +#define CONFIG_SYS_OHCI_SWAP_REG_ACCESS +#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2 +#define CONFIG_USB_OHCI_NEW + /* U-Boot */ #define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + 0x100000 -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2 3/3] mips: bmips: add ar-5315 usb support 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 1/3] phy: " Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas @ 2018-02-04 20:11 ` Álvaro Fernández Rojas 2018-03-19 1:13 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Daniel Schwierzeck 3 siblings, 0 replies; 10+ messages in thread From: Álvaro Fernández Rojas @ 2018-02-04 20:11 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- v2: use correct phy driver arch/mips/dts/comtrend,ar-5315u.dts | 12 ++++++++++++ configs/comtrend_ar5315u_ram_defconfig | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/arch/mips/dts/comtrend,ar-5315u.dts b/arch/mips/dts/comtrend,ar-5315u.dts index 4e4d69b638..af3159a03a 100644 --- a/arch/mips/dts/comtrend,ar-5315u.dts +++ b/arch/mips/dts/comtrend,ar-5315u.dts @@ -21,6 +21,10 @@ }; }; +&ehci { + status = "okay"; +}; + &leds { status = "okay"; @@ -67,6 +71,10 @@ }; }; +&ohci { + status = "okay"; +}; + &spi { status = "okay"; @@ -83,3 +91,7 @@ u-boot,dm-pre-reloc; status = "okay"; }; + +&usbh { + status = "okay"; +}; diff --git a/configs/comtrend_ar5315u_ram_defconfig b/configs/comtrend_ar5315u_ram_defconfig index c83234a98b..586074c08e 100644 --- a/configs/comtrend_ar5315u_ram_defconfig +++ b/configs/comtrend_ar5315u_ram_defconfig @@ -28,6 +28,7 @@ CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_SF=y CONFIG_CMD_SPI=y +CONFIG_CMD_USB=y # CONFIG_CMD_NET is not set # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set @@ -41,6 +42,8 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y +CONFIG_PHY=y +CONFIG_BCM6318_USBH_PHY=y CONFIG_POWER_DOMAIN=y CONFIG_BCM6328_POWER_DOMAIN=y CONFIG_DM_RESET=y @@ -50,3 +53,9 @@ CONFIG_DM_SERIAL=y CONFIG_BCM6345_SERIAL=y CONFIG_DM_SPI=y CONFIG_BCM63XX_HSSPI=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_GENERIC=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_GENERIC=y -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas ` (2 preceding siblings ...) 2018-02-04 20:11 ` [U-Boot] [PATCH v2 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas @ 2018-03-19 1:13 ` Daniel Schwierzeck 3 siblings, 0 replies; 10+ messages in thread From: Daniel Schwierzeck @ 2018-03-19 1:13 UTC (permalink / raw) To: u-boot On 04.02.2018 21:11, Álvaro Fernández Rojas wrote: > Add support for BCM6318 usbh phy. > > v2: use correct phy driver > > Álvaro Fernández Rojas (3): > phy: add support for bcm6318 usbh phy > mips: bmips: add support for bcm6318 usb > mips: bmips: add ar-5315 usb support > > arch/mips/dts/brcm,bcm6318.dtsi | 30 +++++++ > arch/mips/dts/comtrend,ar-5315u.dts | 12 +++ > configs/comtrend_ar5315u_ram_defconfig | 9 +++ > drivers/phy/Kconfig | 7 ++ > drivers/phy/Makefile | 1 + > drivers/phy/bcm6318-usbh-phy.c | 144 +++++++++++++++++++++++++++++++++ > include/configs/bmips_bcm6318.h | 7 ++ > 7 files changed, 210 insertions(+) > create mode 100644 drivers/phy/bcm6318-usbh-phy.c > applied to u-boot-mips, thanks. -- - Daniel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180319/2dad9f03/attachment.sig> ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-03-19 1:13 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-02-04 10:19 [U-Boot] [PATCH 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 1/3] phy: " Álvaro Fernández Rojas 2018-02-04 18:33 ` Daniel Schwierzeck 2018-02-04 10:19 ` [U-Boot] [PATCH 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas 2018-02-04 10:19 ` [U-Boot] [PATCH 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 1/3] phy: " Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 2/3] mips: bmips: add support for bcm6318 usb Álvaro Fernández Rojas 2018-02-04 20:11 ` [U-Boot] [PATCH v2 3/3] mips: bmips: add ar-5315 usb support Álvaro Fernández Rojas 2018-03-19 1:13 ` [U-Boot] [PATCH v2 0/3] bmips: add support for bcm6318 usbh phy Daniel Schwierzeck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox