Skip to content

Commit c3f2801

Browse files
superna9999jbrun3t
authored andcommitted
clk: meson: migrate a1 clock drivers out of hw_onecell_data to drop NR_CLKS
The way hw_onecell_data is declared: struct clk_hw_onecell_data { unsigned int num; struct clk_hw *hws[]; }; makes it impossible to have the clk_hw table declared outside while using ARRAY_SIZE() to determine ".num" due to ".hws" being a flexible array member. Completely move out of hw_onecell_data and add a custom devm_of_clk_add_hw_provider() "get" callback to retrieve the clk_hw in order to finally get rid on the NR_CLKS define. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Dmitry Rokosov <[email protected]> Link: https://lore.kernel.org/r/20230607-topic-amlogic-upstream-clkid-public-migration-v2-4-38172d17c27a@linaro.org Signed-off-by: Jerome Brunet <[email protected]>
1 parent 7e1723f commit c3f2801

File tree

5 files changed

+183
-180
lines changed

5 files changed

+183
-180
lines changed

drivers/clk/meson/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ config COMMON_CLK_A1_PLL
108108
tristate "Amlogic A1 SoC PLL controller support"
109109
depends on ARM64
110110
select COMMON_CLK_MESON_REGMAP
111+
select COMMON_CLK_MESON_CLKC_UTILS
111112
select COMMON_CLK_MESON_PLL
112113
help
113114
Support for the PLL clock controller on Amlogic A113L based
@@ -119,6 +120,7 @@ config COMMON_CLK_A1_PERIPHERALS
119120
depends on ARM64
120121
select COMMON_CLK_MESON_DUALDIV
121122
select COMMON_CLK_MESON_REGMAP
123+
select COMMON_CLK_MESON_CLKC_UTILS
122124
help
123125
Support for the Peripherals clock controller on Amlogic A113L based
124126
device, A1 SoC Family. Say Y if you want A1 Peripherals clock

drivers/clk/meson/a1-peripherals.c

Lines changed: 162 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "a1-peripherals.h"
1414
#include "clk-dualdiv.h"
1515
#include "clk-regmap.h"
16+
#include "meson-clkc-utils.h"
1617

