Lines Matching +full:i2c +full:- +full:gate
1 // SPDX-License-Identifier: GPL-2.0-only
7 #include <linux/clk-provider.h>
16 #include "clk-id.h"
130 #define MASK(x) (BIT(x) - 1)
200 #define I2C(_name, _parents, _offset,\ macro
229 #define GATE(_name, _parent_name, \ macro
609 I2C("i2c1", mux_pllp_clkm, CLK_SOURCE_I2C1, 12, tegra_clk_i2c1),
610 I2C("i2c2", mux_pllp_clkm, CLK_SOURCE_I2C2, 54, tegra_clk_i2c2),
611 I2C("i2c3", mux_pllp_clkm, CLK_SOURCE_I2C3, 67, tegra_clk_i2c3),
612 I2C("i2c4", mux_pllp_clkm, CLK_SOURCE_I2C4, 103, tegra_clk_i2c4),
613 I2C("i2c5", mux_pllp_clkm, CLK_SOURCE_I2C5, 47, tegra_clk_i2c5),
614 I2C("i2c6", mux_pllp_clkm, CLK_SOURCE_I2C6, 166, tegra_clk_i2c6),
762 I2C("vii2c", mux_pllp_pllc_clkm, CLK_SOURCE_VI_I2C, 208, tegra_clk_vi_i2c),
773 GATE("rtc", "clk_32k", 4, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, tegra_clk_rtc, 0),
774 GATE("timer", "clk_m", 5, 0, tegra_clk_timer, CLK_IS_CRITICAL),
775 GATE("isp", "clk_m", 23, 0, tegra_clk_isp, 0),
776 GATE("vcp", "clk_m", 29, 0, tegra_clk_vcp, 0),
777 GATE("ahbdma", "hclk", 33, 0, tegra_clk_ahbdma, 0),
778 GATE("apbdma", "pclk", 34, 0, tegra_clk_apbdma, 0),
779 GATE("kbc", "clk_32k", 36, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, tegra_clk_kbc, 0),
780 GATE("fuse", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse, 0),
781 GATE("fuse_burn", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse_burn, 0),
782 GATE("kfuse", "clk_m", 40, TEGRA_PERIPH_ON_APB, tegra_clk_kfuse, 0),
783 GATE("apbif", "clk_m", 107, TEGRA_PERIPH_ON_APB, tegra_clk_apbif, 0),
784 GATE("hda2hdmi", "clk_m", 128, TEGRA_PERIPH_ON_APB, tegra_clk_hda2hdmi, 0),
785 GATE("bsea", "clk_m", 62, 0, tegra_clk_bsea, 0),
786 GATE("bsev", "clk_m", 63, 0, tegra_clk_bsev, 0),
787 GATE("mipi-cal", "clk72mhz", 56, 0, tegra_clk_mipi_cal, 0),
788 GATE("usbd", "clk_m", 22, 0, tegra_clk_usbd, 0),
789 GATE("usb2", "clk_m", 58, 0, tegra_clk_usb2, 0),
790 GATE("usb3", "clk_m", 59, 0, tegra_clk_usb3, 0),
791 GATE("csi", "pll_p_out3", 52, 0, tegra_clk_csi, 0),
792 GATE("afi", "mselect", 72, 0, tegra_clk_afi, 0),
793 GATE("csus", "clk_m", 92, TEGRA_PERIPH_NO_RESET, tegra_clk_csus, 0),
794 GATE("dds", "clk_m", 150, TEGRA_PERIPH_ON_APB, tegra_clk_dds, 0),
795 GATE("dp2", "clk_m", 152, TEGRA_PERIPH_ON_APB, tegra_clk_dp2, 0),
796 GATE("dtv", "clk_m", 79, TEGRA_PERIPH_ON_APB, tegra_clk_dtv, 0),
797 GATE("xusb_host", "xusb_host_src", 89, 0, tegra_clk_xusb_host, 0),
798 GATE("xusb_ss", "xusb_ss_src", 156, 0, tegra_clk_xusb_ss, 0),
799 GATE("xusb_dev", "xusb_dev_src", 95, 0, tegra_clk_xusb_dev, 0),
800 GATE("emc", "emc_mux", 57, 0, tegra_clk_emc, CLK_IS_CRITICAL),
801 GATE("sata_cold", "clk_m", 129, TEGRA_PERIPH_ON_APB, tegra_clk_sata_cold, 0),
802 GATE("ispa", "isp", 23, 0, tegra_clk_ispa, 0),
803 GATE("ispb", "isp", 3, 0, tegra_clk_ispb, 0),
804 GATE("vim2_clk", "clk_m", 11, 0, tegra_clk_vim2_clk, 0),
805 GATE("pcie", "clk_m", 70, 0, tegra_clk_pcie, 0),
806 GATE("gpu", "pll_ref", 184, 0, tegra_clk_gpu, 0),
807 GATE("pllg_ref", "pll_ref", 189, 0, tegra_clk_pll_g_ref, 0),
808 GATE("hsic_trk", "usb2_hsic_trk", 209, TEGRA_PERIPH_NO_RESET, tegra_clk_hsic_trk, 0),
809 GATE("usb2_trk", "usb2_hsic_trk", 210, TEGRA_PERIPH_NO_RESET, tegra_clk_usb2_trk, 0),
810 GATE("xusb_gate", "osc", 143, 0, tegra_clk_xusb_gate, 0),
811 GATE("pll_p_out_cpu", "pll_p", 223, 0, tegra_clk_pll_p_out_cpu, 0),
812 GATE("pll_p_out_adsp", "pll_p", 187, 0, tegra_clk_pll_p_out_adsp, 0),
813 GATE("apb2ape", "clk_m", 107, 0, tegra_clk_apb2ape, 0),
814 GATE("cec", "pclk", 136, 0, tegra_clk_cec, 0),
815 GATE("iqc1", "clk_m", 221, 0, tegra_clk_iqc1, 0),
816 GATE("iqc2", "clk_m", 220, 0, tegra_clk_iqc1, 0),
817 GATE("pll_a_out_adsp", "pll_a", 188, 0, tegra_clk_pll_a_out_adsp, 0),
818 GATE("pll_a_out0_out_adsp", "pll_a", 188, 0, tegra_clk_pll_a_out0_out_adsp, 0),
819 GATE("adsp", "aclk", 199, 0, tegra_clk_adsp, 0),
820 GATE("adsp_neon", "aclk", 218, 0, tegra_clk_adsp_neon, 0),
873 dt_clk = tegra_lookup_dt_id(data->clk_id, tegra_clks); in periph_clk_init()
877 bank = get_reg_bank(data->periph.gate.clk_num); in periph_clk_init()
881 data->periph.gate.regs = bank; in periph_clk_init()
899 dt_clk = tegra_lookup_dt_id(data->clk_id, tegra_clks); in gate_clk_init()
903 clk = tegra_clk_register_periph_gate(data->name, in gate_clk_init()
904 data->p.parent_name, data->periph.gate.flags, in gate_clk_init()
905 clk_base, data->flags, in gate_clk_init()
906 data->periph.gate.clk_num, in gate_clk_init()
924 dt_clk = tegra_lookup_dt_id(data->clk_id, tegra_clks); in div_clk_init()
928 clk = tegra_clk_register_divider(data->name, in div_clk_init()
929 data->p.parent_name, clk_base + data->offset, in div_clk_init()
930 data->flags, data->periph.divider.flags, in div_clk_init()
931 data->periph.divider.shift, in div_clk_init()
932 data->periph.divider.width, in div_clk_init()
933 data->periph.divider.frac_width, in div_clk_init()
934 data->periph.divider.lock); in div_clk_init()
961 dt_clk = tegra_lookup_dt_id(data->clk_id, tegra_clks); in init_pllp()
965 clk = tegra_clk_register_divider(data->div_name, "pll_p", in init_pllp()
966 clk_base + data->offset, 0, data->div_flags, in init_pllp()
967 data->div_shift, 8, 1, data->lock); in init_pllp()
968 clk = tegra_clk_register_pll_out(data->pll_out_name, in init_pllp()
969 data->div_name, clk_base + data->offset, in init_pllp()
970 data->rst_shift + 1, data->rst_shift, in init_pllp()
972 data->lock); in init_pllp()
981 * CPU, register a gate clock "pll_p_out_cpu" for this gating in init_pllp()
983 * re-parenting CPU off from "pll_p_out4" the PLLP branching to in init_pllp()