* [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 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 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 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 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 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 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 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 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 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