1718
static struct clk_regmap xtal_in = {
1819
.data = &(struct clk_regmap_gate_data){
@@ -1866,165 +1867,161 @@ static MESON_GATE(rom, AXI_CLK_EN, 11);
18661867
static MESON_GATE(prod_i2c, AXI_CLK_EN, 12);
18671868

18681869
/* Array of all clocks registered by this provider */
1869-
static struct clk_hw_onecell_data a1_periphs_clks = {
1870-
.hws = {
1871-
[CLKID_XTAL_IN] = &xtal_in.hw,
1872-
[CLKID_FIXPLL_IN] = &fixpll_in.hw,
1873-
[CLKID_USB_PHY_IN] = &usb_phy_in.hw,
1874-
[CLKID_USB_CTRL_IN] = &usb_ctrl_in.hw,
1875-
[CLKID_HIFIPLL_IN] = &hifipll_in.hw,
1876-
[CLKID_SYSPLL_IN] = &syspll_in.hw,
1877-
[CLKID_DDS_IN] = &dds_in.hw,
1878-
[CLKID_SYS] = &sys.hw,
1879-
[CLKID_CLKTREE] = &clktree.hw,
1880-
[CLKID_RESET_CTRL] = &reset_ctrl.hw,
1881-
[CLKID_ANALOG_CTRL] = &analog_ctrl.hw,
1882-
[CLKID_PWR_CTRL] = &pwr_ctrl.hw,
1883-
[CLKID_PAD_CTRL] = &pad_ctrl.hw,
1884-
[CLKID_SYS_CTRL] = &sys_ctrl.hw,
1885-
[CLKID_TEMP_SENSOR] = &temp_sensor.hw,
1886-
[CLKID_AM2AXI_DIV] = &am2axi_dev.hw,
1887-
[CLKID_SPICC_B] = &spicc_b.hw,
1888-
[CLKID_SPICC_A] = &spicc_a.hw,
1889-
[CLKID_MSR] = &msr.hw,
1890-
[CLKID_AUDIO] = &audio.hw,
1891-
[CLKID_JTAG_CTRL] = &jtag_ctrl.hw,
1892-
[CLKID_SARADC_EN] = &saradc_en.hw,
1893-
[CLKID_PWM_EF] = &pwm_ef.hw,
1894-
[CLKID_PWM_CD] = &pwm_cd.hw,
1895-
[CLKID_PWM_AB] = &pwm_ab.hw,
1896-
[CLKID_CEC] = &cec.hw,
1897-
[CLKID_I2C_S] = &i2c_s.hw,
1898-
[CLKID_IR_CTRL] = &ir_ctrl.hw,
1899-
[CLKID_I2C_M_D] = &i2c_m_d.hw,
1900-
[CLKID_I2C_M_C] = &i2c_m_c.hw,
1901-
[CLKID_I2C_M_B] = &i2c_m_b.hw,
1902-
[CLKID_I2C_M_A] = &i2c_m_a.hw,
1903-
[CLKID_ACODEC] = &acodec.hw,
1904-
[CLKID_OTP] = &otp.hw,
1905-
[CLKID_SD_EMMC_A] = &sd_emmc_a.hw,
1906-
[CLKID_USB_PHY] = &usb_phy.hw,
1907-
[CLKID_USB_CTRL] = &usb_ctrl.hw,
1908-
[CLKID_SYS_DSPB] = &sys_dspb.hw,
1909-
[CLKID_SYS_DSPA] = &sys_dspa.hw,
1910-
[CLKID_DMA] = &dma.hw,
1911-
[CLKID_IRQ_CTRL] = &irq_ctrl.hw,
1912-
[CLKID_NIC] = &nic.hw,
1913-
[CLKID_GIC] = &gic.hw,
1914-
[CLKID_UART_C] = &uart_c.hw,
1915-
[CLKID_UART_B] = &uart_b.hw,
1916-
[CLKID_UART_A] = &uart_a.hw,
1917-
[CLKID_SYS_PSRAM] = &sys_psram.hw,
1918-
[CLKID_RSA] = &rsa.hw,
1919-
[CLKID_CORESIGHT] = &coresight.hw,
1920-
[CLKID_AM2AXI_VAD] = &am2axi_vad.hw,
1921-
[CLKID_AUDIO_VAD] = &audio_vad.hw,
1922-
[CLKID_AXI_DMC] = &axi_dmc.hw,
1923-
[CLKID_AXI_PSRAM] = &axi_psram.hw,
1924-
[CLKID_RAMB] = &ramb.hw,
1925-
[CLKID_RAMA] = &rama.hw,
1926-
[CLKID_AXI_SPIFC] = &axi_spifc.hw,
1927-
[CLKID_AXI_NIC] = &axi_nic.hw,
1928-
[CLKID_AXI_DMA] = &axi_dma.hw,
1929-
[CLKID_CPU_CTRL] = &cpu_ctrl.hw,
1930-
[CLKID_ROM] = &rom.hw,
1931-
[CLKID_PROC_I2C] = &prod_i2c.hw,
1932-
[CLKID_DSPA_SEL] = &dspa_sel.hw,
1933-
[CLKID_DSPB_SEL] = &dspb_sel.hw,
1934-
[CLKID_DSPA_EN] = &dspa_en.hw,
1935-
[CLKID_DSPA_EN_NIC] = &dspa_en_nic.hw,
1936-
[CLKID_DSPB_EN] = &dspb_en.hw,
1937-
[CLKID_DSPB_EN_NIC] = &dspb_en_nic.hw,
1938-
[CLKID_RTC] = &rtc.hw,
1939-
[CLKID_CECA_32K] = &ceca_32k_out.hw,
1940-
[CLKID_CECB_32K] = &cecb_32k_out.hw,
1941-
[CLKID_24M] = &clk_24m.hw,
1942-
[CLKID_12M] = &clk_12m.hw,
1943-
[CLKID_FCLK_DIV2_DIVN] = &fclk_div2_divn.hw,
1944-
[CLKID_GEN] = &gen.hw,
1945-
[CLKID_SARADC_SEL] = &saradc_sel.hw,
1946-
[CLKID_SARADC] = &saradc.hw,
1947-
[CLKID_PWM_A] = &pwm_a.hw,
1948-
[CLKID_PWM_B] = &pwm_b.hw,
1949-
[CLKID_PWM_C] = &pwm_c.hw,
1950-
[CLKID_PWM_D] = &pwm_d.hw,
1951-
[CLKID_PWM_E] = &pwm_e.hw,
1952-
[CLKID_PWM_F] = &pwm_f.hw,
1953-
[CLKID_SPICC] = &spicc.hw,
1954-
[CLKID_TS] = &ts.hw,
1955-
[CLKID_SPIFC] = &spifc.hw,
1956-
[CLKID_USB_BUS] = &usb_bus.hw,
1957-
[CLKID_SD_EMMC] = &sd_emmc.hw,
1958-
[CLKID_PSRAM] = &psram.hw,
1959-
[CLKID_DMC] = &dmc.hw,
1960-
[CLKID_SYS_A_SEL] = &sys_a_sel.hw,
1961-
[CLKID_SYS_A_DIV] = &sys_a_div.hw,
1962-
[CLKID_SYS_A] = &sys_a.hw,
1963-
[CLKID_SYS_B_SEL] = &sys_b_sel.hw,
1964-
[CLKID_SYS_B_DIV] = &sys_b_div.hw,
1965-
[CLKID_SYS_B] = &sys_b.hw,
1966-
[CLKID_DSPA_A_SEL] = &dspa_a_sel.hw,
1967-
[CLKID_DSPA_A_DIV] = &dspa_a_div.hw,
1968-
[CLKID_DSPA_A] = &dspa_a.hw,
1969-
[CLKID_DSPA_B_SEL] = &dspa_b_sel.hw,
1970-
[CLKID_DSPA_B_DIV] = &dspa_b_div.hw,
1971-
[CLKID_DSPA_B] = &dspa_b.hw,
1972-
[CLKID_DSPB_A_SEL] = &dspb_a_sel.hw,
1973-
[CLKID_DSPB_A_DIV] = &dspb_a_div.hw,
1974-
[CLKID_DSPB_A] = &dspb_a.hw,
1975-
[CLKID_DSPB_B_SEL] = &dspb_b_sel.hw,
1976-
[CLKID_DSPB_B_DIV] = &dspb_b_div.hw,
1977-
[CLKID_DSPB_B] = &dspb_b.hw,
1978-
[CLKID_RTC_32K_IN] = &rtc_32k_in.hw,
1979-
[CLKID_RTC_32K_DIV] = &rtc_32k_div.hw,
1980-
[CLKID_RTC_32K_XTAL] = &rtc_32k_xtal.hw,
1981-
[CLKID_RTC_32K_SEL] = &rtc_32k_sel.hw,
1982-
[CLKID_CECB_32K_IN] = &cecb_32k_in.hw,
1983-
[CLKID_CECB_32K_DIV] = &cecb_32k_div.hw,
1984-
[CLKID_CECB_32K_SEL_PRE] = &cecb_32k_sel_pre.hw,
1985-
[CLKID_CECB_32K_SEL] = &cecb_32k_sel.hw,
1986-
[CLKID_CECA_32K_IN] = &ceca_32k_in.hw,
1987-
[CLKID_CECA_32K_DIV] = &ceca_32k_div.hw,
1988-
[CLKID_CECA_32K_SEL_PRE] = &ceca_32k_sel_pre.hw,
1989-
[CLKID_CECA_32K_SEL] = &ceca_32k_sel.hw,
1990-
[CLKID_DIV2_PRE] = &fclk_div2_divn_pre.hw,
1991-
[CLKID_24M_DIV2] = &clk_24m_div2.hw,
1992-
[CLKID_GEN_SEL] = &gen_sel.hw,
1993-
[CLKID_GEN_DIV] = &gen_div.hw,
1994-
[CLKID_SARADC_DIV] = &saradc_div.hw,
1995-
[CLKID_PWM_A_SEL] = &pwm_a_sel.hw,
1996-
[CLKID_PWM_A_DIV] = &pwm_a_div.hw,
1997-
[CLKID_PWM_B_SEL] = &pwm_b_sel.hw,
1998-
[CLKID_PWM_B_DIV] = &pwm_b_div.hw,
1999-
[CLKID_PWM_C_SEL] = &pwm_c_sel.hw,
2000-
[CLKID_PWM_C_DIV] = &pwm_c_div.hw,
2001-
[CLKID_PWM_D_SEL] = &pwm_d_sel.hw,
2002-
[CLKID_PWM_D_DIV] = &pwm_d_div.hw,
2003-
[CLKID_PWM_E_SEL] = &pwm_e_sel.hw,
2004-
[CLKID_PWM_E_DIV] = &pwm_e_div.hw,
2005-
[CLKID_PWM_F_SEL] = &pwm_f_sel.hw,
2006-
[CLKID_PWM_F_DIV] = &pwm_f_div.hw,
2007-
[CLKID_SPICC_SEL] = &spicc_sel.hw,
2008-
[CLKID_SPICC_DIV] = &spicc_div.hw,
2009-
[CLKID_SPICC_SEL2] = &spicc_sel2.hw,
2010-
[CLKID_TS_DIV] = &ts_div.hw,
2011-
[CLKID_SPIFC_SEL] = &spifc_sel.hw,
2012-
[CLKID_SPIFC_DIV] = &spifc_div.hw,
2013-
[CLKID_SPIFC_SEL2] = &spifc_sel2.hw,
2014-
[CLKID_USB_BUS_SEL] = &usb_bus_sel.hw,
2015-
[CLKID_USB_BUS_DIV] = &usb_bus_div.hw,
2016-
[CLKID_SD_EMMC_SEL] = &sd_emmc_sel.hw,
2017-
[CLKID_SD_EMMC_DIV] = &sd_emmc_div.hw,
2018-
[CLKID_SD_EMMC_SEL2] = &sd_emmc_sel2.hw,
2019-
[CLKID_PSRAM_SEL] = &psram_sel.hw,
2020-
[CLKID_PSRAM_DIV] = &psram_div.hw,
2021-
[CLKID_PSRAM_SEL2] = &psram_sel2.hw,
2022-
[CLKID_DMC_SEL] = &dmc_sel.hw,
2023-
[CLKID_DMC_DIV] = &dmc_div.hw,
2024-
[CLKID_DMC_SEL2] = &dmc_sel2.hw,
2025-
[NR_CLKS] = NULL,
2026-
},
2027-
.num = NR_CLKS,
1870+
static struct clk_hw *a1_periphs_hw_clks[] = {
1871+
[CLKID_XTAL_IN] = &xtal_in.hw,
1872+
[CLKID_FIXPLL_IN] = &fixpll_in.hw,
1873+
[CLKID_USB_PHY_IN] = &usb_phy_in.hw,
1874+
[CLKID_USB_CTRL_IN] = &usb_ctrl_in.hw,
1875+
[CLKID_HIFIPLL_IN] = &hifipll_in.hw,
1876+
[CLKID_SYSPLL_IN] = &syspll_in.hw,
1877+
[CLKID_DDS_IN] = &dds_in.hw,
1878+
[CLKID_SYS] = &sys.hw,
1879+
[CLKID_CLKTREE] = &clktree.hw,
1880+
[CLKID_RESET_CTRL] = &reset_ctrl.hw,
1881+
[CLKID_ANALOG_CTRL] = &analog_ctrl.hw,
1882+
[CLKID_PWR_CTRL] = &pwr_ctrl.hw,
1883+
[CLKID_PAD_CTRL] = &pad_ctrl.hw,
1884+
[CLKID_SYS_CTRL] = &sys_ctrl.hw,
1885+
[CLKID_TEMP_SENSOR] = &temp_sensor.hw,
1886+
[CLKID_AM2AXI_DIV] = &am2axi_dev.hw,
1887+
[CLKID_SPICC_B] = &spicc_b.hw,
1888+
[CLKID_SPICC_A] = &spicc_a.hw,
1889+
[CLKID_MSR] = &msr.hw,
1890+
[CLKID_AUDIO] = &audio.hw,
1891+
[CLKID_JTAG_CTRL] = &jtag_ctrl.hw,
1892+
[CLKID_SARADC_EN] = &saradc_en.hw,
1893+
[CLKID_PWM_EF] = &pwm_ef.hw,
1894+
[CLKID_PWM_CD] = &pwm_cd.hw,
1895+
[CLKID_PWM_AB] = &pwm_ab.hw,
1896+
[CLKID_CEC] = &cec.hw,
1897+
[CLKID_I2C_S] = &i2c_s.hw,
1898+
[CLKID_IR_CTRL] = &ir_ctrl.hw,
1899+
[CLKID_I2C_M_D] = &i2c_m_d.hw,
1900+
[CLKID_I2C_M_C] = &i2c_m_c.hw,
1901+
[CLKID_I2C_M_B] = &i2c_m_b.hw,
1902+
[CLKID_I2C_M_A] = &i2c_m_a.hw,
1903+
[CLKID_ACODEC] = &acodec.hw,
1904+
[CLKID_OTP] = &otp.hw,
1905+
[CLKID_SD_EMMC_A] = &sd_emmc_a.hw,
1906+
[CLKID_USB_PHY] = &usb_phy.hw,
1907+
[CLKID_USB_CTRL] = &usb_ctrl.hw,
1908+
[CLKID_SYS_DSPB] = &sys_dspb.hw,
1909+
[CLKID_SYS_DSPA] = &sys_dspa.hw,
1910+
[CLKID_DMA] = &dma.hw,
1911+
[CLKID_IRQ_CTRL] = &irq_ctrl.hw,
1912+
[CLKID_NIC] = &nic.hw,
1913+
[CLKID_GIC] = &gic.hw,
1914+
[CLKID_UART_C] = &uart_c.hw,
1915+
[CLKID_UART_B] = &uart_b.hw,
1916+
[CLKID_UART_A] = &uart_a.hw,
1917+
[CLKID_SYS_PSRAM] = &sys_psram.hw,
1918+
[CLKID_RSA] = &rsa.hw,
1919+
[CLKID_CORESIGHT] = &coresight.hw,
1920+
[CLKID_AM2AXI_VAD] = &am2axi_vad.hw,
1921+
[CLKID_AUDIO_VAD] = &audio_vad.hw,
1922+
[CLKID_AXI_DMC] = &axi_dmc.hw,
1923+
[CLKID_AXI_PSRAM] = &axi_psram.hw,
1924+
[CLKID_RAMB] = &ramb.hw,
1925+
[CLKID_RAMA] = &rama.hw,
1926+
[CLKID_AXI_SPIFC] = &axi_spifc.hw,
1927+
[CLKID_AXI_NIC] = &axi_nic.hw,
1928+
[CLKID_AXI_DMA] = &axi_dma.hw,
1929+
[CLKID_CPU_CTRL] = &cpu_ctrl.hw,
1930+
[CLKID_ROM] = &rom.hw,
1931+
[CLKID_PROC_I2C] = &prod_i2c.hw,
1932+
[CLKID_DSPA_SEL] = &dspa_sel.hw,
1933+
[CLKID_DSPB_SEL] = &dspb_sel.hw,
1934+
[CLKID_DSPA_EN] = &dspa_en.hw,
1935+
[CLKID_DSPA_EN_NIC] = &dspa_en_nic.hw,
1936+
[CLKID_DSPB_EN] = &dspb_en.hw,
1937+
[CLKID_DSPB_EN_NIC] = &dspb_en_nic.hw,
1938+
[CLKID_RTC] = &rtc.hw,
1939+
[CLKID_CECA_32K] = &ceca_32k_out.hw,
1940+
[CLKID_CECB_32K] = &cecb_32k_out.hw,
1941+
[CLKID_24M] = &clk_24m.hw,
1942+
[CLKID_12M] = &clk_12m.hw,
1943+
[CLKID_FCLK_DIV2_DIVN] = &fclk_div2_divn.hw,
1944+
[CLKID_GEN] = &gen.hw,
1945+
[CLKID_SARADC_SEL] = &saradc_sel.hw,
1946+
[CLKID_SARADC] = &saradc.hw,
1947+
[CLKID_PWM_A] = &pwm_a.hw,
1948+
[CLKID_PWM_B] = &pwm_b.hw,
1949+
[CLKID_PWM_C] = &pwm_c.hw,
1950+
[CLKID_PWM_D] = &pwm_d.hw,
1951+
[CLKID_PWM_E] = &pwm_e.hw,
1952+
[CLKID_PWM_F] = &pwm_f.hw,
1953+
[CLKID_SPICC] = &spicc.hw,
1954+
[CLKID_TS] = &ts.hw,
1955+
[CLKID_SPIFC] = &spifc.hw,
1956+
[CLKID_USB_BUS] = &usb_bus.hw,
1957+
[CLKID_SD_EMMC] = &sd_emmc.hw,
1958+
[CLKID_PSRAM] = &psram.hw,
1959+
[CLKID_DMC] = &dmc.hw,
1960+
[CLKID_SYS_A_SEL] = &sys_a_sel.hw,
1961+
[CLKID_SYS_A_DIV] = &sys_a_div.hw,
1962+
[CLKID_SYS_A] = &sys_a.hw,
1963+
[CLKID_SYS_B_SEL] = &sys_b_sel.hw,
1964+
[CLKID_SYS_B_DIV] = &sys_b_div.hw,
1965+
[CLKID_SYS_B] = &sys_b.hw,
1966+
[CLKID_DSPA_A_SEL] = &dspa_a_sel.hw,
1967+
[CLKID_DSPA_A_DIV] = &dspa_a_div.hw,
1968+
[CLKID_DSPA_A] = &dspa_a.hw,
1969+
[CLKID_DSPA_B_SEL] = &dspa_b_sel.hw,
1970+
[CLKID_DSPA_B_DIV] = &dspa_b_div.hw,
1971+
[CLKID_DSPA_B] = &dspa_b.hw,
1972+
[CLKID_DSPB_A_SEL] = &dspb_a_sel.hw,
1973+
[CLKID_DSPB_A_DIV] = &dspb_a_div.hw,
1974+
[CLKID_DSPB_A] = &dspb_a.hw,
1975+
[CLKID_DSPB_B_SEL] = &dspb_b_sel.hw,
1976+
[CLKID_DSPB_B_DIV] = &dspb_b_div.hw,
1977+
[CLKID_DSPB_B] = &dspb_b.hw,
1978+
[CLKID_RTC_32K_IN] = &rtc_32k_in.hw,
1979+
[CLKID_RTC_32K_DIV] = &rtc_32k_div.hw,
1980+
[CLKID_RTC_32K_XTAL] = &rtc_32k_xtal.hw,
1981+
[CLKID_RTC_32K_SEL] = &rtc_32k_sel.hw,
1982+
[CLKID_CECB_32K_IN] = &cecb_32k_in.hw,
1983+
[CLKID_CECB_32K_DIV] = &cecb_32k_div.hw,
1984+
[CLKID_CECB_32K_SEL_PRE] = &cecb_32k_sel_pre.hw,
1985+
[CLKID_CECB_32K_SEL] = &cecb_32k_sel.hw,
1986+
[CLKID_CECA_32K_IN] = &ceca_32k_in.hw,
1987+
[CLKID_CECA_32K_DIV] = &ceca_32k_div.hw,
1988+
[CLKID_CECA_32K_SEL_PRE] = &ceca_32k_sel_pre.hw,
1989+
[CLKID_CECA_32K_SEL] = &ceca_32k_sel.hw,
1990+
[CLKID_DIV2_PRE] = &fclk_div2_divn_pre.hw,
1991+
[CLKID_24M_DIV2] = &clk_24m_div2.hw,
1992+
[CLKID_GEN_SEL] = &gen_sel.hw,
1993+
[CLKID_GEN_DIV] = &gen_div.hw,
1994+
[CLKID_SARADC_DIV] = &saradc_div.hw,
1995+
[CLKID_PWM_A_SEL] = &pwm_a_sel.hw,
1996+
[CLKID_PWM_A_DIV] = &pwm_a_div.hw,
1997+
[CLKID_PWM_B_SEL] = &pwm_b_sel.hw,
1998+
[CLKID_PWM_B_DIV] = &pwm_b_div.hw,
1999+
[CLKID_PWM_C_SEL] = &pwm_c_sel.hw,
2000+
[CLKID_PWM_C_DIV] = &pwm_c_div.hw,
2001+
[CLKID_PWM_D_SEL] = &pwm_d_sel.hw,
2002+
[CLKID_PWM_D_DIV] = &pwm_d_div.hw,
2003+
[CLKID_PWM_E_SEL] = &pwm_e_sel.hw,
2004+
[CLKID_PWM_E_DIV] = &pwm_e_div.hw,
2005+
[CLKID_PWM_F_SEL] = &pwm_f_sel.hw,
2006+
[CLKID_PWM_F_DIV] = &pwm_f_div.hw,
2007+
[CLKID_SPICC_SEL] = &spicc_sel.hw,
2008+
[CLKID_SPICC_DIV] = &spicc_div.hw,
2009+
[CLKID_SPICC_SEL2] = &spicc_sel2.hw,
2010+
[CLKID_TS_DIV] = &ts_div.hw,
2011+
[CLKID_SPIFC_SEL] = &spifc_sel.hw,
2012+
[CLKID_SPIFC_DIV] = &spifc_div.hw,
2013+
[CLKID_SPIFC_SEL2] = &spifc_sel2.hw,
2014+
[CLKID_USB_BUS_SEL] = &usb_bus_sel.hw,
2015+
[CLKID_USB_BUS_DIV] = &usb_bus_div.hw,
2016+
[CLKID_SD_EMMC_SEL] = &sd_emmc_sel.hw,
2017+
[CLKID_SD_EMMC_DIV] = &sd_emmc_div.hw,
2018+
[CLKID_SD_EMMC_SEL2] = &sd_emmc_sel2.hw,
2019+
[CLKID_PSRAM_SEL] = &psram_sel.hw,
2020+
[CLKID_PSRAM_DIV] = &psram_div.hw,
2021+
[CLKID_PSRAM_SEL2] = &psram_sel2.hw,
2022+
[CLKID_DMC_SEL] = &dmc_sel.hw,
2023+
[CLKID_DMC_DIV] = &dmc_div.hw,
2024+
[CLKID_DMC_SEL2] = &dmc_sel2.hw,
20282025
};
20292026

20302027
/* Convenience table to populate regmap in .probe */
@@ -2190,6 +2187,11 @@ static struct regmap_config a1_periphs_regmap_cfg = {
21902187
.reg_stride = 4,
21912188
};
21922189

2190+
static struct meson_clk_hw_data a1_periphs_clks = {
2191+
.hws = a1_periphs_hw_clks,
2192+
.num = ARRAY_SIZE(a1_periphs_hw_clks),
2193+
};
2194+
21932195
static int meson_a1_periphs_probe(struct platform_device *pdev)
21942196
{
21952197
struct device *dev = &pdev->dev;
@@ -2219,8 +2221,7 @@ static int meson_a1_periphs_probe(struct platform_device *pdev)
22192221
clkid);
22202222
}
22212223

2222-
return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get,
2223-
&a1_periphs_clks);
2224+
return devm_of_clk_add_hw_provider(dev, meson_clk_hw_get, &a1_periphs_clks);
22242225
}
22252226

22262227
static const struct of_device_id a1_periphs_clkc_match_table[] = {

drivers/clk/meson/a1-peripherals.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,5 @@
108108
#define CLKID_DMC_SEL 151
109109
#define CLKID_DMC_DIV 152
110110
#define CLKID_DMC_SEL2 153
111-
#define NR_CLKS 154
112111

113112
#endif /* __A1_PERIPHERALS_H */

0 commit comments

Comments
 (0)