Commit 4dea04c1 authored by Stephen Boyd's avatar Stephen Boyd

Merge tag 'meson-clk-for-4.13-2' of git://github.com/BayLibre/clk-meson into clk-next

Pull Amlogic clk driver updates from Jerome Brunet:

 * Expose more clock gate on meson8 (SAR ADC, RNG, USB, SDIO, ETH)
 * Add new compatible to the meson8 clock controller for meson8b
 * Add missing parents to gxbb clk81

* tag 'meson-clk-for-4.13-2' of git://github.com/BayLibre/clk-meson:
  clk: meson: gxbb: add all clk81 parents
  clk: meson: meson8b: add compatibles for Meson8 and Meson8m2
  clk: meson8b: export the ethernet gate clock
  clk: meson8b: export the USB clocks
  clk: meson8b: export the gate clock for the HW random number generator
  clk: meson8b: export the SDIO clock
  clk: meson8b: export the SAR ADC clocks
parents ef748cb3 215c80a7
* Amlogic Meson8b Clock and Reset Unit * Amlogic Meson8, Meson8b and Meson8m2 Clock and Reset Unit
The Amlogic Meson8b clock controller generates and supplies clock to various The Amlogic Meson8 / Meson8b / Meson8m2 clock controller generates and
controllers within the SoC. supplies clock to various controllers within the SoC.
Required Properties: Required Properties:
- compatible: should be "amlogic,meson8b-clkc" - compatible: must be one of:
- "amlogic,meson8-clkc" for Meson8 (S802) SoCs
- "amlogic,meson8b-clkc" for Meson8 (S805) SoCs
- "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs
- reg: it must be composed by two tuples: - reg: it must be composed by two tuples:
0) physical base address of the xtal register and length of memory 0) physical base address of the xtal register and length of memory
mapped region. mapped region.
......
...@@ -7,9 +7,9 @@ config COMMON_CLK_MESON8B ...@@ -7,9 +7,9 @@ config COMMON_CLK_MESON8B
bool bool
depends on COMMON_CLK_AMLOGIC depends on COMMON_CLK_AMLOGIC
help help
Support for the clock controller on AmLogic S805 devices, aka Support for the clock controller on AmLogic S802 (Meson8),
meson8b. Say Y if you want peripherals and CPU frequency scaling to S805 (Meson8b) and S812 (Meson8m2) devices. Say Y if you
work. want peripherals and CPU frequency scaling to work.
config COMMON_CLK_GXBB config COMMON_CLK_GXBB
bool bool
......
...@@ -603,7 +603,11 @@ static struct meson_clk_mpll gxbb_mpll2 = { ...@@ -603,7 +603,11 @@ static struct meson_clk_mpll gxbb_mpll2 = {
* coordinated clock rates feature * coordinated clock rates feature
*/ */
static u32 mux_table_clk81[] = { 6, 5, 7 }; static u32 mux_table_clk81[] = { 0, 2, 3, 4, 5, 6, 7 };
static const char * const clk81_parent_names[] = {
"xtal", "fclk_div7", "mpll1", "mpll2", "fclk_div4",
"fclk_div3", "fclk_div5"
};
static struct clk_mux gxbb_mpeg_clk_sel = { static struct clk_mux gxbb_mpeg_clk_sel = {
.reg = (void *)HHI_MPEG_CLK_CNTL, .reg = (void *)HHI_MPEG_CLK_CNTL,
...@@ -616,13 +620,12 @@ static struct clk_mux gxbb_mpeg_clk_sel = { ...@@ -616,13 +620,12 @@ static struct clk_mux gxbb_mpeg_clk_sel = {
.name = "mpeg_clk_sel", .name = "mpeg_clk_sel",
.ops = &clk_mux_ro_ops, .ops = &clk_mux_ro_ops,
/* /*
* FIXME bits 14:12 selects from 8 possible parents: * bits 14:12 selects from 8 possible parents:
* xtal, 1'b0 (wtf), fclk_div7, mpll_clkout1, mpll_clkout2, * xtal, 1'b0 (wtf), fclk_div7, mpll_clkout1, mpll_clkout2,
* fclk_div4, fclk_div3, fclk_div5 * fclk_div4, fclk_div3, fclk_div5
*/ */
.parent_names = (const char *[]){ "fclk_div3", "fclk_div4", .parent_names = clk81_parent_names,
"fclk_div5" }, .num_parents = ARRAY_SIZE(clk81_parent_names),
.num_parents = 3,
.flags = (CLK_SET_RATE_NO_REPARENT | CLK_IGNORE_UNUSED), .flags = (CLK_SET_RATE_NO_REPARENT | CLK_IGNORE_UNUSED),
}, },
}; };
......
/* /*
* AmLogic S805 / Meson8b Clock Controller Driver * AmLogic S802 (Meson8) / S805 (Meson8b) / S812 (Meson8m2) Clock Controller
* Driver
* *
* Copyright (c) 2015 Endless Mobile, Inc. * Copyright (c) 2015 Endless Mobile, Inc.
* Author: Carlo Caione <carlo@endlessm.com> * Author: Carlo Caione <carlo@endlessm.com>
...@@ -777,7 +778,9 @@ static int meson8b_clkc_probe(struct platform_device *pdev) ...@@ -777,7 +778,9 @@ static int meson8b_clkc_probe(struct platform_device *pdev)
} }
static const struct of_device_id meson8b_clkc_match_table[] = { static const struct of_device_id meson8b_clkc_match_table[] = {
{ .compatible = "amlogic,meson8-clkc" },
{ .compatible = "amlogic,meson8b-clkc" }, { .compatible = "amlogic,meson8b-clkc" },
{ .compatible = "amlogic,meson8m2-clkc" },
{ } { }
}; };
......
...@@ -87,20 +87,20 @@ ...@@ -87,20 +87,20 @@
#define CLKID_PERIPHS 20 #define CLKID_PERIPHS 20
#define CLKID_SPICC 21 #define CLKID_SPICC 21
#define CLKID_I2C 22 #define CLKID_I2C 22
#define CLKID_SAR_ADC 23 /* #define CLKID_SAR_ADC */
#define CLKID_SMART_CARD 24 #define CLKID_SMART_CARD 24
#define CLKID_RNG0 25 /* #define CLKID_RNG0 */
#define CLKID_UART0 26 #define CLKID_UART0 26
#define CLKID_SDHC 27 #define CLKID_SDHC 27
#define CLKID_STREAM 28 #define CLKID_STREAM 28
#define CLKID_ASYNC_FIFO 29 #define CLKID_ASYNC_FIFO 29
#define CLKID_SDIO 30 /* #define CLKID_SDIO */
#define CLKID_ABUF 31 #define CLKID_ABUF 31
#define CLKID_HIU_IFACE 32 #define CLKID_HIU_IFACE 32
#define CLKID_ASSIST_MISC 33 #define CLKID_ASSIST_MISC 33
#define CLKID_SPI 34 #define CLKID_SPI 34
#define CLKID_I2S_SPDIF 35 #define CLKID_I2S_SPDIF 35
#define CLKID_ETH 36 /* #define CLKID_ETH */
#define CLKID_DEMUX 37 #define CLKID_DEMUX 37
#define CLKID_AIU_GLUE 38 #define CLKID_AIU_GLUE 38
#define CLKID_IEC958 39 #define CLKID_IEC958 39
...@@ -114,12 +114,12 @@ ...@@ -114,12 +114,12 @@
#define CLKID_AIU 47 #define CLKID_AIU 47
#define CLKID_UART1 48 #define CLKID_UART1 48
#define CLKID_G2D 49 #define CLKID_G2D 49
#define CLKID_USB0 50 /* #define CLKID_USB0 */
#define CLKID_USB1 51 /* #define CLKID_USB1 */
#define CLKID_RESET 52 #define CLKID_RESET 52
#define CLKID_NAND 53 #define CLKID_NAND 53
#define CLKID_DOS_PARSER 54 #define CLKID_DOS_PARSER 54
#define CLKID_USB 55 /* #define CLKID_USB */
#define CLKID_VDIN1 56 #define CLKID_VDIN1 56
#define CLKID_AHB_ARB0 57 #define CLKID_AHB_ARB0 57
#define CLKID_EFUSE 58 #define CLKID_EFUSE 58
...@@ -128,12 +128,12 @@ ...@@ -128,12 +128,12 @@
#define CLKID_AHB_CTRL_BUS 61 #define CLKID_AHB_CTRL_BUS 61
#define CLKID_HDMI_INTR_SYNC 62 #define CLKID_HDMI_INTR_SYNC 62
#define CLKID_HDMI_PCLK 63 #define CLKID_HDMI_PCLK 63
#define CLKID_USB1_DDR_BRIDGE 64 /* CLKID_USB1_DDR_BRIDGE */
#define CLKID_USB0_DDR_BRIDGE 65 /* CLKID_USB0_DDR_BRIDGE */
#define CLKID_MMC_PCLK 66 #define CLKID_MMC_PCLK 66
#define CLKID_DVIN 67 #define CLKID_DVIN 67
#define CLKID_UART2 68 #define CLKID_UART2 68
#define CLKID_SANA 69 /* #define CLKID_SANA */
#define CLKID_VPU_INTR 70 #define CLKID_VPU_INTR 70
#define CLKID_SEC_AHB_AHB3_BRIDGE 71 #define CLKID_SEC_AHB_AHB3_BRIDGE 71
#define CLKID_CLK81_A9 72 #define CLKID_CLK81_A9 72
......
...@@ -21,5 +21,15 @@ ...@@ -21,5 +21,15 @@
#define CLKID_ZERO 13 #define CLKID_ZERO 13
#define CLKID_MPEG_SEL 14 #define CLKID_MPEG_SEL 14
#define CLKID_MPEG_DIV 15 #define CLKID_MPEG_DIV 15
#define CLKID_SAR_ADC 23
#define CLKID_RNG0 25
#define CLKID_SDIO 30
#define CLKID_ETH 36
#define CLKID_USB0 50
#define CLKID_USB1 51
#define CLKID_USB 55
#define CLKID_USB1_DDR_BRIDGE 64
#define CLKID_USB0_DDR_BRIDGE 65
#define CLKID_SANA 69
#endif /* __MESON8B_CLKC_H */ #endif /* __MESON8B_CLKC_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment