* [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support
@ 2017-05-03 13:09 Álvaro Fernández Rojas
2017-05-03 13:09 ` [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas
` (5 more replies)
0 siblings, 6 replies; 18+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw)
To: u-boot
Broadcom MIPS SoCs have gated clock controllers which only allow enabling and
disabling each peripheral clock.
Changing clock rates is not possible on these SoCs.
Álvaro Fernández Rojas (5):
dm: clk: add BCM6345 clock driver
mips: bmips: add bcm6345-clk driver support for BCM6358
mips: bmips: add bcm6345-clk driver support for BCM6328
mips: bmips: add bcm6345-clk driver support for BCM63268
mips: bmips: enable bcm6345-clk driver for all BMIPS boards
arch/mips/dts/brcm,bcm63268.dtsi | 13 +++++
arch/mips/dts/brcm,bcm6328.dtsi | 7 +++
arch/mips/dts/brcm,bcm6358.dtsi | 7 +++
configs/comtrend_ar5387un_ram_defconfig | 1 +
configs/comtrend_vr3032u_ram_defconfig | 1 +
configs/huawei_hg556a_ram_defconfig | 1 +
configs/sfr_nb4-ser_ram_defconfig | 1 +
drivers/clk/Kconfig | 8 +++
drivers/clk/Makefile | 1 +
drivers/clk/clk_bcm6345.c | 78 ++++++++++++++++++++++++++++++
include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++
include/dt-bindings/clock/bcm6328-clock.h | 25 ++++++++++
include/dt-bindings/clock/bcm6358-clock.h | 24 +++++++++
13 files changed, 219 insertions(+)
create mode 100644 drivers/clk/clk_bcm6345.c
create mode 100644 include/dt-bindings/clock/bcm63268-clock.h
create mode 100644 include/dt-bindings/clock/bcm6328-clock.h
create mode 100644 include/dt-bindings/clock/bcm6358-clock.h
--
2.1.4
^ permalink raw reply [flat|nested] 18+ messages in thread* [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas @ 2017-05-03 13:09 ` Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas ` (4 subsequent siblings) 5 siblings, 1 reply; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw) To: u-boot This is a simplified version of linux/arch/mips/bcm63xx/clk.c Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/clk/Kconfig | 8 +++++ drivers/clk/Makefile | 1 + drivers/clk/clk_bcm6345.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 drivers/clk/clk_bcm6345.c diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 5ca958c..fa3fbe2 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -20,6 +20,14 @@ config SPL_CLK setting up clocks within SPL, and allows the same drivers to be used as U-Boot proper. +config CLK_BCM6345 + bool "Enable clock driver support for BCM6345" + depends on CLK && ARCH_BMIPS + default y + help + This clock driver adds support for clock realted settings for + BCM6345. + config CLK_BOSTON def_bool y if TARGET_BOSTON depends on CLK diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index 01a8cd6..2746a80 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -17,6 +17,7 @@ obj-y += tegra/ obj-$(CONFIG_CLK_UNIPHIER) += uniphier/ obj-$(CONFIG_CLK_EXYNOS) += exynos/ obj-$(CONFIG_CLK_AT91) += at91/ +obj-$(CONFIG_CLK_BCM6345) += clk_bcm6345.o obj-$(CONFIG_CLK_BOSTON) += clk_boston.o obj-$(CONFIG_ARCH_ASPEED) += aspeed/ obj-$(CONFIG_STM32F7) += clk_stm32f7.o diff --git a/drivers/clk/clk_bcm6345.c b/drivers/clk/clk_bcm6345.c new file mode 100644 index 0000000..0b52079 --- /dev/null +++ b/drivers/clk/clk_bcm6345.c @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/bcm63xx/clk.c: + * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <clk-uclass.h> +#include <common.h> +#include <dm.h> +#include <errno.h> +#include <asm/io.h> + +#define MAX_CLKS 32 + +struct bcm6345_clk_priv { + void __iomem *regs; +}; + +static int bcm6345_clk_enable(struct clk *clk) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(clk->dev); + + if (clk->id >= MAX_CLKS) + return -EINVAL; + + setbits_be32(priv->regs, BIT(clk->id)); + + return 0; +} + +static int bcm6345_clk_disable(struct clk *clk) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(clk->dev); + + if (clk->id >= MAX_CLKS) + return -EINVAL; + + clrbits_be32(priv->regs, BIT(clk->id)); + + return 0; +} + +static struct clk_ops bcm6345_clk_ops = { + .disable = bcm6345_clk_disable, + .enable = bcm6345_clk_enable, +}; + +static const struct udevice_id bcm6345_clk_ids[] = { + { .compatible = "brcm,bcm6345-clk" }, + { /* sentinel */ } +}; + +static int bcm63xx_clk_probe(struct udevice *dev) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(dev); + fdt_addr_t addr; + fdt_size_t size; + + addr = dev_get_addr_size_index(dev, 0, &size); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->regs = ioremap(addr, size); + + return 0; +} + +U_BOOT_DRIVER(clk_bcm6345) = { + .name = "clk_bcm6345", + .id = UCLASS_CLK, + .of_match = bcm6345_clk_ids, + .ops = &bcm6345_clk_ops, + .probe = bcm63xx_clk_probe, + .priv_auto_alloc_size = sizeof(struct bcm6345_clk_priv), +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver 2017-05-03 13:09 ` [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas @ 2017-05-04 16:51 ` Simon Glass 0 siblings, 0 replies; 18+ messages in thread From: Simon Glass @ 2017-05-04 16:51 UTC (permalink / raw) To: u-boot Hi Alvarao, On 3 May 2017 at 07:09, Álvaro Fernández Rojas <noltari@gmail.com> wrote: > This is a simplified version of linux/arch/mips/bcm63xx/clk.c > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/clk/Kconfig | 8 +++++ > drivers/clk/Makefile | 1 + > drivers/clk/clk_bcm6345.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 87 insertions(+) > create mode 100644 drivers/clk/clk_bcm6345.c Reviewed-by: Simon Glass <sjg@chromium.org> nits below > > diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig > index 5ca958c..fa3fbe2 100644 > --- a/drivers/clk/Kconfig > +++ b/drivers/clk/Kconfig > @@ -20,6 +20,14 @@ config SPL_CLK > setting up clocks within SPL, and allows the same drivers to be > used as U-Boot proper. > > +config CLK_BCM6345 > + bool "Enable clock driver support for BCM6345" > + depends on CLK && ARCH_BMIPS > + default y > + help > + This clock driver adds support for clock realted settings for > + BCM6345. Can you give a bit more detail here? Does it support all clocks? > + > config CLK_BOSTON > def_bool y if TARGET_BOSTON > depends on CLK > diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile > index 01a8cd6..2746a80 100644 > --- a/drivers/clk/Makefile > +++ b/drivers/clk/Makefile > @@ -17,6 +17,7 @@ obj-y += tegra/ > obj-$(CONFIG_CLK_UNIPHIER) += uniphier/ > obj-$(CONFIG_CLK_EXYNOS) += exynos/ > obj-$(CONFIG_CLK_AT91) += at91/ > +obj-$(CONFIG_CLK_BCM6345) += clk_bcm6345.o > obj-$(CONFIG_CLK_BOSTON) += clk_boston.o > obj-$(CONFIG_ARCH_ASPEED) += aspeed/ > obj-$(CONFIG_STM32F7) += clk_stm32f7.o > diff --git a/drivers/clk/clk_bcm6345.c b/drivers/clk/clk_bcm6345.c > new file mode 100644 > index 0000000..0b52079 > --- /dev/null > +++ b/drivers/clk/clk_bcm6345.c > @@ -0,0 +1,78 @@ > +/* > + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> > + * > + * Derived from linux/arch/mips/bcm63xx/clk.c: > + * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <clk-uclass.h> > +#include <common.h> This should always go first. Regards, Simon ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-03 13:09 ` [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas @ 2017-05-03 13:09 ` Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas ` (3 subsequent siblings) 5 siblings, 1 reply; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- arch/mips/dts/brcm,bcm6358.dtsi | 7 +++++++ include/dt-bindings/clock/bcm6358-clock.h | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 include/dt-bindings/clock/bcm6358-clock.h diff --git a/arch/mips/dts/brcm,bcm6358.dtsi b/arch/mips/dts/brcm,bcm6358.dtsi index edd0002..369c240 100644 --- a/arch/mips/dts/brcm,bcm6358.dtsi +++ b/arch/mips/dts/brcm,bcm6358.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm6358-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,12 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0xfffe0004 0x4>; + #clock-cells = <1>; + }; }; pflash: nor at 1e000000 { diff --git a/include/dt-bindings/clock/bcm6358-clock.h b/include/dt-bindings/clock/bcm6358-clock.h new file mode 100644 index 0000000..ff22321 --- /dev/null +++ b/include/dt-bindings/clock/bcm6358-clock.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM6358_H +#define __DT_BINDINGS_CLOCK_BCM6358_H + +#define BCM6358_CLK_ENET 4 +#define BCM6358_CLK_ADSL 5 +#define BCM6358_CLK_PCM 8 +#define BCM6358_CLK_SPI 9 +#define BCM6358_CLK_USBS 10 +#define BCM6358_CLK_SAR 11 +#define BCM6358_CLK_EMUSB 17 +#define BCM6358_CLK_ENET0 18 +#define BCM6358_CLK_ENET1 19 +#define BCM6358_CLK_USBSU 20 +#define BCM6358_CLK_EPHY 21 + +#endif /* __DT_BINDINGS_CLOCK_BCM6358_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 2017-05-03 13:09 ` [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas @ 2017-05-04 16:51 ` Simon Glass 0 siblings, 0 replies; 18+ messages in thread From: Simon Glass @ 2017-05-04 16:51 UTC (permalink / raw) To: u-boot On 3 May 2017 at 07:09, Álvaro Fernández Rojas <noltari@gmail.com> wrote: > This driver can control up to 32 clocks. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > arch/mips/dts/brcm,bcm6358.dtsi | 7 +++++++ > include/dt-bindings/clock/bcm6358-clock.h | 24 ++++++++++++++++++++++++ > 2 files changed, 31 insertions(+) > create mode 100644 include/dt-bindings/clock/bcm6358-clock.h Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-03 13:09 ` [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas 2017-05-03 13:09 ` [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas @ 2017-05-03 13:09 ` Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas ` (2 subsequent siblings) 5 siblings, 1 reply; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- arch/mips/dts/brcm,bcm6328.dtsi | 7 +++++++ include/dt-bindings/clock/bcm6328-clock.h | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 include/dt-bindings/clock/bcm6328-clock.h diff --git a/arch/mips/dts/brcm,bcm6328.dtsi b/arch/mips/dts/brcm,bcm6328.dtsi index a5b43ae..6b5c5dd 100644 --- a/arch/mips/dts/brcm,bcm6328.dtsi +++ b/arch/mips/dts/brcm,bcm6328.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm6328-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,12 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x10000004 0x4>; + #clock-cells = <1>; + }; }; ubus { diff --git a/include/dt-bindings/clock/bcm6328-clock.h b/include/dt-bindings/clock/bcm6328-clock.h new file mode 100644 index 0000000..5d0fc11 --- /dev/null +++ b/include/dt-bindings/clock/bcm6328-clock.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM6328_H +#define __DT_BINDINGS_CLOCK_BCM6328_H + +#define BCM6328_CLK_PHYMIPS 0 +#define BCM6328_CLK_ADSL_QPROC 1 +#define BCM6328_CLK_ADSL_AFE 2 +#define BCM6328_CLK_ADSL 3 +#define BCM6328_CLK_MIPS 4 +#define BCM6328_CLK_SAR 5 +#define BCM6328_CLK_PCM 6 +#define BCM6328_CLK_USBD 7 +#define BCM6328_CLK_USBH 8 +#define BCM6328_CLK_HSSPI 9 +#define BCM6328_CLK_PCIE 10 +#define BCM6328_CLK_ROBOSW 11 + +#endif /* __DT_BINDINGS_CLOCK_BCM6328_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 2017-05-03 13:09 ` [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas @ 2017-05-04 16:51 ` Simon Glass 0 siblings, 0 replies; 18+ messages in thread From: Simon Glass @ 2017-05-04 16:51 UTC (permalink / raw) To: u-boot On 3 May 2017 at 07:09, Álvaro Fernández Rojas <noltari@gmail.com> wrote: > This driver can control up to 32 clocks. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > arch/mips/dts/brcm,bcm6328.dtsi | 7 +++++++ > include/dt-bindings/clock/bcm6328-clock.h | 25 +++++++++++++++++++++++++ > 2 files changed, 32 insertions(+) > create mode 100644 include/dt-bindings/clock/bcm6328-clock.h > Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (2 preceding siblings ...) 2017-05-03 13:09 ` [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas @ 2017-05-03 13:09 ` Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 5 siblings, 1 reply; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- arch/mips/dts/brcm,bcm63268.dtsi | 13 ++++++++ include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 include/dt-bindings/clock/bcm63268-clock.h diff --git a/arch/mips/dts/brcm,bcm63268.dtsi b/arch/mips/dts/brcm,bcm63268.dtsi index 11c6729..4d02024 100644 --- a/arch/mips/dts/brcm,bcm63268.dtsi +++ b/arch/mips/dts/brcm,bcm63268.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm63268-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,18 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x10000004 0x4>; + #clock-cells = <1>; + }; + + timer_clk: timer-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x100000ac 0x4>; + #clock-cells = <1>; + }; }; ubus { diff --git a/include/dt-bindings/clock/bcm63268-clock.h b/include/dt-bindings/clock/bcm63268-clock.h new file mode 100644 index 0000000..23818da --- /dev/null +++ b/include/dt-bindings/clock/bcm63268-clock.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM63268_H +#define __DT_BINDINGS_CLOCK_BCM63268_H + +#define BCM63268_CLK_GLESS 0 +#define BCM63268_CLK_VDSL_QPROC 1 +#define BCM63268_CLK_VDSL_AFE 2 +#define BCM63268_CLK_VDSL 3 +#define BCM63268_CLK_MIPS 4 +#define BCM63268_CLK_WLAN_OCP 5 +#define BCM63268_CLK_DECT 6 +#define BCM63268_CLK_FAP0 7 +#define BCM63268_CLK_FAP1 8 +#define BCM63268_CLK_SAR 9 +#define BCM63268_CLK_ROBOSW 10 +#define BCM63268_CLK_PCM 11 +#define BCM63268_CLK_USBD 12 +#define BCM63268_CLK_USBH 13 +#define BCM63268_CLK_IPSEC 14 +#define BCM63268_CLK_SPI 15 +#define BCM63268_CLK_HSSPI 16 +#define BCM63268_CLK_PCIE 17 +#define BCM63268_CLK_PHYMIPS 18 +#define BCM63268_CLK_GMAC 19 +#define BCM63268_CLK_NAND 20 +#define BCM63268_CLK_TBUS 27 +#define BCM63268_CLK_ROBOSW250 31 + +#define BCM63268_TCLK_EPHY1 0 +#define BCM63268_TCLK_EPHY2 1 +#define BCM63268_TCLK_EPHY3 2 +#define BCM63268_TCLK_GPHY 3 +#define BCM63268_TCLK_DSL 4 +#define BCM63268_TCLK_WO_EPHY 5 +#define BCM63268_TCLK_WO_DSL 6 +#define BCM63268_TCLK_FAP1 11 +#define BCM63268_TCLK_FAP2 15 +#define BCM63268_TCLK_UTO_50 16 +#define BCM63268_TCLK_UTO_EXT 17 +#define BCM63268_TCLK_USB_REF 18 +#define BCM63268_TCLK_SW_RST 29 +#define BCM63268_TCLK_HW_RST 30 +#define BCM63268_TCLK_POR_RST 31 + +#endif /* __DT_BINDINGS_CLOCK_BCM63268_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 2017-05-03 13:09 ` [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas @ 2017-05-04 16:51 ` Simon Glass 0 siblings, 0 replies; 18+ messages in thread From: Simon Glass @ 2017-05-04 16:51 UTC (permalink / raw) To: u-boot On 3 May 2017 at 07:09, Álvaro Fernández Rojas <noltari@gmail.com> wrote: > This driver can control up to 32 clocks. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > arch/mips/dts/brcm,bcm63268.dtsi | 13 ++++++++ > include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++++++++++++ > 2 files changed, 65 insertions(+) > create mode 100644 include/dt-bindings/clock/bcm63268-clock.h Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (3 preceding siblings ...) 2017-05-03 13:09 ` [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas @ 2017-05-03 13:09 ` Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 5 siblings, 1 reply; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-03 13:09 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- configs/comtrend_ar5387un_ram_defconfig | 1 + configs/comtrend_vr3032u_ram_defconfig | 1 + configs/huawei_hg556a_ram_defconfig | 1 + configs/sfr_nb4-ser_ram_defconfig | 1 + 4 files changed, 4 insertions(+) diff --git a/configs/comtrend_ar5387un_ram_defconfig b/configs/comtrend_ar5387un_ram_defconfig index f8656c4..55cb4bf 100644 --- a/configs/comtrend_ar5387un_ram_defconfig +++ b/configs/comtrend_ar5387un_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y CONFIG_BOARD_COMTREND_AR5387UN=y diff --git a/configs/comtrend_vr3032u_ram_defconfig b/configs/comtrend_vr3032u_ram_defconfig index a04b0e5..7f13d24 100644 --- a/configs/comtrend_vr3032u_ram_defconfig +++ b/configs/comtrend_vr3032u_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y CONFIG_BOARD_COMTREND_VR3032U=y diff --git a/configs/huawei_hg556a_ram_defconfig b/configs/huawei_hg556a_ram_defconfig index ccfdf1d..71e1163 100644 --- a/configs/huawei_hg556a_ram_defconfig +++ b/configs/huawei_hg556a_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_GPIO=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y diff --git a/configs/sfr_nb4-ser_ram_defconfig b/configs/sfr_nb4-ser_ram_defconfig index 8b885e3..cd6c4a2 100644 --- a/configs/sfr_nb4-ser_ram_defconfig +++ b/configs/sfr_nb4-ser_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_GPIO=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards 2017-05-03 13:09 ` [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas @ 2017-05-04 16:51 ` Simon Glass 0 siblings, 0 replies; 18+ messages in thread From: Simon Glass @ 2017-05-04 16:51 UTC (permalink / raw) To: u-boot 2017-05-03 7:09 GMT-06:00 Álvaro Fernández Rojas <noltari@gmail.com>: > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > configs/comtrend_ar5387un_ram_defconfig | 1 + > configs/comtrend_vr3032u_ram_defconfig | 1 + > configs/huawei_hg556a_ram_defconfig | 1 + > configs/sfr_nb4-ser_ram_defconfig | 1 + > 4 files changed, 4 insertions(+) > Reviewed-by: Simon Glass <sjg@chromium.org> You might consider adding an imply to your Kconfig somewhere. ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (4 preceding siblings ...) 2017-05-03 13:09 ` [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas ` (5 more replies) 5 siblings, 6 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot Broadcom MIPS SoCs have gated clock controllers which only allow enabling and disabling each peripheral clock. Changing clock rates is not possible on these SoCs. v2: Introduce changes suggested by Simon Glass Álvaro Fernández Rojas (5): dm: clk: add BCM6345 clock driver mips: bmips: add bcm6345-clk driver support for BCM6358 mips: bmips: add bcm6345-clk driver support for BCM6328 mips: bmips: add bcm6345-clk driver support for BCM63268 mips: bmips: enable bcm6345-clk driver for all BMIPS boards arch/mips/dts/brcm,bcm63268.dtsi | 13 +++++ arch/mips/dts/brcm,bcm6328.dtsi | 7 +++ arch/mips/dts/brcm,bcm6358.dtsi | 7 +++ configs/comtrend_ar5387un_ram_defconfig | 1 + configs/comtrend_vr3032u_ram_defconfig | 1 + configs/huawei_hg556a_ram_defconfig | 1 + configs/sfr_nb4-ser_ram_defconfig | 1 + drivers/clk/Kconfig | 8 +++ drivers/clk/Makefile | 1 + drivers/clk/clk_bcm6345.c | 78 ++++++++++++++++++++++++++++++ include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++ include/dt-bindings/clock/bcm6328-clock.h | 25 ++++++++++ include/dt-bindings/clock/bcm6358-clock.h | 24 +++++++++ 13 files changed, 219 insertions(+) create mode 100644 drivers/clk/clk_bcm6345.c create mode 100644 include/dt-bindings/clock/bcm63268-clock.h create mode 100644 include/dt-bindings/clock/bcm6328-clock.h create mode 100644 include/dt-bindings/clock/bcm6358-clock.h -- 2.1.4 ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 1/5] dm: clk: add BCM6345 clock driver 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas ` (4 subsequent siblings) 5 siblings, 0 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot This is a simplified version of linux/arch/mips/bcm63xx/clk.c Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> --- v2: Introduce changes suggested by Simon Glass: - Swap common.h include to the beginning. - Add a more detailed description. - Switch to fdtdec_get_bool(). drivers/clk/Kconfig | 8 +++++ drivers/clk/Makefile | 1 + drivers/clk/clk_bcm6345.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 drivers/clk/clk_bcm6345.c diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 5ca958c..44da716 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -20,6 +20,14 @@ config SPL_CLK setting up clocks within SPL, and allows the same drivers to be used as U-Boot proper. +config CLK_BCM6345 + bool "Clock controller driver for BCM6345" + depends on CLK && ARCH_BMIPS + default y + help + This clock driver adds support for enabling and disabling peripheral + clocks on BCM6345 SoCs. HW has no rate changing capabilities. + config CLK_BOSTON def_bool y if TARGET_BOSTON depends on CLK diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index 01a8cd6..2746a80 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -17,6 +17,7 @@ obj-y += tegra/ obj-$(CONFIG_CLK_UNIPHIER) += uniphier/ obj-$(CONFIG_CLK_EXYNOS) += exynos/ obj-$(CONFIG_CLK_AT91) += at91/ +obj-$(CONFIG_CLK_BCM6345) += clk_bcm6345.o obj-$(CONFIG_CLK_BOSTON) += clk_boston.o obj-$(CONFIG_ARCH_ASPEED) += aspeed/ obj-$(CONFIG_STM32F7) += clk_stm32f7.o diff --git a/drivers/clk/clk_bcm6345.c b/drivers/clk/clk_bcm6345.c new file mode 100644 index 0000000..4c7a2df --- /dev/null +++ b/drivers/clk/clk_bcm6345.c @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/bcm63xx/clk.c: + * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <clk-uclass.h> +#include <dm.h> +#include <errno.h> +#include <asm/io.h> + +#define MAX_CLKS 32 + +struct bcm6345_clk_priv { + void __iomem *regs; +}; + +static int bcm6345_clk_enable(struct clk *clk) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(clk->dev); + + if (clk->id >= MAX_CLKS) + return -EINVAL; + + setbits_be32(priv->regs, BIT(clk->id)); + + return 0; +} + +static int bcm6345_clk_disable(struct clk *clk) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(clk->dev); + + if (clk->id >= MAX_CLKS) + return -EINVAL; + + clrbits_be32(priv->regs, BIT(clk->id)); + + return 0; +} + +static struct clk_ops bcm6345_clk_ops = { + .disable = bcm6345_clk_disable, + .enable = bcm6345_clk_enable, +}; + +static const struct udevice_id bcm6345_clk_ids[] = { + { .compatible = "brcm,bcm6345-clk" }, + { /* sentinel */ } +}; + +static int bcm63xx_clk_probe(struct udevice *dev) +{ + struct bcm6345_clk_priv *priv = dev_get_priv(dev); + fdt_addr_t addr; + fdt_size_t size; + + addr = dev_get_addr_size_index(dev, 0, &size); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->regs = ioremap(addr, size); + + return 0; +} + +U_BOOT_DRIVER(clk_bcm6345) = { + .name = "clk_bcm6345", + .id = UCLASS_CLK, + .of_match = bcm6345_clk_ids, + .ops = &bcm6345_clk_ops, + .probe = bcm63xx_clk_probe, + .priv_auto_alloc_size = sizeof(struct bcm6345_clk_priv), +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas ` (3 subsequent siblings) 5 siblings, 0 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> --- v2: no changes. arch/mips/dts/brcm,bcm6358.dtsi | 7 +++++++ include/dt-bindings/clock/bcm6358-clock.h | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 include/dt-bindings/clock/bcm6358-clock.h diff --git a/arch/mips/dts/brcm,bcm6358.dtsi b/arch/mips/dts/brcm,bcm6358.dtsi index edd0002..369c240 100644 --- a/arch/mips/dts/brcm,bcm6358.dtsi +++ b/arch/mips/dts/brcm,bcm6358.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm6358-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,12 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0xfffe0004 0x4>; + #clock-cells = <1>; + }; }; pflash: nor at 1e000000 { diff --git a/include/dt-bindings/clock/bcm6358-clock.h b/include/dt-bindings/clock/bcm6358-clock.h new file mode 100644 index 0000000..ff22321 --- /dev/null +++ b/include/dt-bindings/clock/bcm6358-clock.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM6358_H +#define __DT_BINDINGS_CLOCK_BCM6358_H + +#define BCM6358_CLK_ENET 4 +#define BCM6358_CLK_ADSL 5 +#define BCM6358_CLK_PCM 8 +#define BCM6358_CLK_SPI 9 +#define BCM6358_CLK_USBS 10 +#define BCM6358_CLK_SAR 11 +#define BCM6358_CLK_EMUSB 17 +#define BCM6358_CLK_ENET0 18 +#define BCM6358_CLK_ENET1 19 +#define BCM6358_CLK_USBSU 20 +#define BCM6358_CLK_EPHY 21 + +#endif /* __DT_BINDINGS_CLOCK_BCM6358_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas ` (2 subsequent siblings) 5 siblings, 0 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> --- v2: no changes. arch/mips/dts/brcm,bcm6328.dtsi | 7 +++++++ include/dt-bindings/clock/bcm6328-clock.h | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 include/dt-bindings/clock/bcm6328-clock.h diff --git a/arch/mips/dts/brcm,bcm6328.dtsi b/arch/mips/dts/brcm,bcm6328.dtsi index a5b43ae..6b5c5dd 100644 --- a/arch/mips/dts/brcm,bcm6328.dtsi +++ b/arch/mips/dts/brcm,bcm6328.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm6328-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,12 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x10000004 0x4>; + #clock-cells = <1>; + }; }; ubus { diff --git a/include/dt-bindings/clock/bcm6328-clock.h b/include/dt-bindings/clock/bcm6328-clock.h new file mode 100644 index 0000000..5d0fc11 --- /dev/null +++ b/include/dt-bindings/clock/bcm6328-clock.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM6328_H +#define __DT_BINDINGS_CLOCK_BCM6328_H + +#define BCM6328_CLK_PHYMIPS 0 +#define BCM6328_CLK_ADSL_QPROC 1 +#define BCM6328_CLK_ADSL_AFE 2 +#define BCM6328_CLK_ADSL 3 +#define BCM6328_CLK_MIPS 4 +#define BCM6328_CLK_SAR 5 +#define BCM6328_CLK_PCM 6 +#define BCM6328_CLK_USBD 7 +#define BCM6328_CLK_USBH 8 +#define BCM6328_CLK_HSSPI 9 +#define BCM6328_CLK_PCIE 10 +#define BCM6328_CLK_ROBOSW 11 + +#endif /* __DT_BINDINGS_CLOCK_BCM6328_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (2 preceding siblings ...) 2017-05-07 18:13 ` [U-Boot] [PATCH v2 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas 2017-05-10 14:19 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Daniel Schwierzeck 5 siblings, 0 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot This driver can control up to 32 clocks. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> --- v2: no changes. arch/mips/dts/brcm,bcm63268.dtsi | 13 ++++++++ include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 include/dt-bindings/clock/bcm63268-clock.h diff --git a/arch/mips/dts/brcm,bcm63268.dtsi b/arch/mips/dts/brcm,bcm63268.dtsi index 11c6729..4d02024 100644 --- a/arch/mips/dts/brcm,bcm63268.dtsi +++ b/arch/mips/dts/brcm,bcm63268.dtsi @@ -4,6 +4,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <dt-bindings/clock/bcm63268-clock.h> #include <dt-bindings/gpio/gpio.h> #include "skeleton.dtsi" @@ -43,6 +44,18 @@ clock-frequency = <50000000>; u-boot,dm-pre-reloc; }; + + periph_clk: periph-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x10000004 0x4>; + #clock-cells = <1>; + }; + + timer_clk: timer-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x100000ac 0x4>; + #clock-cells = <1>; + }; }; ubus { diff --git a/include/dt-bindings/clock/bcm63268-clock.h b/include/dt-bindings/clock/bcm63268-clock.h new file mode 100644 index 0000000..23818da --- /dev/null +++ b/include/dt-bindings/clock/bcm63268-clock.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com> + * + * Derived from linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_CLOCK_BCM63268_H +#define __DT_BINDINGS_CLOCK_BCM63268_H + +#define BCM63268_CLK_GLESS 0 +#define BCM63268_CLK_VDSL_QPROC 1 +#define BCM63268_CLK_VDSL_AFE 2 +#define BCM63268_CLK_VDSL 3 +#define BCM63268_CLK_MIPS 4 +#define BCM63268_CLK_WLAN_OCP 5 +#define BCM63268_CLK_DECT 6 +#define BCM63268_CLK_FAP0 7 +#define BCM63268_CLK_FAP1 8 +#define BCM63268_CLK_SAR 9 +#define BCM63268_CLK_ROBOSW 10 +#define BCM63268_CLK_PCM 11 +#define BCM63268_CLK_USBD 12 +#define BCM63268_CLK_USBH 13 +#define BCM63268_CLK_IPSEC 14 +#define BCM63268_CLK_SPI 15 +#define BCM63268_CLK_HSSPI 16 +#define BCM63268_CLK_PCIE 17 +#define BCM63268_CLK_PHYMIPS 18 +#define BCM63268_CLK_GMAC 19 +#define BCM63268_CLK_NAND 20 +#define BCM63268_CLK_TBUS 27 +#define BCM63268_CLK_ROBOSW250 31 + +#define BCM63268_TCLK_EPHY1 0 +#define BCM63268_TCLK_EPHY2 1 +#define BCM63268_TCLK_EPHY3 2 +#define BCM63268_TCLK_GPHY 3 +#define BCM63268_TCLK_DSL 4 +#define BCM63268_TCLK_WO_EPHY 5 +#define BCM63268_TCLK_WO_DSL 6 +#define BCM63268_TCLK_FAP1 11 +#define BCM63268_TCLK_FAP2 15 +#define BCM63268_TCLK_UTO_50 16 +#define BCM63268_TCLK_UTO_EXT 17 +#define BCM63268_TCLK_USB_REF 18 +#define BCM63268_TCLK_SW_RST 29 +#define BCM63268_TCLK_HW_RST 30 +#define BCM63268_TCLK_POR_RST 31 + +#endif /* __DT_BINDINGS_CLOCK_BCM63268_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (3 preceding siblings ...) 2017-05-07 18:13 ` [U-Boot] [PATCH v2 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas @ 2017-05-07 18:13 ` Álvaro Fernández Rojas 2017-05-10 14:19 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Daniel Schwierzeck 5 siblings, 0 replies; 18+ messages in thread From: Álvaro Fernández Rojas @ 2017-05-07 18:13 UTC (permalink / raw) To: u-boot Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> --- v2: no changes. configs/comtrend_ar5387un_ram_defconfig | 1 + configs/comtrend_vr3032u_ram_defconfig | 1 + configs/huawei_hg556a_ram_defconfig | 1 + configs/sfr_nb4-ser_ram_defconfig | 1 + 4 files changed, 4 insertions(+) diff --git a/configs/comtrend_ar5387un_ram_defconfig b/configs/comtrend_ar5387un_ram_defconfig index f8656c4..55cb4bf 100644 --- a/configs/comtrend_ar5387un_ram_defconfig +++ b/configs/comtrend_ar5387un_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y CONFIG_BOARD_COMTREND_AR5387UN=y diff --git a/configs/comtrend_vr3032u_ram_defconfig b/configs/comtrend_vr3032u_ram_defconfig index a04b0e5..7f13d24 100644 --- a/configs/comtrend_vr3032u_ram_defconfig +++ b/configs/comtrend_vr3032u_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y CONFIG_BOARD_COMTREND_VR3032U=y diff --git a/configs/huawei_hg556a_ram_defconfig b/configs/huawei_hg556a_ram_defconfig index ccfdf1d..71e1163 100644 --- a/configs/huawei_hg556a_ram_defconfig +++ b/configs/huawei_hg556a_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_GPIO=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y diff --git a/configs/sfr_nb4-ser_ram_defconfig b/configs/sfr_nb4-ser_ram_defconfig index 8b885e3..cd6c4a2 100644 --- a/configs/sfr_nb4-ser_ram_defconfig +++ b/configs/sfr_nb4-ser_ram_defconfig @@ -1,5 +1,6 @@ CONFIG_ARCH_BMIPS=y CONFIG_BAUDRATE=115200 +CONFIG_BCM6345_CLK=y CONFIG_BCM6345_GPIO=y CONFIG_BCM6345_SERIAL=y CONFIG_BMIPS_BOOT_RAM=y -- 2.1.4 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas ` (4 preceding siblings ...) 2017-05-07 18:13 ` [U-Boot] [PATCH v2 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas @ 2017-05-10 14:19 ` Daniel Schwierzeck 5 siblings, 0 replies; 18+ messages in thread From: Daniel Schwierzeck @ 2017-05-10 14:19 UTC (permalink / raw) To: u-boot Am 07.05.2017 um 20:13 schrieb Álvaro Fernández Rojas: > Broadcom MIPS SoCs have gated clock controllers which only allow enabling and > disabling each peripheral clock. > Changing clock rates is not possible on these SoCs. > > v2: Introduce changes suggested by Simon Glass > > Álvaro Fernández Rojas (5): > dm: clk: add BCM6345 clock driver > mips: bmips: add bcm6345-clk driver support for BCM6358 > mips: bmips: add bcm6345-clk driver support for BCM6328 > mips: bmips: add bcm6345-clk driver support for BCM63268 > mips: bmips: enable bcm6345-clk driver for all BMIPS boards > > arch/mips/dts/brcm,bcm63268.dtsi | 13 +++++ > arch/mips/dts/brcm,bcm6328.dtsi | 7 +++ > arch/mips/dts/brcm,bcm6358.dtsi | 7 +++ > configs/comtrend_ar5387un_ram_defconfig | 1 + > configs/comtrend_vr3032u_ram_defconfig | 1 + > configs/huawei_hg556a_ram_defconfig | 1 + > configs/sfr_nb4-ser_ram_defconfig | 1 + > drivers/clk/Kconfig | 8 +++ > drivers/clk/Makefile | 1 + > drivers/clk/clk_bcm6345.c | 78 ++++++++++++++++++++++++++++++ > include/dt-bindings/clock/bcm63268-clock.h | 52 ++++++++++++++++++++ > include/dt-bindings/clock/bcm6328-clock.h | 25 ++++++++++ > include/dt-bindings/clock/bcm6358-clock.h | 24 +++++++++ > 13 files changed, 219 insertions(+) > create mode 100644 drivers/clk/clk_bcm6345.c > create mode 100644 include/dt-bindings/clock/bcm63268-clock.h > create mode 100644 include/dt-bindings/clock/bcm6328-clock.h > create mode 100644 include/dt-bindings/clock/bcm6358-clock.h > series applied to u-boot-mips/next, 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/20170510/a7b3e3f4/attachment.sig> ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2017-05-10 14:19 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-05-03 13:09 [U-Boot] [PATCH 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-03 13:09 ` [U-Boot] [PATCH 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-03 13:09 ` [U-Boot] [PATCH 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas 2017-05-04 16:51 ` Simon Glass 2017-05-07 18:13 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 1/5] dm: clk: add BCM6345 clock driver Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 2/5] mips: bmips: add bcm6345-clk driver support for BCM6358 Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 3/5] mips: bmips: add bcm6345-clk driver support for BCM6328 Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 4/5] mips: bmips: add bcm6345-clk driver support for BCM63268 Álvaro Fernández Rojas 2017-05-07 18:13 ` [U-Boot] [PATCH v2 5/5] mips: bmips: enable bcm6345-clk driver for all BMIPS boards Álvaro Fernández Rojas 2017-05-10 14:19 ` [U-Boot] [PATCH v2 0/5] dm: clk: add BCM6345 gated clock controller support Daniel Schwierzeck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox