diff options
author | Arnd Bergmann <arnd@arndb.de> | 2017-03-02 11:52:44 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2017-03-02 11:52:44 -0500 |
commit | d4b80d9aacfa760cf0f363caec33b6d54f3afa2b (patch) | |
tree | cbc1f1dc0d41e77dfef8f11d8cd1a2f8efdab624 /drivers | |
parent | b2e3c4319d40c9055c3c587cdb82ba69b50e919d (diff) | |
parent | 3e011039a3f376f246e662b0e3ffb08018e3416e (diff) |
Merge branch 'next/late' with mainline
* next/late: (25 commits)
arm64: dts: exynos: Add regulators for Vbus and Vbus-Boost
arm64: dts: exynos: Add USB 3.0 controller node for Exynos7
arm64: dts: exynos: Use macros for pinctrl configuration on Exynos7
pinctrl: dt-bindings: samsung: Add Exynos7 specific pinctrl macro definitions
arm64: dts: exynos: Add initial configuration for DISP clocks for TM2/TM2e
ARM64: dts: meson-gxbb-p200: add ADC laddered keys
ARM64: dts: meson: meson-gx: add the SAR ADC
ARM64: dts: meson-gxl: add the pwm_ao_b pin
ARM64: dts: meson-gx: add the missing pwm_AO_ab node
clk: gxbb: fix CLKID_ETH defined twice
clk: samsung: exynos5433: Add data for 250MHz and 278MHz PLL rates
clk: samsung: exynos5433: Add IDs for PHYCLK_MIPIDPHY0_* clocks
ARM64: dts: meson-gxl: rename Nexbox A95x for consistency
clk: gxbb: add the SAR ADC clocks and expose them
dt-bindings: amlogic: Add WeTek boards
ARM64: dts: meson-gxbb: Add support for WeTek Hub and Play
dt-bindings: vendor-prefix: Add wetek vendor prefix
ARM64: dts: meson-gxm: Rename q200 and q201 DT files for consistency
ARM64: dts: meson-gx: Add HDMI HPD/DDC pinctrl nodes
ARM64: dts: meson-gxbb-vega-s95: Add LED
...
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/meson/gxbb.c | 48 | ||||
-rw-r--r-- | drivers/clk/meson/gxbb.h | 15 | ||||
-rw-r--r-- | drivers/clk/samsung/clk-exynos5433.c | 8 |
3 files changed, 63 insertions, 8 deletions
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index 9d9af446bafc..1c1ec137a3cc 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c | |||
@@ -564,6 +564,46 @@ static struct clk_gate gxbb_clk81 = { | |||
564 | }, | 564 | }, |
565 | }; | 565 | }; |
566 | 566 | ||
567 | static struct clk_mux gxbb_sar_adc_clk_sel = { | ||
568 | .reg = (void *)HHI_SAR_CLK_CNTL, | ||
569 | .mask = 0x3, | ||
570 | .shift = 9, | ||
571 | .lock = &clk_lock, | ||
572 | .hw.init = &(struct clk_init_data){ | ||
573 | .name = "sar_adc_clk_sel", | ||
574 | .ops = &clk_mux_ops, | ||
575 | /* NOTE: The datasheet doesn't list the parents for bit 10 */ | ||
576 | .parent_names = (const char *[]){ "xtal", "clk81", }, | ||
577 | .num_parents = 2, | ||
578 | }, | ||
579 | }; | ||
580 | |||
581 | static struct clk_divider gxbb_sar_adc_clk_div = { | ||
582 | .reg = (void *)HHI_SAR_CLK_CNTL, | ||
583 | .shift = 0, | ||
584 | .width = 8, | ||
585 | .lock = &clk_lock, | ||
586 | .hw.init = &(struct clk_init_data){ | ||
587 | .name = "sar_adc_clk_div", | ||
588 | .ops = &clk_divider_ops, | ||
589 | .parent_names = (const char *[]){ "sar_adc_clk_sel" }, | ||
590 | .num_parents = 1, | ||
591 | }, | ||
592 | }; | ||
593 | |||
594 | static struct clk_gate gxbb_sar_adc_clk = { | ||
595 | .reg = (void *)HHI_SAR_CLK_CNTL, | ||
596 | .bit_idx = 8, | ||
597 | .lock = &clk_lock, | ||
598 | .hw.init = &(struct clk_init_data){ | ||
599 | .name = "sar_adc_clk", | ||
600 | .ops = &clk_gate_ops, | ||
601 | .parent_names = (const char *[]){ "sar_adc_clk_div" }, | ||
602 | .num_parents = 1, | ||
603 | .flags = CLK_SET_RATE_PARENT, | ||
604 | }, | ||
605 | }; | ||
606 | |||
567 | /* Everything Else (EE) domain gates */ | 607 | /* Everything Else (EE) domain gates */ |
568 | static MESON_GATE(gxbb_ddr, HHI_GCLK_MPEG0, 0); | 608 | static MESON_GATE(gxbb_ddr, HHI_GCLK_MPEG0, 0); |
569 | static MESON_GATE(gxbb_dos, HHI_GCLK_MPEG0, 1); | 609 | static MESON_GATE(gxbb_dos, HHI_GCLK_MPEG0, 1); |
@@ -754,6 +794,9 @@ static struct clk_hw_onecell_data gxbb_hw_onecell_data = { | |||
754 | [CLKID_SD_EMMC_A] = &gxbb_emmc_a.hw, | 794 | [CLKID_SD_EMMC_A] = &gxbb_emmc_a.hw, |
755 | [CLKID_SD_EMMC_B] = &gxbb_emmc_b.hw, | 795 | [CLKID_SD_EMMC_B] = &gxbb_emmc_b.hw, |
756 | [CLKID_SD_EMMC_C] = &gxbb_emmc_c.hw, | 796 | [CLKID_SD_EMMC_C] = &gxbb_emmc_c.hw, |
797 | [CLKID_SAR_ADC_CLK] = &gxbb_sar_adc_clk.hw, | ||
798 | [CLKID_SAR_ADC_SEL] = &gxbb_sar_adc_clk_sel.hw, | ||
799 | [CLKID_SAR_ADC_DIV] = &gxbb_sar_adc_clk_div.hw, | ||
757 | }, | 800 | }, |
758 | .num = NR_CLKS, | 801 | .num = NR_CLKS, |
759 | }; | 802 | }; |
@@ -856,6 +899,7 @@ static struct clk_gate *gxbb_clk_gates[] = { | |||
856 | &gxbb_emmc_a, | 899 | &gxbb_emmc_a, |
857 | &gxbb_emmc_b, | 900 | &gxbb_emmc_b, |
858 | &gxbb_emmc_c, | 901 | &gxbb_emmc_c, |
902 | &gxbb_sar_adc_clk, | ||
859 | }; | 903 | }; |
860 | 904 | ||
861 | static int gxbb_clkc_probe(struct platform_device *pdev) | 905 | static int gxbb_clkc_probe(struct platform_device *pdev) |
@@ -888,6 +932,10 @@ static int gxbb_clkc_probe(struct platform_device *pdev) | |||
888 | gxbb_mpeg_clk_sel.reg = clk_base + (u64)gxbb_mpeg_clk_sel.reg; | 932 | gxbb_mpeg_clk_sel.reg = clk_base + (u64)gxbb_mpeg_clk_sel.reg; |
889 | gxbb_mpeg_clk_div.reg = clk_base + (u64)gxbb_mpeg_clk_div.reg; | 933 | gxbb_mpeg_clk_div.reg = clk_base + (u64)gxbb_mpeg_clk_div.reg; |
890 | 934 | ||
935 | /* Populate the base address for the SAR ADC clks */ | ||
936 | gxbb_sar_adc_clk_sel.reg = clk_base + (u64)gxbb_sar_adc_clk_sel.reg; | ||
937 | gxbb_sar_adc_clk_div.reg = clk_base + (u64)gxbb_sar_adc_clk_div.reg; | ||
938 | |||
891 | /* Populate base address for gates */ | 939 | /* Populate base address for gates */ |
892 | for (i = 0; i < ARRAY_SIZE(gxbb_clk_gates); i++) | 940 | for (i = 0; i < ARRAY_SIZE(gxbb_clk_gates); i++) |
893 | gxbb_clk_gates[i]->reg = clk_base + | 941 | gxbb_clk_gates[i]->reg = clk_base + |
diff --git a/drivers/clk/meson/gxbb.h b/drivers/clk/meson/gxbb.h index 0252939ba58f..8ee2022ce5d5 100644 --- a/drivers/clk/meson/gxbb.h +++ b/drivers/clk/meson/gxbb.h | |||
@@ -191,7 +191,7 @@ | |||
191 | #define CLKID_PERIPHS 20 | 191 | #define CLKID_PERIPHS 20 |
192 | #define CLKID_SPICC 21 | 192 | #define CLKID_SPICC 21 |
193 | /* CLKID_I2C */ | 193 | /* CLKID_I2C */ |
194 | #define CLKID_SAR_ADC 23 | 194 | /* #define CLKID_SAR_ADC */ |
195 | #define CLKID_SMART_CARD 24 | 195 | #define CLKID_SMART_CARD 24 |
196 | #define CLKID_RNG0 25 | 196 | #define CLKID_RNG0 25 |
197 | #define CLKID_UART0 26 | 197 | #define CLKID_UART0 26 |
@@ -204,7 +204,7 @@ | |||
204 | #define CLKID_ASSIST_MISC 33 | 204 | #define CLKID_ASSIST_MISC 33 |
205 | /* CLKID_SPI */ | 205 | /* CLKID_SPI */ |
206 | #define CLKID_I2S_SPDIF 35 | 206 | #define CLKID_I2S_SPDIF 35 |
207 | #define CLKID_ETH 36 | 207 | /* CLKID_ETH */ |
208 | #define CLKID_DEMUX 37 | 208 | #define CLKID_DEMUX 37 |
209 | #define CLKID_AIU_GLUE 38 | 209 | #define CLKID_AIU_GLUE 38 |
210 | #define CLKID_IEC958 39 | 210 | #define CLKID_IEC958 39 |
@@ -231,13 +231,13 @@ | |||
231 | #define CLKID_AHB_DATA_BUS 60 | 231 | #define CLKID_AHB_DATA_BUS 60 |
232 | #define CLKID_AHB_CTRL_BUS 61 | 232 | #define CLKID_AHB_CTRL_BUS 61 |
233 | #define CLKID_HDMI_INTR_SYNC 62 | 233 | #define CLKID_HDMI_INTR_SYNC 62 |
234 | #define CLKID_HDMI_PCLK 63 | 234 | /* CLKID_HDMI_PCLK */ |
235 | /* CLKID_USB1_DDR_BRIDGE */ | 235 | /* CLKID_USB1_DDR_BRIDGE */ |
236 | /* CLKID_USB0_DDR_BRIDGE */ | 236 | /* CLKID_USB0_DDR_BRIDGE */ |
237 | #define CLKID_MMC_PCLK 66 | 237 | #define CLKID_MMC_PCLK 66 |
238 | #define CLKID_DVIN 67 | 238 | #define CLKID_DVIN 67 |
239 | #define CLKID_UART2 68 | 239 | #define CLKID_UART2 68 |
240 | #define CLKID_SANA 69 | 240 | /* #define CLKID_SANA */ |
241 | #define CLKID_VPU_INTR 70 | 241 | #define CLKID_VPU_INTR 70 |
242 | #define CLKID_SEC_AHB_AHB3_BRIDGE 71 | 242 | #define CLKID_SEC_AHB_AHB3_BRIDGE 71 |
243 | #define CLKID_CLK81_A53 72 | 243 | #define CLKID_CLK81_A53 72 |
@@ -245,7 +245,7 @@ | |||
245 | #define CLKID_VCLK2_VENCI1 74 | 245 | #define CLKID_VCLK2_VENCI1 74 |
246 | #define CLKID_VCLK2_VENCP0 75 | 246 | #define CLKID_VCLK2_VENCP0 75 |
247 | #define CLKID_VCLK2_VENCP1 76 | 247 | #define CLKID_VCLK2_VENCP1 76 |
248 | #define CLKID_GCLK_VENCI_INT0 77 | 248 | /* CLKID_GCLK_VENCI_INT0 */ |
249 | #define CLKID_GCLK_VENCI_INT 78 | 249 | #define CLKID_GCLK_VENCI_INT 78 |
250 | #define CLKID_DAC_CLK 79 | 250 | #define CLKID_DAC_CLK 79 |
251 | #define CLKID_AOCLK_GATE 80 | 251 | #define CLKID_AOCLK_GATE 80 |
@@ -265,8 +265,11 @@ | |||
265 | /* CLKID_SD_EMMC_A */ | 265 | /* CLKID_SD_EMMC_A */ |
266 | /* CLKID_SD_EMMC_B */ | 266 | /* CLKID_SD_EMMC_B */ |
267 | /* CLKID_SD_EMMC_C */ | 267 | /* CLKID_SD_EMMC_C */ |
268 | /* CLKID_SAR_ADC_CLK */ | ||
269 | /* CLKID_SAR_ADC_SEL */ | ||
270 | #define CLKID_SAR_ADC_DIV 99 | ||
268 | 271 | ||
269 | #define NR_CLKS 97 | 272 | #define NR_CLKS 100 |
270 | 273 | ||
271 | /* include the CLKIDs that have been made part of the stable DT binding */ | 274 | /* include the CLKIDs that have been made part of the stable DT binding */ |
272 | #include <dt-bindings/clock/gxbb-clkc.h> | 275 | #include <dt-bindings/clock/gxbb-clkc.h> |
diff --git a/drivers/clk/samsung/clk-exynos5433.c b/drivers/clk/samsung/clk-exynos5433.c index f096bd7df40c..3feaea8be40e 100644 --- a/drivers/clk/samsung/clk-exynos5433.c +++ b/drivers/clk/samsung/clk-exynos5433.c | |||
@@ -739,7 +739,9 @@ static const struct samsung_pll_rate_table exynos5443_pll_rates[] __initconst = | |||
739 | PLL_35XX_RATE(350000000U, 350, 6, 2), | 739 | PLL_35XX_RATE(350000000U, 350, 6, 2), |
740 | PLL_35XX_RATE(333000000U, 222, 4, 2), | 740 | PLL_35XX_RATE(333000000U, 222, 4, 2), |
741 | PLL_35XX_RATE(300000000U, 500, 5, 3), | 741 | PLL_35XX_RATE(300000000U, 500, 5, 3), |
742 | PLL_35XX_RATE(278000000U, 556, 6, 3), | ||
742 | PLL_35XX_RATE(266000000U, 532, 6, 3), | 743 | PLL_35XX_RATE(266000000U, 532, 6, 3), |
744 | PLL_35XX_RATE(250000000U, 500, 6, 3), | ||
743 | PLL_35XX_RATE(200000000U, 400, 6, 3), | 745 | PLL_35XX_RATE(200000000U, 400, 6, 3), |
744 | PLL_35XX_RATE(166000000U, 332, 6, 3), | 746 | PLL_35XX_RATE(166000000U, 332, 6, 3), |
745 | PLL_35XX_RATE(160000000U, 320, 6, 3), | 747 | PLL_35XX_RATE(160000000U, 320, 6, 3), |
@@ -2559,8 +2561,10 @@ static const struct samsung_fixed_rate_clock disp_fixed_clks[] __initconst = { | |||
2559 | FRATE(0, "phyclk_mipidphy1_bitclkdiv8_phy", NULL, 0, 188000000), | 2561 | FRATE(0, "phyclk_mipidphy1_bitclkdiv8_phy", NULL, 0, 188000000), |
2560 | FRATE(0, "phyclk_mipidphy1_rxclkesc0_phy", NULL, 0, 100000000), | 2562 | FRATE(0, "phyclk_mipidphy1_rxclkesc0_phy", NULL, 0, 100000000), |
2561 | /* PHY clocks from MIPI_DPHY0 */ | 2563 | /* PHY clocks from MIPI_DPHY0 */ |
2562 | FRATE(0, "phyclk_mipidphy0_bitclkdiv8_phy", NULL, 0, 188000000), | 2564 | FRATE(CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8_PHY, "phyclk_mipidphy0_bitclkdiv8_phy", |
2563 | FRATE(0, "phyclk_mipidphy0_rxclkesc0_phy", NULL, 0, 100000000), | 2565 | NULL, 0, 188000000), |
2566 | FRATE(CLK_PHYCLK_MIPIDPHY0_RXCLKESC0_PHY, "phyclk_mipidphy0_rxclkesc0_phy", | ||
2567 | NULL, 0, 100000000), | ||
2564 | /* PHY clocks from HDMI_PHY */ | 2568 | /* PHY clocks from HDMI_PHY */ |
2565 | FRATE(CLK_PHYCLK_HDMIPHY_TMDS_CLKO_PHY, "phyclk_hdmiphy_tmds_clko_phy", | 2569 | FRATE(CLK_PHYCLK_HDMIPHY_TMDS_CLKO_PHY, "phyclk_hdmiphy_tmds_clko_phy", |
2566 | NULL, 0, 300000000), | 2570 | NULL, 0, 300000000), |