* [PATCH 0/4] ARM: OMAP5 and DRA7 clock data @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-omap, paul, tony, mturquette, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss Hi, These patches provide clock data for TI OMAP5 and DRA7 SoCs. Clock data is mostly in device tree format, and only a small init portion is needed under mach-omap2. These patches come on top of the base OMAP4 clock data conversion I posted earlier this week: http://comments.gmane.org/gmane.linux.ports.arm.omap/100117 These patches need the basic SoC boot support before they are of any use. Boot tested with private tree and compile tested against 3.10-rc6. -Tero ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 0/4] ARM: OMAP5 and DRA7 clock data @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-arm-kernel Hi, These patches provide clock data for TI OMAP5 and DRA7 SoCs. Clock data is mostly in device tree format, and only a small init portion is needed under mach-omap2. These patches come on top of the base OMAP4 clock data conversion I posted earlier this week: http://comments.gmane.org/gmane.linux.ports.arm.omap/100117 These patches need the basic SoC boot support before they are of any use. Boot tested with private tree and compile tested against 3.10-rc6. -Tero ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/4] ARM: dts: omap5 clock data 2013-06-27 8:38 ` Tero Kristo @ 2013-06-27 8:38 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-omap, paul, tony, mturquette, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss This patch creates the clock node mapping for OMAP5, and includes it to the base omap5.dtsi file. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/boot/dts/omap5-clocks.dtsi | 1442 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 2 + 2 files changed, 1444 insertions(+) create mode 100644 arch/arm/boot/dts/omap5-clocks.dtsi diff --git a/arch/arm/boot/dts/omap5-clocks.dtsi b/arch/arm/boot/dts/omap5-clocks.dtsi new file mode 100644 index 0000000..5767195 --- /dev/null +++ b/arch/arm/boot/dts/omap5-clocks.dtsi @@ -0,0 +1,1442 @@ +/* + * Device Tree Source for OMAP5 clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* Root clocks */ +pad_clks_src_ck: pad_clks_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +pad_clks_ck: pad_clks_ck@4a004108 { + compatible = "gate-clock"; + reg = <0x4a004108 0x4>; + bit-shift = <8>; + clocks = <&pad_clks_src_ck>; + #clock-cells = <0>; +}; + +secure_32k_clk_src_ck: secure_32k_clk_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +slimbus_src_clk: slimbus_src_clk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +slimbus_clk: slimbus_clk@4a004108 { + compatible = "gate-clock"; + reg = <0x4a004108 0x4>; + bit-shift = <10>; + clocks = <&slimbus_src_clk>; + #clock-cells = <0>; +}; + +sys_32k_ck: sys_32k_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +virt_12000000_ck: virt_12000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +virt_13000000_ck: virt_13000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <13000000>; +}; + +virt_16800000_ck: virt_16800000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <16800000>; +}; + +virt_19200000_ck: virt_19200000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <19200000>; +}; + +virt_26000000_ck: virt_26000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <26000000>; +}; + +virt_27000000_ck: virt_27000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <27000000>; +}; + +virt_38400000_ck: virt_38400000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <38400000>; +}; + +sys_clkin: sys_clkin@4ae06110 { + compatible = "mux-clock"; + clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>; + #clock-cells = <0>; + reg = <0x4ae06110 0x4>; + bit-mask = <0x7>; + index-starts-at-one; +}; + +xclk60mhsp1_ck: xclk60mhsp1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <60000000>; +}; + +xclk60mhsp2_ck: xclk60mhsp2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <60000000>; +}; + +/* Module clocks and DPLL outputs */ +abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux@4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_clk_mux: abe_dpll_clk_mux@4ae0610c { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae0610c 0x4>; + bit-mask = <0x1>; +}; + +/* DPLL_ABE */ +dpll_abe_ck: dpll_abe_ck { + clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>; + #clock-cells = <0>; + reg = <0x4a0041e0 0x4>, <0x4a0041e4 0x4>, <0x4a0041e8 0x4>, <0x4a0041ec 0x4>; + ti,clk-bypass = <&abe_dpll_bypass_clk_mux>; + ti,clk-ref = <&abe_dpll_clk_mux>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-regm4xen; +}; + +dpll_abe_x2_ck: dpll_abe_x2_ck { + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_abe_m2x2_ck: dpll_abe_m2x2_ck@4a0041f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +abe_24m_fclk: abe_24m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; +}; + +abe_clk: abe_clk@4a004108 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a004108 0x4>; + bit-mask = <0x3>; + index-power-of-two; +}; + +abe_iclk: abe_iclk { + compatible = "fixed-factor-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +abe_lp_clk_div: abe_lp_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +dpll_abe_m3x2_ck: dpll_abe_m3x2_ck@4a0041f4 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041f4 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_CORE */ +dpll_core_ck: dpll_core_ck { + clocks = <&sys_clkin>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a004120 0x4>, <0x4a004124 0x4>, <0x4a004128 0x4>, <0x4a00412c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-core; +}; + +dpll_core_x2_ck: dpll_core_x2_ck { + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_core_h21x2_ck: dpll_core_h21x2_ck@4a004150 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004150 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +c2c_fclk: c2c_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h21x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +c2c_iclk: c2c_iclk { + compatible = "fixed-factor-clock"; + clocks = <&c2c_fclk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +custefuse_sys_gfclk_div: custefuse_sys_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +dpll_core_h11x2_ck: dpll_core_h11x2_ck@4a004138 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004138 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h12x2_ck: dpll_core_h12x2_ck@4a00413c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00413c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h13x2_ck: dpll_core_h13x2_ck@4a004140 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004140 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h14x2_ck: dpll_core_h14x2_ck@4a004144 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004144 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h22x2_ck: dpll_core_h22x2_ck@4a004154 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004154 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h23x2_ck: dpll_core_h23x2_ck@4a004158 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h24x2_ck: dpll_core_h24x2_ck@4a00415c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00415c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_m2_ck: dpll_core_m2_ck@4a004130 { + compatible = "divider-clock"; + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + reg = <0x4a004130 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_m3x2_ck: dpll_core_m3x2_ck@4a004134 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004134 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +iva_dpll_hs_clk_div: iva_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_IVA */ +dpll_iva_ck: dpll_iva_ck { + clocks = <&sys_clkin>, <&iva_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a0041a0 0x4>, <0x4a0041a4 0x4>, <0x4a0041a8 0x4>, <0x4a0041ac 0x4>; + ti,clk-bypass = <&iva_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_iva_x2_ck: dpll_iva_x2_ck { + clocks = <&dpll_iva_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_iva_h11x2_ck: dpll_iva_h11x2_ck@4a0041b8 { + compatible = "divider-clock"; + clocks = <&dpll_iva_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041b8 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_iva_h12x2_ck: dpll_iva_h12x2_ck@4a0041bc { + compatible = "divider-clock"; + clocks = <&dpll_iva_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041bc 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_MPU */ +dpll_mpu_ck: dpll_mpu_ck { + clocks = <&sys_clkin>, <&mpu_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a004160 0x4>, <0x4a004164 0x4>, <0x4a004168 0x4>, <0x4a00416c 0x4>; + ti,clk-bypass = <&mpu_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_mpu_m2_ck: dpll_mpu_m2_ck@4a004170 { + compatible = "divider-clock"; + clocks = <&dpll_mpu_ck>; + #clock-cells = <0>; + reg = <0x4a004170 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +per_dpll_hs_clk_div: per_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +/* DPLL_PER */ +dpll_per_ck: dpll_per_ck { + clocks = <&sys_clkin>, <&per_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008140 0x4>, <0x4a008144 0x4>, <0x4a008148 0x4>, <0x4a00814c 0x4>; + ti,clk-bypass = <&per_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_per_x2_ck: dpll_per_x2_ck { + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_per_h11x2_ck: dpll_per_h11x2_ck@4a008158 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h12x2_ck: dpll_per_h12x2_ck@4a00815c { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00815c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h14x2_ck: dpll_per_h14x2_ck@4a008164 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008164 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2_ck: dpll_per_m2_ck@4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2x2_ck: dpll_per_m2x2_ck@4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m3x2_ck: dpll_per_m3x2_ck@4a008154 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008154 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_UNIPRO1 */ +dpll_unipro1_ck: dpll_unipro1_ck { + clocks = <&sys_clkin>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&sys_clkin>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_unipro1_clkdcoldo: dpll_unipro1_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_unipro1_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_unipro1_m2_ck: dpll_unipro1_m2_ck@4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_unipro1_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_UNIPRO2 */ +dpll_unipro2_ck: dpll_unipro2_ck { + clocks = <&sys_clkin>; + #clock-cells = <0>; + reg = <0x4a0081c0 0x4>, <0x4a0081c4 0x4>, <0x4a0081c8 0x4>, <0x4a0081cc 0x4>; + ti,clk-bypass = <&sys_clkin>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_unipro2_clkdcoldo: dpll_unipro2_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_unipro2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_unipro2_m2_ck: dpll_unipro2_m2_ck@4a0081d0 { + compatible = "divider-clock"; + clocks = <&dpll_unipro2_ck>; + #clock-cells = <0>; + reg = <0x4a0081d0 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +usb_dpll_hs_clk_div: usb_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; +}; + +/* DPLL_USB */ +dpll_usb_ck: dpll_usb_ck { + clocks = <&sys_clkin>, <&usb_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008180 0x4>, <0x4a008184 0x4>, <0x4a008188 0x4>, <0x4a00818c 0x4>; + ti,clk-bypass = <&usb_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + ti,clkdm-name = "l3init_clkdm"; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-j-type; +}; + +dpll_usb_clkdcoldo: dpll_usb_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_usb_m2_ck: dpll_usb_m2_ck@4a008190 { + compatible = "divider-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + reg = <0x4a008190 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dss_syc_gfclk_div: dss_syc_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +func_128m_clk: func_128m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +func_12m_fclk: func_12m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +func_24m_clk: func_24m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_48m_fclk: func_48m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_96m_fclk: func_96m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +l3_iclk_div: l3_iclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +gpu_l3_iclk: gpu_l3_iclk { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l3init_60m_fclk: l3init_60m_fclk@4a008104 { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4a008104 0x4>; + bit-mask = <0x1>; + table = < 1 0 >, < 8 1 >; +}; + +wkupaon_iclk_mux: wkupaon_iclk_mux@4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&abe_lp_clk_div>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +l3instr_ts_gclk_div: l3instr_ts_gclk_div { + compatible = "fixed-factor-clock"; + clocks = <&wkupaon_iclk_mux>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l4_root_clk_div: l4_root_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* Leaf clocks controlled by modules */ +dss_32khz_clk: dss_32khz_clk@4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <11>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +dss_48mhz_clk: dss_48mhz_clk@4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <9>; + clocks = <&func_48m_fclk>; + #clock-cells = <0>; +}; + +dss_dss_clk: dss_dss_clk@4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <8>; + clocks = <&dpll_per_h12x2_ck>; + #clock-cells = <0>; +}; + +dss_sys_clk: dss_sys_clk@4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <10>; + clocks = <&dss_syc_gfclk_div>; + #clock-cells = <0>; +}; + +gpio1_dbclk: gpio1_dbclk@4ae07938 { + compatible = "gate-clock"; + reg = <0x4ae07938 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio2_dbclk: gpio2_dbclk@4a009060 { + compatible = "gate-clock"; + reg = <0x4a009060 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio3_dbclk: gpio3_dbclk@4a009068 { + compatible = "gate-clock"; + reg = <0x4a009068 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio4_dbclk: gpio4_dbclk@4a009070 { + compatible = "gate-clock"; + reg = <0x4a009070 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio5_dbclk: gpio5_dbclk@4a009078 { + compatible = "gate-clock"; + reg = <0x4a009078 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio6_dbclk: gpio6_dbclk@4a009080 { + compatible = "gate-clock"; + reg = <0x4a009080 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio7_dbclk: gpio7_dbclk@4a009110 { + compatible = "gate-clock"; + reg = <0x4a009110 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio8_dbclk: gpio8_dbclk@4a009118 { + compatible = "gate-clock"; + reg = <0x4a009118 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +iss_ctrlclk: iss_ctrlclk@4a009320 { + compatible = "gate-clock"; + reg = <0x4a009320 0x4>; + bit-shift = <8>; + clocks = <&func_96m_fclk>; + #clock-cells = <0>; +}; + +lli_txphy_clk: lli_txphy_clk@4a008f20 { + compatible = "gate-clock"; + reg = <0x4a008f20 0x4>; + bit-shift = <8>; + clocks = <&dpll_unipro1_clkdcoldo>; + #clock-cells = <0>; +}; + +lli_txphy_ls_clk: lli_txphy_ls_clk@4a008f20 { + compatible = "gate-clock"; + reg = <0x4a008f20 0x4>; + bit-shift = <9>; + clocks = <&dpll_unipro1_m2_ck>; + #clock-cells = <0>; +}; + +mmc1_32khz_clk: mmc1_32khz_clk@4a009628 { + compatible = "gate-clock"; + reg = <0x4a009628 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +sata_ref_clk: sata_ref_clk@4a009688 { + compatible = "gate-clock"; + reg = <0x4a009688 0x4>; + bit-shift = <8>; + clocks = <&sys_clkin>; + #clock-cells = <0>; +}; + +slimbus1_slimbus_clk: slimbus1_slimbus_clk@4a004560 { + compatible = "gate-clock"; + reg = <0x4a004560 0x4>; + bit-shift = <11>; + clocks = <&slimbus_clk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p1_clk: usb_host_hs_hsic480m_p1_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <13>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p2_clk: usb_host_hs_hsic480m_p2_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <14>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p3_clk: usb_host_hs_hsic480m_p3_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <7>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p1_clk: usb_host_hs_hsic60m_p1_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <11>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p2_clk: usb_host_hs_hsic60m_p2_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <12>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p3_clk: usb_host_hs_hsic60m_p3_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <6>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +utmi_p1_gfclk: utmi_p1_gfclk@4a009658 { + compatible = "mux-clock"; + clocks = <&l3init_60m_fclk>, <&xclk60mhsp1_ck>; + #clock-cells = <0>; + reg = <0x4a009658 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +usb_host_hs_utmi_p1_clk: usb_host_hs_utmi_p1_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <8>; + clocks = <&utmi_p1_gfclk>; + #clock-cells = <0>; +}; + +utmi_p2_gfclk: utmi_p2_gfclk@4a009658 { + compatible = "mux-clock"; + clocks = <&l3init_60m_fclk>, <&xclk60mhsp2_ck>; + #clock-cells = <0>; + reg = <0x4a009658 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +usb_host_hs_utmi_p2_clk: usb_host_hs_utmi_p2_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <9>; + clocks = <&utmi_p2_gfclk>; + #clock-cells = <0>; +}; + +usb_host_hs_utmi_p3_clk: usb_host_hs_utmi_p3_clk@4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <10>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_otg_ss_refclk960m: usb_otg_ss_refclk960m@4a0096f0 { + compatible = "gate-clock"; + reg = <0x4a0096f0 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_phy_cm_clk32k: usb_phy_cm_clk32k@4a008640 { + compatible = "gate-clock"; + reg = <0x4a008640 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch0_clk: usb_tll_hs_usb_ch0_clk@4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <8>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch1_clk: usb_tll_hs_usb_ch1_clk@4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <9>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch2_clk: usb_tll_hs_usb_ch2_clk@4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <10>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +/* Remaining optional clocks */ +aess_fclk: aess_fclk@4a004528 { + compatible = "divider-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + reg = <0x4a004528 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +dmic_sync_mux_ck: dmic_sync_mux_ck@4a004538 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004538 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +dmic_gfclk: dmic_gfclk@4a004538 { + compatible = "mux-clock"; + clocks = <&dmic_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004538 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +fdif_fclk: fdif_fclk@4a009328 { + compatible = "divider-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gpu_core_gclk_mux: gpu_core_gclk_mux@4a009520 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>; + #clock-cells = <0>; + reg = <0x4a009520 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gpu_hyd_gclk_mux: gpu_hyd_gclk_mux@4a009520 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>; + #clock-cells = <0>; + reg = <0x4a009520 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +hsi_fclk: hsi_fclk@4a009638 { + compatible = "divider-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009638 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mcasp_sync_mux_ck: mcasp_sync_mux_ck@4a004540 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004540 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcasp_gfclk: mcasp_gfclk@4a004540 { + compatible = "mux-clock"; + clocks = <&mcasp_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004540 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp1_sync_mux_ck: mcbsp1_sync_mux_ck@4a004548 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004548 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp1_gfclk: mcbsp1_gfclk@4a004548 { + compatible = "mux-clock"; + clocks = <&mcbsp1_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004548 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp2_sync_mux_ck: mcbsp2_sync_mux_ck@4a004550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004550 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp2_gfclk: mcbsp2_gfclk@4a004550 { + compatible = "mux-clock"; + clocks = <&mcbsp2_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004550 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp3_sync_mux_ck: mcbsp3_sync_mux_ck@4a004558 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004558 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp3_gfclk: mcbsp3_gfclk@4a004558 { + compatible = "mux-clock"; + clocks = <&mcbsp3_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004558 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mmc1_fclk_mux: mmc1_fclk_mux@4a009628 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009628 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc1_fclk: mmc1_fclk@4a009628 { + compatible = "divider-clock"; + clocks = <&mmc1_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009628 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +mmc2_fclk_mux: mmc2_fclk_mux@4a009630 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009630 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc2_fclk: mmc2_fclk@4a009630 { + compatible = "divider-clock"; + clocks = <&mmc2_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009630 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +timer10_gfclk_mux: timer10_gfclk_mux@4a009028 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009028 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer11_gfclk_mux: timer11_gfclk_mux@4a009030 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009030 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer1_gfclk_mux: timer1_gfclk_mux@4ae07940 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae07940 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer2_gfclk_mux: timer2_gfclk_mux@4a009038 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009038 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer3_gfclk_mux: timer3_gfclk_mux@4a009040 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009040 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer4_gfclk_mux: timer4_gfclk_mux@4a009048 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009048 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer5_gfclk_mux: timer5_gfclk_mux@4a004568 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004568 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer6_gfclk_mux: timer6_gfclk_mux@4a004570 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004570 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer7_gfclk_mux: timer7_gfclk_mux@4a004578 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004578 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer8_gfclk_mux: timer8_gfclk_mux@4a004580 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004580 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer9_gfclk_mux: timer9_gfclk_mux@4a009050 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009050 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +/* SCRM aux clk nodes */ +auxclk0_src_mux_ck: auxclk0_src_mux_ck@4ae0a310 { + compatible = "mux-clock"; + reg = <0x4ae0a310 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk0_src_ck: auxclk0_src_ck@4ae0a310 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a310 0x4>; + bit-shift = <8>; + clocks = <&auxclk0_src_mux_ck>; +}; + +auxclk0_ck: auxclk0_ck@4ae0a310 { + compatible = "divider-clock"; + clocks = <&auxclk0_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a310 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk1_src_mux_ck: auxclk1_src_mux_ck@4ae0a314 { + compatible = "mux-clock"; + reg = <0x4ae0a314 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk1_src_ck: auxclk1_src_ck@4ae0a314 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a314 0x4>; + bit-shift = <8>; + clocks = <&auxclk1_src_mux_ck>; +}; + +auxclk1_ck: auxclk1_ck@4ae0a314 { + compatible = "divider-clock"; + clocks = <&auxclk1_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a314 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk2_src_mux_ck: auxclk2_src_mux_ck@4ae0a318 { + compatible = "mux-clock"; + reg = <0x4ae0a318 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk2_src_ck: auxclk2_src_ck@4ae0a318 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a318 0x4>; + bit-shift = <8>; + clocks = <&auxclk2_src_mux_ck>; +}; + +auxclk2_ck: auxclk2_ck@4ae0a318 { + compatible = "divider-clock"; + clocks = <&auxclk2_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a318 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk3_src_mux_ck: auxclk3_src_mux_ck@4ae0a31c { + compatible = "mux-clock"; + reg = <0x4ae0a31c 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk3_src_ck: auxclk3_src_ck@4ae0a31c { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a31c 0x4>; + bit-shift = <8>; + clocks = <&auxclk3_src_mux_ck>; +}; + +auxclk3_ck: auxclk3_ck@4ae0a31c { + compatible = "divider-clock"; + clocks = <&auxclk3_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a31c 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk4_src_mux_ck: auxclk4_src_mux_ck@4ae0a320 { + compatible = "mux-clock"; + reg = <0x4ae0a320 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk4_src_ck: auxclk4_src_ck@4ae0a320 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a320 0x4>; + bit-shift = <8>; + clocks = <&auxclk4_src_mux_ck>; +}; + +auxclk4_ck: auxclk4_ck@4ae0a320 { + compatible = "divider-clock"; + clocks = <&auxclk4_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a320 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclkreq0_ck: auxclkreq0_ck@4ae0a210 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a210 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq1_ck: auxclkreq1_ck@4ae0a214 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a214 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq2_ck: auxclkreq2_ck@4ae0a218 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a218 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq3_ck: auxclkreq3_ck@4ae0a21c { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a21c 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq4_ck: auxclkreq4_ck@4ae0a220 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a220 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +/* + * clkdev + */ diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 635cae2..ca40724 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -74,6 +74,8 @@ }; }; + /include/ "omap5-clocks.dtsi" + /* * XXX: Use a flat representation of the OMAP3 interconnect. * The real OMAP interconnect network is quite complex. -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 1/4] ARM: dts: omap5 clock data @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-arm-kernel This patch creates the clock node mapping for OMAP5, and includes it to the base omap5.dtsi file. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/boot/dts/omap5-clocks.dtsi | 1442 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 2 + 2 files changed, 1444 insertions(+) create mode 100644 arch/arm/boot/dts/omap5-clocks.dtsi diff --git a/arch/arm/boot/dts/omap5-clocks.dtsi b/arch/arm/boot/dts/omap5-clocks.dtsi new file mode 100644 index 0000000..5767195 --- /dev/null +++ b/arch/arm/boot/dts/omap5-clocks.dtsi @@ -0,0 +1,1442 @@ +/* + * Device Tree Source for OMAP5 clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* Root clocks */ +pad_clks_src_ck: pad_clks_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +pad_clks_ck: pad_clks_ck at 4a004108 { + compatible = "gate-clock"; + reg = <0x4a004108 0x4>; + bit-shift = <8>; + clocks = <&pad_clks_src_ck>; + #clock-cells = <0>; +}; + +secure_32k_clk_src_ck: secure_32k_clk_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +slimbus_src_clk: slimbus_src_clk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +slimbus_clk: slimbus_clk at 4a004108 { + compatible = "gate-clock"; + reg = <0x4a004108 0x4>; + bit-shift = <10>; + clocks = <&slimbus_src_clk>; + #clock-cells = <0>; +}; + +sys_32k_ck: sys_32k_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +virt_12000000_ck: virt_12000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +virt_13000000_ck: virt_13000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <13000000>; +}; + +virt_16800000_ck: virt_16800000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <16800000>; +}; + +virt_19200000_ck: virt_19200000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <19200000>; +}; + +virt_26000000_ck: virt_26000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <26000000>; +}; + +virt_27000000_ck: virt_27000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <27000000>; +}; + +virt_38400000_ck: virt_38400000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <38400000>; +}; + +sys_clkin: sys_clkin at 4ae06110 { + compatible = "mux-clock"; + clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>; + #clock-cells = <0>; + reg = <0x4ae06110 0x4>; + bit-mask = <0x7>; + index-starts-at-one; +}; + +xclk60mhsp1_ck: xclk60mhsp1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <60000000>; +}; + +xclk60mhsp2_ck: xclk60mhsp2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <60000000>; +}; + +/* Module clocks and DPLL outputs */ +abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux at 4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_clk_mux: abe_dpll_clk_mux at 4ae0610c { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae0610c 0x4>; + bit-mask = <0x1>; +}; + +/* DPLL_ABE */ +dpll_abe_ck: dpll_abe_ck { + clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>; + #clock-cells = <0>; + reg = <0x4a0041e0 0x4>, <0x4a0041e4 0x4>, <0x4a0041e8 0x4>, <0x4a0041ec 0x4>; + ti,clk-bypass = <&abe_dpll_bypass_clk_mux>; + ti,clk-ref = <&abe_dpll_clk_mux>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-regm4xen; +}; + +dpll_abe_x2_ck: dpll_abe_x2_ck { + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_abe_m2x2_ck: dpll_abe_m2x2_ck at 4a0041f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +abe_24m_fclk: abe_24m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; +}; + +abe_clk: abe_clk at 4a004108 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a004108 0x4>; + bit-mask = <0x3>; + index-power-of-two; +}; + +abe_iclk: abe_iclk { + compatible = "fixed-factor-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +abe_lp_clk_div: abe_lp_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +dpll_abe_m3x2_ck: dpll_abe_m3x2_ck at 4a0041f4 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041f4 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_CORE */ +dpll_core_ck: dpll_core_ck { + clocks = <&sys_clkin>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a004120 0x4>, <0x4a004124 0x4>, <0x4a004128 0x4>, <0x4a00412c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-core; +}; + +dpll_core_x2_ck: dpll_core_x2_ck { + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_core_h21x2_ck: dpll_core_h21x2_ck at 4a004150 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004150 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +c2c_fclk: c2c_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h21x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +c2c_iclk: c2c_iclk { + compatible = "fixed-factor-clock"; + clocks = <&c2c_fclk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +custefuse_sys_gfclk_div: custefuse_sys_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +dpll_core_h11x2_ck: dpll_core_h11x2_ck at 4a004138 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004138 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h12x2_ck: dpll_core_h12x2_ck at 4a00413c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00413c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h13x2_ck: dpll_core_h13x2_ck at 4a004140 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004140 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h14x2_ck: dpll_core_h14x2_ck at 4a004144 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004144 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h22x2_ck: dpll_core_h22x2_ck at 4a004154 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004154 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h23x2_ck: dpll_core_h23x2_ck at 4a004158 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h24x2_ck: dpll_core_h24x2_ck at 4a00415c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00415c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_m2_ck: dpll_core_m2_ck at 4a004130 { + compatible = "divider-clock"; + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + reg = <0x4a004130 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_m3x2_ck: dpll_core_m3x2_ck at 4a004134 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a004134 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +iva_dpll_hs_clk_div: iva_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_IVA */ +dpll_iva_ck: dpll_iva_ck { + clocks = <&sys_clkin>, <&iva_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a0041a0 0x4>, <0x4a0041a4 0x4>, <0x4a0041a8 0x4>, <0x4a0041ac 0x4>; + ti,clk-bypass = <&iva_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_iva_x2_ck: dpll_iva_x2_ck { + clocks = <&dpll_iva_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_iva_h11x2_ck: dpll_iva_h11x2_ck at 4a0041b8 { + compatible = "divider-clock"; + clocks = <&dpll_iva_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041b8 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_iva_h12x2_ck: dpll_iva_h12x2_ck at 4a0041bc { + compatible = "divider-clock"; + clocks = <&dpll_iva_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0041bc 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_MPU */ +dpll_mpu_ck: dpll_mpu_ck { + clocks = <&sys_clkin>, <&mpu_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a004160 0x4>, <0x4a004164 0x4>, <0x4a004168 0x4>, <0x4a00416c 0x4>; + ti,clk-bypass = <&mpu_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_mpu_m2_ck: dpll_mpu_m2_ck at 4a004170 { + compatible = "divider-clock"; + clocks = <&dpll_mpu_ck>; + #clock-cells = <0>; + reg = <0x4a004170 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +per_dpll_hs_clk_div: per_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +/* DPLL_PER */ +dpll_per_ck: dpll_per_ck { + clocks = <&sys_clkin>, <&per_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008140 0x4>, <0x4a008144 0x4>, <0x4a008148 0x4>, <0x4a00814c 0x4>; + ti,clk-bypass = <&per_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_per_x2_ck: dpll_per_x2_ck { + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_per_h11x2_ck: dpll_per_h11x2_ck at 4a008158 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h12x2_ck: dpll_per_h12x2_ck at 4a00815c { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00815c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h14x2_ck: dpll_per_h14x2_ck at 4a008164 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008164 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2_ck: dpll_per_m2_ck at 4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2x2_ck: dpll_per_m2x2_ck at 4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m3x2_ck: dpll_per_m3x2_ck at 4a008154 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008154 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_UNIPRO1 */ +dpll_unipro1_ck: dpll_unipro1_ck { + clocks = <&sys_clkin>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&sys_clkin>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_unipro1_clkdcoldo: dpll_unipro1_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_unipro1_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_unipro1_m2_ck: dpll_unipro1_m2_ck at 4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_unipro1_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_UNIPRO2 */ +dpll_unipro2_ck: dpll_unipro2_ck { + clocks = <&sys_clkin>; + #clock-cells = <0>; + reg = <0x4a0081c0 0x4>, <0x4a0081c4 0x4>, <0x4a0081c8 0x4>, <0x4a0081cc 0x4>; + ti,clk-bypass = <&sys_clkin>; + ti,clk-ref = <&sys_clkin>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_unipro2_clkdcoldo: dpll_unipro2_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_unipro2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_unipro2_m2_ck: dpll_unipro2_m2_ck at 4a0081d0 { + compatible = "divider-clock"; + clocks = <&dpll_unipro2_ck>; + #clock-cells = <0>; + reg = <0x4a0081d0 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +usb_dpll_hs_clk_div: usb_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; +}; + +/* DPLL_USB */ +dpll_usb_ck: dpll_usb_ck { + clocks = <&sys_clkin>, <&usb_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008180 0x4>, <0x4a008184 0x4>, <0x4a008188 0x4>, <0x4a00818c 0x4>; + ti,clk-bypass = <&usb_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin>; + ti,clkdm-name = "l3init_clkdm"; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-j-type; +}; + +dpll_usb_clkdcoldo: dpll_usb_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dpll_usb_m2_ck: dpll_usb_m2_ck at 4a008190 { + compatible = "divider-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + reg = <0x4a008190 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dss_syc_gfclk_div: dss_syc_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +func_128m_clk: func_128m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +func_12m_fclk: func_12m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +func_24m_clk: func_24m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_48m_fclk: func_48m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_96m_fclk: func_96m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +l3_iclk_div: l3_iclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +gpu_l3_iclk: gpu_l3_iclk { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l3init_60m_fclk: l3init_60m_fclk at 4a008104 { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4a008104 0x4>; + bit-mask = <0x1>; + table = < 1 0 >, < 8 1 >; +}; + +wkupaon_iclk_mux: wkupaon_iclk_mux at 4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&abe_lp_clk_div>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +l3instr_ts_gclk_div: l3instr_ts_gclk_div { + compatible = "fixed-factor-clock"; + clocks = <&wkupaon_iclk_mux>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l4_root_clk_div: l4_root_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* Leaf clocks controlled by modules */ +dss_32khz_clk: dss_32khz_clk at 4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <11>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +dss_48mhz_clk: dss_48mhz_clk at 4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <9>; + clocks = <&func_48m_fclk>; + #clock-cells = <0>; +}; + +dss_dss_clk: dss_dss_clk at 4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <8>; + clocks = <&dpll_per_h12x2_ck>; + #clock-cells = <0>; +}; + +dss_sys_clk: dss_sys_clk at 4a009420 { + compatible = "gate-clock"; + reg = <0x4a009420 0x4>; + bit-shift = <10>; + clocks = <&dss_syc_gfclk_div>; + #clock-cells = <0>; +}; + +gpio1_dbclk: gpio1_dbclk at 4ae07938 { + compatible = "gate-clock"; + reg = <0x4ae07938 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio2_dbclk: gpio2_dbclk at 4a009060 { + compatible = "gate-clock"; + reg = <0x4a009060 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio3_dbclk: gpio3_dbclk at 4a009068 { + compatible = "gate-clock"; + reg = <0x4a009068 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio4_dbclk: gpio4_dbclk at 4a009070 { + compatible = "gate-clock"; + reg = <0x4a009070 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio5_dbclk: gpio5_dbclk at 4a009078 { + compatible = "gate-clock"; + reg = <0x4a009078 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio6_dbclk: gpio6_dbclk at 4a009080 { + compatible = "gate-clock"; + reg = <0x4a009080 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio7_dbclk: gpio7_dbclk at 4a009110 { + compatible = "gate-clock"; + reg = <0x4a009110 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio8_dbclk: gpio8_dbclk at 4a009118 { + compatible = "gate-clock"; + reg = <0x4a009118 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +iss_ctrlclk: iss_ctrlclk at 4a009320 { + compatible = "gate-clock"; + reg = <0x4a009320 0x4>; + bit-shift = <8>; + clocks = <&func_96m_fclk>; + #clock-cells = <0>; +}; + +lli_txphy_clk: lli_txphy_clk at 4a008f20 { + compatible = "gate-clock"; + reg = <0x4a008f20 0x4>; + bit-shift = <8>; + clocks = <&dpll_unipro1_clkdcoldo>; + #clock-cells = <0>; +}; + +lli_txphy_ls_clk: lli_txphy_ls_clk at 4a008f20 { + compatible = "gate-clock"; + reg = <0x4a008f20 0x4>; + bit-shift = <9>; + clocks = <&dpll_unipro1_m2_ck>; + #clock-cells = <0>; +}; + +mmc1_32khz_clk: mmc1_32khz_clk at 4a009628 { + compatible = "gate-clock"; + reg = <0x4a009628 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +sata_ref_clk: sata_ref_clk at 4a009688 { + compatible = "gate-clock"; + reg = <0x4a009688 0x4>; + bit-shift = <8>; + clocks = <&sys_clkin>; + #clock-cells = <0>; +}; + +slimbus1_slimbus_clk: slimbus1_slimbus_clk at 4a004560 { + compatible = "gate-clock"; + reg = <0x4a004560 0x4>; + bit-shift = <11>; + clocks = <&slimbus_clk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p1_clk: usb_host_hs_hsic480m_p1_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <13>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p2_clk: usb_host_hs_hsic480m_p2_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <14>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic480m_p3_clk: usb_host_hs_hsic480m_p3_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <7>; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p1_clk: usb_host_hs_hsic60m_p1_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <11>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p2_clk: usb_host_hs_hsic60m_p2_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <12>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_host_hs_hsic60m_p3_clk: usb_host_hs_hsic60m_p3_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <6>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +utmi_p1_gfclk: utmi_p1_gfclk at 4a009658 { + compatible = "mux-clock"; + clocks = <&l3init_60m_fclk>, <&xclk60mhsp1_ck>; + #clock-cells = <0>; + reg = <0x4a009658 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +usb_host_hs_utmi_p1_clk: usb_host_hs_utmi_p1_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <8>; + clocks = <&utmi_p1_gfclk>; + #clock-cells = <0>; +}; + +utmi_p2_gfclk: utmi_p2_gfclk at 4a009658 { + compatible = "mux-clock"; + clocks = <&l3init_60m_fclk>, <&xclk60mhsp2_ck>; + #clock-cells = <0>; + reg = <0x4a009658 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +usb_host_hs_utmi_p2_clk: usb_host_hs_utmi_p2_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <9>; + clocks = <&utmi_p2_gfclk>; + #clock-cells = <0>; +}; + +usb_host_hs_utmi_p3_clk: usb_host_hs_utmi_p3_clk at 4a009658 { + compatible = "gate-clock"; + reg = <0x4a009658 0x4>; + bit-shift = <10>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_otg_ss_refclk960m: usb_otg_ss_refclk960m at 4a0096f0 { + compatible = "gate-clock"; + reg = <0x4a0096f0 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_phy_cm_clk32k: usb_phy_cm_clk32k at 4a008640 { + compatible = "gate-clock"; + reg = <0x4a008640 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch0_clk: usb_tll_hs_usb_ch0_clk at 4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <8>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch1_clk: usb_tll_hs_usb_ch1_clk at 4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <9>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +usb_tll_hs_usb_ch2_clk: usb_tll_hs_usb_ch2_clk at 4a009668 { + compatible = "gate-clock"; + reg = <0x4a009668 0x4>; + bit-shift = <10>; + clocks = <&l3init_60m_fclk>; + #clock-cells = <0>; +}; + +/* Remaining optional clocks */ +aess_fclk: aess_fclk at 4a004528 { + compatible = "divider-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + reg = <0x4a004528 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +dmic_sync_mux_ck: dmic_sync_mux_ck at 4a004538 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004538 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +dmic_gfclk: dmic_gfclk at 4a004538 { + compatible = "mux-clock"; + clocks = <&dmic_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004538 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +fdif_fclk: fdif_fclk at 4a009328 { + compatible = "divider-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gpu_core_gclk_mux: gpu_core_gclk_mux at 4a009520 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>; + #clock-cells = <0>; + reg = <0x4a009520 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gpu_hyd_gclk_mux: gpu_hyd_gclk_mux at 4a009520 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>; + #clock-cells = <0>; + reg = <0x4a009520 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +hsi_fclk: hsi_fclk at 4a009638 { + compatible = "divider-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009638 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mcasp_sync_mux_ck: mcasp_sync_mux_ck at 4a004540 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004540 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcasp_gfclk: mcasp_gfclk at 4a004540 { + compatible = "mux-clock"; + clocks = <&mcasp_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004540 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp1_sync_mux_ck: mcbsp1_sync_mux_ck at 4a004548 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004548 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp1_gfclk: mcbsp1_gfclk at 4a004548 { + compatible = "mux-clock"; + clocks = <&mcbsp1_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004548 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp2_sync_mux_ck: mcbsp2_sync_mux_ck at 4a004550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004550 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp2_gfclk: mcbsp2_gfclk at 4a004550 { + compatible = "mux-clock"; + clocks = <&mcbsp2_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004550 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mcbsp3_sync_mux_ck: mcbsp3_sync_mux_ck at 4a004558 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>; + #clock-cells = <0>; + reg = <0x4a004558 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +mcbsp3_gfclk: mcbsp3_gfclk at 4a004558 { + compatible = "mux-clock"; + clocks = <&mcbsp3_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>; + #clock-cells = <0>; + reg = <0x4a004558 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +mmc1_fclk_mux: mmc1_fclk_mux at 4a009628 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009628 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc1_fclk: mmc1_fclk at 4a009628 { + compatible = "divider-clock"; + clocks = <&mmc1_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009628 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +mmc2_fclk_mux: mmc2_fclk_mux at 4a009630 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009630 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc2_fclk: mmc2_fclk at 4a009630 { + compatible = "divider-clock"; + clocks = <&mmc2_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009630 0x4>; + bit-mask = <0x1>; + bit-shift = <25>; +}; + +timer10_gfclk_mux: timer10_gfclk_mux at 4a009028 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009028 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer11_gfclk_mux: timer11_gfclk_mux at 4a009030 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009030 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer1_gfclk_mux: timer1_gfclk_mux at 4ae07940 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae07940 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer2_gfclk_mux: timer2_gfclk_mux at 4a009038 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009038 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer3_gfclk_mux: timer3_gfclk_mux at 4a009040 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009040 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer4_gfclk_mux: timer4_gfclk_mux at 4a009048 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009048 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer5_gfclk_mux: timer5_gfclk_mux at 4a004568 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004568 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer6_gfclk_mux: timer6_gfclk_mux at 4a004570 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004570 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer7_gfclk_mux: timer7_gfclk_mux at 4a004578 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004578 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer8_gfclk_mux: timer8_gfclk_mux at 4a004580 { + compatible = "mux-clock"; + clocks = <&dss_syc_gfclk_div>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a004580 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +timer9_gfclk_mux: timer9_gfclk_mux at 4a009050 { + compatible = "mux-clock"; + clocks = <&sys_clkin>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4a009050 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +/* SCRM aux clk nodes */ +auxclk0_src_mux_ck: auxclk0_src_mux_ck at 4ae0a310 { + compatible = "mux-clock"; + reg = <0x4ae0a310 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk0_src_ck: auxclk0_src_ck at 4ae0a310 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a310 0x4>; + bit-shift = <8>; + clocks = <&auxclk0_src_mux_ck>; +}; + +auxclk0_ck: auxclk0_ck at 4ae0a310 { + compatible = "divider-clock"; + clocks = <&auxclk0_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a310 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk1_src_mux_ck: auxclk1_src_mux_ck at 4ae0a314 { + compatible = "mux-clock"; + reg = <0x4ae0a314 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk1_src_ck: auxclk1_src_ck at 4ae0a314 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a314 0x4>; + bit-shift = <8>; + clocks = <&auxclk1_src_mux_ck>; +}; + +auxclk1_ck: auxclk1_ck at 4ae0a314 { + compatible = "divider-clock"; + clocks = <&auxclk1_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a314 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk2_src_mux_ck: auxclk2_src_mux_ck at 4ae0a318 { + compatible = "mux-clock"; + reg = <0x4ae0a318 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk2_src_ck: auxclk2_src_ck at 4ae0a318 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a318 0x4>; + bit-shift = <8>; + clocks = <&auxclk2_src_mux_ck>; +}; + +auxclk2_ck: auxclk2_ck at 4ae0a318 { + compatible = "divider-clock"; + clocks = <&auxclk2_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a318 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk3_src_mux_ck: auxclk3_src_mux_ck at 4ae0a31c { + compatible = "mux-clock"; + reg = <0x4ae0a31c 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk3_src_ck: auxclk3_src_ck at 4ae0a31c { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a31c 0x4>; + bit-shift = <8>; + clocks = <&auxclk3_src_mux_ck>; +}; + +auxclk3_ck: auxclk3_ck at 4ae0a31c { + compatible = "divider-clock"; + clocks = <&auxclk3_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a31c 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclk4_src_mux_ck: auxclk4_src_mux_ck at 4ae0a320 { + compatible = "mux-clock"; + reg = <0x4ae0a320 0x4>; + bit-mask = <0x3>; + bit-shift = <1>; + clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>; + #clock-cells = <0>; +}; + +auxclk4_src_ck: auxclk4_src_ck at 4ae0a320 { + compatible = "gate-clock"; + #clock-cells = <0>; + reg = <0x4ae0a320 0x4>; + bit-shift = <8>; + clocks = <&auxclk4_src_mux_ck>; +}; + +auxclk4_ck: auxclk4_ck at 4ae0a320 { + compatible = "divider-clock"; + clocks = <&auxclk4_src_ck>; + #clock-cells = <0>; + reg = <0x4ae0a320 0x4>; + bit-mask = <0xf>; + bit-shift = <16>; +}; + +auxclkreq0_ck: auxclkreq0_ck at 4ae0a210 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a210 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq1_ck: auxclkreq1_ck at 4ae0a214 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a214 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq2_ck: auxclkreq2_ck at 4ae0a218 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a218 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq3_ck: auxclkreq3_ck at 4ae0a21c { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a21c 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +auxclkreq4_ck: auxclkreq4_ck at 4ae0a220 { + compatible = "mux-clock"; + clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>; + #clock-cells = <0>; + reg = <0x4ae0a220 0x4>; + bit-mask = <0x7>; + bit-shift = <2>; +}; + +/* + * clkdev + */ diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 635cae2..ca40724 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -74,6 +74,8 @@ }; }; + /include/ "omap5-clocks.dtsi" + /* * XXX: Use a flat representation of the OMAP3 interconnect. * The real OMAP interconnect network is quite complex. -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-27 8:38 ` Tero Kristo @ 2013-06-27 8:38 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-omap, paul, tony, mturquette, nm, rnayak Cc: devicetree-discuss, linux-arm-kernel cclock54xx_data.c now contains only init function and the clkdev mapping that is still needed by some drivers. Eventually most of this file can be removed, once a common location for the clk init can be found, and the clkdev mapping is no longer needed. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c new file mode 100644 index 0000000..f23f44e --- /dev/null +++ b/arch/arm/mach-omap2/cclock54xx_data.c @@ -0,0 +1,74 @@ +/* + * OMAP54xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * Paul Walmsley (paul@pwsan.com) + * Rajendra Nayak (rnayak@ti.com) + * Benoit Cousson (b-cousson@ti.com) + * Mike Turquette (mturquette@linaro.org) + * Tero Kristo (t-kristo@ti.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/kernel.h> +#include <linux/list.h> +#include <linux/clkdev.h> +#include <linux/io.h> +#include <linux/clk-provider.h> +#include <linux/clk/omap.h> + +#include "soc.h" +#include "clock.h" + +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 + +/* + * clkdev + */ +static struct omap_dt_clk omap54xx_clks[] = { + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), +}; + +int __init omap5xxx_clk_init(void) +{ + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; + int rc; + + /* + * Must stay commented until all OMAP SoC drivers are + * converted to runtime PM, or drivers may start crashing + * + * omap2_clk_disable_clkdm_control(); + */ + dt_omap_clk_init(); + + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); + + omap2_clk_disable_autoidle_all(); + + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); + if (!rc) + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); + if (rc) + pr_err("%s: failed to configure ABE DPLL!\n", __func__); + + return 0; +} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-arm-kernel cclock54xx_data.c now contains only init function and the clkdev mapping that is still needed by some drivers. Eventually most of this file can be removed, once a common location for the clk init can be found, and the clkdev mapping is no longer needed. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c new file mode 100644 index 0000000..f23f44e --- /dev/null +++ b/arch/arm/mach-omap2/cclock54xx_data.c @@ -0,0 +1,74 @@ +/* + * OMAP54xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * Paul Walmsley (paul at pwsan.com) + * Rajendra Nayak (rnayak at ti.com) + * Benoit Cousson (b-cousson at ti.com) + * Mike Turquette (mturquette at linaro.org) + * Tero Kristo (t-kristo at ti.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/kernel.h> +#include <linux/list.h> +#include <linux/clkdev.h> +#include <linux/io.h> +#include <linux/clk-provider.h> +#include <linux/clk/omap.h> + +#include "soc.h" +#include "clock.h" + +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 + +/* + * clkdev + */ +static struct omap_dt_clk omap54xx_clks[] = { + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), +}; + +int __init omap5xxx_clk_init(void) +{ + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; + int rc; + + /* + * Must stay commented until all OMAP SoC drivers are + * converted to runtime PM, or drivers may start crashing + * + * omap2_clk_disable_clkdm_control(); + */ + dt_omap_clk_init(); + + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); + + omap2_clk_disable_autoidle_all(); + + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); + if (!rc) + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); + if (rc) + pr_err("%s: failed to configure ABE DPLL!\n", __func__); + + return 0; +} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-27 8:38 ` Tero Kristo @ 2013-06-27 8:44 ` Felipe Balbi -1 siblings, 0 replies; 24+ messages in thread From: Felipe Balbi @ 2013-06-27 8:44 UTC (permalink / raw) To: Tero Kristo Cc: linux-omap, paul, tony, mturquette, nm, rnayak, linux-arm-kernel, devicetree-discuss [-- Attachment #1: Type: text/plain, Size: 468 bytes --] Hi, On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: > + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); should these two lines be swaped ? > + if (!rc) > + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + return 0; so even if (rc) you still return 0 ? Shouldn't you return rc instead ? -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-06-27 8:44 ` Felipe Balbi 0 siblings, 0 replies; 24+ messages in thread From: Felipe Balbi @ 2013-06-27 8:44 UTC (permalink / raw) To: linux-arm-kernel Hi, On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: > + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); should these two lines be swaped ? > + if (!rc) > + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + return 0; so even if (rc) you still return 0 ? Shouldn't you return rc instead ? -- balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130627/ef29b2a2/attachment.sig> ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-27 8:44 ` Felipe Balbi @ 2013-06-27 9:24 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 9:24 UTC (permalink / raw) To: balbi Cc: linux-omap, paul, tony, mturquette, nm, rnayak, linux-arm-kernel, devicetree-discuss On 06/27/2013 11:44 AM, Felipe Balbi wrote: > Hi, > > On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: >> + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); >> + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > > should these two lines be swaped ? No, its a different clock. clk_set_parent is done for a clock that is a parent of dpll_abe_ck. > >> + if (!rc) >> + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + return 0; > > so even if (rc) you still return 0 ? Shouldn't you return rc instead ? Hmm yea, this could be improved. :) Same should be done for O4 / DRA7 also. Seems like a long lasting feature actually. -Tero ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-06-27 9:24 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 9:24 UTC (permalink / raw) To: linux-arm-kernel On 06/27/2013 11:44 AM, Felipe Balbi wrote: > Hi, > > On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: >> + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); >> + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > > should these two lines be swaped ? No, its a different clock. clk_set_parent is done for a clock that is a parent of dpll_abe_ck. > >> + if (!rc) >> + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + return 0; > > so even if (rc) you still return 0 ? Shouldn't you return rc instead ? Hmm yea, this could be improved. :) Same should be done for O4 / DRA7 also. Seems like a long lasting feature actually. -Tero ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-27 9:24 ` Tero Kristo @ 2013-06-27 10:06 ` Felipe Balbi -1 siblings, 0 replies; 24+ messages in thread From: Felipe Balbi @ 2013-06-27 10:06 UTC (permalink / raw) To: Tero Kristo Cc: balbi, linux-omap, paul, tony, mturquette, nm, rnayak, linux-arm-kernel, devicetree-discuss [-- Attachment #1: Type: text/plain, Size: 964 bytes --] HI, On Thu, Jun 27, 2013 at 12:24:25PM +0300, Tero Kristo wrote: > On 06/27/2013 11:44 AM, Felipe Balbi wrote: > >Hi, > > > >On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: > >>+ rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > >>+ abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > > > >should these two lines be swaped ? > > No, its a different clock. clk_set_parent is done for a clock that is > a parent of dpll_abe_ck. hah, just now I noticed clk_set_parent() has abe_dpll_ref, not abe_dpll as argument :-p > >>+ if (!rc) > >>+ rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > >>+ if (rc) > >>+ pr_err("%s: failed to configure ABE DPLL!\n", __func__); > >>+ > >>+ return 0; > > > >so even if (rc) you still return 0 ? Shouldn't you return rc instead ? > > Hmm yea, this could be improved. :) Same should be done for O4 / DRA7 > also. Seems like a long lasting feature actually. I see... ;-) -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-06-27 10:06 ` Felipe Balbi 0 siblings, 0 replies; 24+ messages in thread From: Felipe Balbi @ 2013-06-27 10:06 UTC (permalink / raw) To: linux-arm-kernel HI, On Thu, Jun 27, 2013 at 12:24:25PM +0300, Tero Kristo wrote: > On 06/27/2013 11:44 AM, Felipe Balbi wrote: > >Hi, > > > >On Thu, Jun 27, 2013 at 11:38:17AM +0300, Tero Kristo wrote: > >>+ rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > >>+ abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > > > >should these two lines be swaped ? > > No, its a different clock. clk_set_parent is done for a clock that is > a parent of dpll_abe_ck. hah, just now I noticed clk_set_parent() has abe_dpll_ref, not abe_dpll as argument :-p > >>+ if (!rc) > >>+ rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > >>+ if (rc) > >>+ pr_err("%s: failed to configure ABE DPLL!\n", __func__); > >>+ > >>+ return 0; > > > >so even if (rc) you still return 0 ? Shouldn't you return rc instead ? > > Hmm yea, this could be improved. :) Same should be done for O4 / DRA7 > also. Seems like a long lasting feature actually. I see... ;-) -- balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130627/34d5b833/attachment.sig> ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-27 8:38 ` Tero Kristo @ 2013-06-28 21:03 ` Mike Turquette -1 siblings, 0 replies; 24+ messages in thread From: Mike Turquette @ 2013-06-28 21:03 UTC (permalink / raw) To: Tero Kristo, linux-omap, paul, tony, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss Quoting Tero Kristo (2013-06-27 01:38:17) > cclock54xx_data.c now contains only init function and the clkdev mapping > that is still needed by some drivers. Eventually most of this file can > be removed, once a common location for the clk init can be found, and > the clkdev mapping is no longer needed. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> > --- > arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c > > diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c > new file mode 100644 Why not drivers/clk/omap/clk-omap54xx.c? Regards, Mike > index 0000000..f23f44e > --- /dev/null > +++ b/arch/arm/mach-omap2/cclock54xx_data.c > @@ -0,0 +1,74 @@ > +/* > + * OMAP54xx Clock data > + * > + * Copyright (C) 2013 Texas Instruments, Inc. > + * > + * Paul Walmsley (paul@pwsan.com) > + * Rajendra Nayak (rnayak@ti.com) > + * Benoit Cousson (b-cousson@ti.com) > + * Mike Turquette (mturquette@linaro.org) > + * Tero Kristo (t-kristo@ti.com) > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include <linux/kernel.h> > +#include <linux/list.h> > +#include <linux/clkdev.h> > +#include <linux/io.h> > +#include <linux/clk-provider.h> > +#include <linux/clk/omap.h> > + > +#include "soc.h" > +#include "clock.h" > + > +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 > + > +/* > + * clkdev > + */ > +static struct omap_dt_clk omap54xx_clks[] = { > + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), > + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), > +}; > + > +int __init omap5xxx_clk_init(void) > +{ > + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; > + int rc; > + > + /* > + * Must stay commented until all OMAP SoC drivers are > + * converted to runtime PM, or drivers may start crashing > + * > + * omap2_clk_disable_clkdm_control(); > + */ > + dt_omap_clk_init(); > + > + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); > + > + omap2_clk_disable_autoidle_all(); > + > + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); > + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); > + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > + if (!rc) > + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + return 0; > +} > -- > 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-06-28 21:03 ` Mike Turquette 0 siblings, 0 replies; 24+ messages in thread From: Mike Turquette @ 2013-06-28 21:03 UTC (permalink / raw) To: linux-arm-kernel Quoting Tero Kristo (2013-06-27 01:38:17) > cclock54xx_data.c now contains only init function and the clkdev mapping > that is still needed by some drivers. Eventually most of this file can > be removed, once a common location for the clk init can be found, and > the clkdev mapping is no longer needed. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> > --- > arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c > > diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c > new file mode 100644 Why not drivers/clk/omap/clk-omap54xx.c? Regards, Mike > index 0000000..f23f44e > --- /dev/null > +++ b/arch/arm/mach-omap2/cclock54xx_data.c > @@ -0,0 +1,74 @@ > +/* > + * OMAP54xx Clock data > + * > + * Copyright (C) 2013 Texas Instruments, Inc. > + * > + * Paul Walmsley (paul at pwsan.com) > + * Rajendra Nayak (rnayak at ti.com) > + * Benoit Cousson (b-cousson at ti.com) > + * Mike Turquette (mturquette at linaro.org) > + * Tero Kristo (t-kristo at ti.com) > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include <linux/kernel.h> > +#include <linux/list.h> > +#include <linux/clkdev.h> > +#include <linux/io.h> > +#include <linux/clk-provider.h> > +#include <linux/clk/omap.h> > + > +#include "soc.h" > +#include "clock.h" > + > +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 > + > +/* > + * clkdev > + */ > +static struct omap_dt_clk omap54xx_clks[] = { > + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), > + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), > + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), > + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), > +}; > + > +int __init omap5xxx_clk_init(void) > +{ > + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; > + int rc; > + > + /* > + * Must stay commented until all OMAP SoC drivers are > + * converted to runtime PM, or drivers may start crashing > + * > + * omap2_clk_disable_clkdm_control(); > + */ > + dt_omap_clk_init(); > + > + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); > + > + omap2_clk_disable_autoidle_all(); > + > + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); > + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); > + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); > + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); > + if (!rc) > + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + return 0; > +} > -- > 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx 2013-06-28 21:03 ` Mike Turquette @ 2013-07-08 7:28 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-07-08 7:28 UTC (permalink / raw) To: Mike Turquette Cc: linux-omap, paul, tony, nm, rnayak, linux-arm-kernel, devicetree-discuss On 06/29/2013 12:03 AM, Mike Turquette wrote: > Quoting Tero Kristo (2013-06-27 01:38:17) >> cclock54xx_data.c now contains only init function and the clkdev mapping >> that is still needed by some drivers. Eventually most of this file can >> be removed, once a common location for the clk init can be found, and >> the clkdev mapping is no longer needed. >> >> Signed-off-by: Tero Kristo <t-kristo@ti.com> >> --- >> arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ >> 1 file changed, 80 insertions(+) >> create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c >> >> diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c >> new file mode 100644 > > Why not drivers/clk/omap/clk-omap54xx.c? Hey Mike, I can move this over in the next rev. I can do the same for the cclock44xx_data.c file in the O4 series. -Tero > > Regards, > Mike > >> index 0000000..f23f44e >> --- /dev/null >> +++ b/arch/arm/mach-omap2/cclock54xx_data.c >> @@ -0,0 +1,74 @@ >> +/* >> + * OMAP54xx Clock data >> + * >> + * Copyright (C) 2013 Texas Instruments, Inc. >> + * >> + * Paul Walmsley (paul@pwsan.com) >> + * Rajendra Nayak (rnayak@ti.com) >> + * Benoit Cousson (b-cousson@ti.com) >> + * Mike Turquette (mturquette@linaro.org) >> + * Tero Kristo (t-kristo@ti.com) >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#include <linux/kernel.h> >> +#include <linux/list.h> >> +#include <linux/clkdev.h> >> +#include <linux/io.h> >> +#include <linux/clk-provider.h> >> +#include <linux/clk/omap.h> >> + >> +#include "soc.h" >> +#include "clock.h" >> + >> +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 >> + >> +/* >> + * clkdev >> + */ >> +static struct omap_dt_clk omap54xx_clks[] = { >> + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), >> + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), >> +}; >> + >> +int __init omap5xxx_clk_init(void) >> +{ >> + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; >> + int rc; >> + >> + /* >> + * Must stay commented until all OMAP SoC drivers are >> + * converted to runtime PM, or drivers may start crashing >> + * >> + * omap2_clk_disable_clkdm_control(); >> + */ >> + dt_omap_clk_init(); >> + >> + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); >> + >> + omap2_clk_disable_autoidle_all(); >> + >> + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); >> + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); >> + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); >> + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); >> + if (!rc) >> + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + return 0; >> +} >> -- >> 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx @ 2013-07-08 7:28 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-07-08 7:28 UTC (permalink / raw) To: linux-arm-kernel On 06/29/2013 12:03 AM, Mike Turquette wrote: > Quoting Tero Kristo (2013-06-27 01:38:17) >> cclock54xx_data.c now contains only init function and the clkdev mapping >> that is still needed by some drivers. Eventually most of this file can >> be removed, once a common location for the clk init can be found, and >> the clkdev mapping is no longer needed. >> >> Signed-off-by: Tero Kristo <t-kristo@ti.com> >> --- >> arch/arm/mach-omap2/cclock54xx_data.c | 80 +++++++++++++++++++++++++++++++++ >> 1 file changed, 80 insertions(+) >> create mode 100644 arch/arm/mach-omap2/cclock54xx_data.c >> >> diff --git a/arch/arm/mach-omap2/cclock54xx_data.c b/arch/arm/mach-omap2/cclock54xx_data.c >> new file mode 100644 > > Why not drivers/clk/omap/clk-omap54xx.c? Hey Mike, I can move this over in the next rev. I can do the same for the cclock44xx_data.c file in the O4 series. -Tero > > Regards, > Mike > >> index 0000000..f23f44e >> --- /dev/null >> +++ b/arch/arm/mach-omap2/cclock54xx_data.c >> @@ -0,0 +1,74 @@ >> +/* >> + * OMAP54xx Clock data >> + * >> + * Copyright (C) 2013 Texas Instruments, Inc. >> + * >> + * Paul Walmsley (paul at pwsan.com) >> + * Rajendra Nayak (rnayak at ti.com) >> + * Benoit Cousson (b-cousson at ti.com) >> + * Mike Turquette (mturquette at linaro.org) >> + * Tero Kristo (t-kristo at ti.com) >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#include <linux/kernel.h> >> +#include <linux/list.h> >> +#include <linux/clkdev.h> >> +#include <linux/io.h> >> +#include <linux/clk-provider.h> >> +#include <linux/clk/omap.h> >> + >> +#include "soc.h" >> +#include "clock.h" >> + >> +#define OMAP5_DPLL_ABE_DEFFREQ 98304000 >> + >> +/* >> + * clkdev >> + */ >> +static struct omap_dt_clk omap54xx_clks[] = { >> + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), >> + DT_CLK("omap_timer.1", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.2", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.3", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.4", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.9", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.10", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.11", "sys_ck", "sys_clkin"), >> + DT_CLK("omap_timer.5", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.6", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.7", "sys_ck", "dss_syc_gfclk_div"), >> + DT_CLK("omap_timer.8", "sys_ck", "dss_syc_gfclk_div"), >> +}; >> + >> +int __init omap5xxx_clk_init(void) >> +{ >> + struct clk *abe_dpll_ref, *sys_32k_ck, *abe_dpll; >> + int rc; >> + >> + /* >> + * Must stay commented until all OMAP SoC drivers are >> + * converted to runtime PM, or drivers may start crashing >> + * >> + * omap2_clk_disable_clkdm_control(); >> + */ >> + dt_omap_clk_init(); >> + >> + omap_dt_clocks_register(omap54xx_clks, ARRAY_SIZE(omap54xx_clks)); >> + >> + omap2_clk_disable_autoidle_all(); >> + >> + abe_dpll_ref = clk_get_sys(NULL, "abe_dpll_clk_mux"); >> + sys_32k_ck = clk_get_sys(NULL, "sys_32k_ck"); >> + rc = clk_set_parent(abe_dpll_ref, sys_32k_ck); >> + abe_dpll = clk_get_sys(NULL, "dpll_abe_ck"); >> + if (!rc) >> + rc = clk_set_rate(abe_dpll, OMAP5_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + return 0; >> +} >> -- >> 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 3/4] ARM: dts: dra7xx clock data 2013-06-27 8:38 ` Tero Kristo @ 2013-06-27 8:38 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-omap, paul, tony, mturquette, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss This patch creates the clock node mapping for DRA7xx. TODO: 1) include this from base dra7.dtsi file once available 2) apll_pcie_ck is currently broken, proper support code missing Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/boot/dts/dra7-clocks.dtsi | 2099 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2099 insertions(+) create mode 100644 arch/arm/boot/dts/dra7-clocks.dtsi diff --git a/arch/arm/boot/dts/dra7-clocks.dtsi b/arch/arm/boot/dts/dra7-clocks.dtsi new file mode 100644 index 0000000..5b1e107 --- /dev/null +++ b/arch/arm/boot/dts/dra7-clocks.dtsi @@ -0,0 +1,2099 @@ +/* + * Device Tree Source for DRA7xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* Root clocks */ +atl_clkin0_ck: atl_clkin0_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atl_clkin1_ck: atl_clkin1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atl_clkin2_ck: atl_clkin2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atlclkin3_ck: atlclkin3_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +hdmi_clkin_ck: hdmi_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +mlb_clkin_ck: mlb_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +mlbp_clkin_ck: mlbp_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +pciesref_acs_clk_ck: pciesref_acs_clk_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <100000000>; +}; + +ref_clkin0_ck: ref_clkin0_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin1_ck: ref_clkin1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin2_ck: ref_clkin2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin3_ck: ref_clkin3_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +rmii_clk_ck: rmii_clk_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +sdvenc_clkin_ck: sdvenc_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +secure_32k_clk_src_ck: secure_32k_clk_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +sys_32k_ck: sys_32k_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +virt_12000000_ck: virt_12000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +virt_13000000_ck: virt_13000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <13000000>; +}; + +virt_16800000_ck: virt_16800000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <16800000>; +}; + +virt_19200000_ck: virt_19200000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <19200000>; +}; + +virt_20000000_ck: virt_20000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <20000000>; +}; + +virt_26000000_ck: virt_26000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <26000000>; +}; + +virt_27000000_ck: virt_27000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <27000000>; +}; + +virt_38400000_ck: virt_38400000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <38400000>; +}; + +sys_clkin1: sys_clkin1@4ae06110 { + compatible = "mux-clock"; + clocks = <&virt_12000000_ck>, <&virt_20000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>; + #clock-cells = <0>; + reg = <0x4ae06110 0x4>; + bit-mask = <0x7>; + index-starts-at-one; +}; + +sys_clkin2: sys_clkin2 { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <22579200>; +}; + +usb_otg_clkin_ck: usb_otg_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video1_clkin_ck: video1_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video1_m2_clkin_ck: video1_m2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video2_clkin_ck: video2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video2_m2_clkin_ck: video2_m2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +/* Module clocks and DPLL outputs */ +abe_dpll_sys_clk_mux: abe_dpll_sys_clk_mux@4ae06118 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae06118 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux@4ae06114 { + compatible = "mux-clock"; + clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae06114 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_clk_mux: abe_dpll_clk_mux@4ae0610c { + compatible = "mux-clock"; + clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae0610c 0x4>; + bit-mask = <0x1>; +}; + +/* DPLL_ABE */ +dpll_abe_ck: dpll_abe_ck { + clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>; + #clock-cells = <0>; + reg = <0x4a0051e0 0x4>, <0x4a0051e4 0x4>, <0x4a0051e8 0x4>, <0x4a0051ec 0x4>; + ti,clk-bypass = <&abe_dpll_bypass_clk_mux>; + ti,clk-ref = <&abe_dpll_clk_mux>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-regm4xen; +}; + +dpll_abe_x2_ck: dpll_abe_x2_ck { + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_abe_m2x2_ck: dpll_abe_m2x2_ck@4a0051f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0051f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +abe_24m_fclk: abe_24m_fclk@4ae0611c { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae0611c 0x4>; + bit-mask = <0x1>; + table = < 8 0 >, < 16 1 >; +}; + +abe_clk: abe_clk@4a005108 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a005108 0x4>; + bit-mask = <0x3>; + index-power-of-two; +}; + +aess_fclk: aess_fclk@4ae06178 { + compatible = "divider-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + reg = <0x4ae06178 0x4>; + bit-mask = <0x1>; +}; + +abe_giclk_div: abe_giclk_div@4ae06174 { + compatible = "divider-clock"; + clocks = <&aess_fclk>; + #clock-cells = <0>; + reg = <0x4ae06174 0x4>; + bit-mask = <0x1>; +}; + +abe_lp_clk_div: abe_lp_clk_div@4ae061d8 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae061d8 0x4>; + bit-mask = <0x1>; + table = < 16 0 >, < 32 1 >; +}; + +abe_sys_clk_div: abe_sys_clk_div@4ae06120 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06120 0x4>; + bit-mask = <0x1>; +}; + +adc_gfclk_mux: adc_gfclk_mux@4ae061dc { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae061dc 0x4>; + bit-mask = <0x7>; +}; + +/* DPLL_PCIE_REF */ +dpll_pcie_ref_ck: dpll_pcie_ref_ck { + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&sys_clkin1>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_pcie_ref_m2ldo_ck: dpll_pcie_ref_m2ldo_ck@4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* APLL_PCIE */ +/* XXX: apll_pcie_ck is currently broken, needs proper support code for it */ +apll_pcie_ck: apll_pcie_ck { + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&dpll_pcie_ref_ck>; + ti,clk-ref = <&dpll_pcie_ref_ck>; + compatible = "ti,omap4-dpll-clock"; +}; + +apll_pcie_clkvcoldo: apll_pcie_clkvcoldo { + compatible = "fixed-factor-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +apll_pcie_clkvcoldo_div: apll_pcie_clkvcoldo_div { + compatible = "fixed-factor-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +apll_pcie_m2_ck: apll_pcie_m2_ck@4a008224 { + compatible = "divider-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + reg = <0x4a008224 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +sys_clk1_dclk_div: sys_clk1_dclk_div@4ae061c8 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae061c8 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +sys_clk2_dclk_div: sys_clk2_dclk_div@4ae061cc { + compatible = "divider-clock"; + clocks = <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061cc 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_abe_m2_ck: dpll_abe_m2_ck@4a0051f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + reg = <0x4a0051f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +per_abe_x1_dclk_div: per_abe_x1_dclk_div@4ae061bc { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061bc 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_abe_m3x2_ck: dpll_abe_m3x2_ck@4a0051f4 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0051f4 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_CORE */ +dpll_core_ck: dpll_core_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a005120 0x4>, <0x4a005124 0x4>, <0x4a005128 0x4>, <0x4a00512c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-core; +}; + +dpll_core_x2_ck: dpll_core_x2_ck { + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_core_h12x2_ck: dpll_core_h12x2_ck@4a00513c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00513c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_MPU */ +dpll_mpu_ck: dpll_mpu_ck { + clocks = <&sys_clkin1>, <&mpu_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005160 0x4>, <0x4a005164 0x4>, <0x4a005168 0x4>, <0x4a00516c 0x4>; + ti,clk-bypass = <&mpu_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_mpu_m2_ck: dpll_mpu_m2_ck@4a005170 { + compatible = "divider-clock"; + clocks = <&dpll_mpu_ck>; + #clock-cells = <0>; + reg = <0x4a005170 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dclk_div: mpu_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_mpu_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dsp_dpll_hs_clk_div: dsp_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_DSP */ +dpll_dsp_ck: dpll_dsp_ck { + clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005234 0x4>, <0x4a005238 0x4>, <0x4a00523c 0x4>, <0x4a005240 0x4>; + ti,clk-bypass = <&dsp_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_dsp_m2_ck: dpll_dsp_m2_ck@4a005244 { + compatible = "divider-clock"; + clocks = <&dpll_dsp_ck>; + #clock-cells = <0>; + reg = <0x4a005244 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dsp_gclk_div: dsp_gclk_div@4ae0618c { + compatible = "divider-clock"; + clocks = <&dpll_dsp_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae0618c 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +iva_dpll_hs_clk_div: iva_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_IVA */ +dpll_iva_ck: dpll_iva_ck { + clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a0051a0 0x4>, <0x4a0051a4 0x4>, <0x4a0051a8 0x4>, <0x4a0051ac 0x4>; + ti,clk-bypass = <&iva_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_iva_m2_ck: dpll_iva_m2_ck@4a0051b0 { + compatible = "divider-clock"; + clocks = <&dpll_iva_ck>; + #clock-cells = <0>; + reg = <0x4a0051b0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +iva_dclk: iva_dclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_iva_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_GPU */ +dpll_gpu_ck: dpll_gpu_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052d8 0x4>, <0x4a0052dc 0x4>, <0x4a0052e0 0x4>, <0x4a0052e4 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_gpu_m2_ck: dpll_gpu_m2_ck@4a0052e8 { + compatible = "divider-clock"; + clocks = <&dpll_gpu_ck>; + #clock-cells = <0>; + reg = <0x4a0052e8 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +gpu_dclk: gpu_dclk@4ae061a0 { + compatible = "divider-clock"; + clocks = <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061a0 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_core_m2_ck: dpll_core_m2_ck@4a005130 { + compatible = "divider-clock"; + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + reg = <0x4a005130 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +core_dpll_out_dclk_div: core_dpll_out_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_DDR */ +dpll_ddr_ck: dpll_ddr_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a005210 0x4>, <0x4a005214 0x4>, <0x4a005218 0x4>, <0x4a00521c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_ddr_m2_ck: dpll_ddr_m2_ck@4a005220 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_ck>; + #clock-cells = <0>; + reg = <0x4a005220 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +emif_phy_dclk_div: emif_phy_dclk_div@4ae06190 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae06190 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +/* DPLL_GMAC */ +dpll_gmac_ck: dpll_gmac_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052a8 0x4>, <0x4a0052ac 0x4>, <0x4a0052b0 0x4>, <0x4a0052b4 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_gmac_m2_ck: dpll_gmac_m2_ck@4a0052b8 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_ck>; + #clock-cells = <0>; + reg = <0x4a0052b8 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +gmac_250m_dclk_div: gmac_250m_dclk_div@4ae0619c { + compatible = "divider-clock"; + clocks = <&dpll_gmac_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae0619c 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +video2_dclk_div: video2_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&video2_m2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_dclk_div: video1_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&video1_m2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_dclk_div: hdmi_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +per_dpll_hs_clk_div: per_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +/* DPLL_PER */ +dpll_per_ck: dpll_per_ck { + clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008140 0x4>, <0x4a008144 0x4>, <0x4a008148 0x4>, <0x4a00814c 0x4>; + ti,clk-bypass = <&per_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_per_m2_ck: dpll_per_m2_ck@4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +func_96m_aon_dclk_div: func_96m_aon_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +usb_dpll_hs_clk_div: usb_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; +}; + +/* DPLL_USB */ +dpll_usb_ck: dpll_usb_ck { + clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008180 0x4>, <0x4a008184 0x4>, <0x4a008188 0x4>, <0x4a00818c 0x4>; + ti,clk-bypass = <&usb_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + ti,clkdm-name = "coreaon_clkdm"; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-j-type; +}; + +dpll_usb_m2_ck: dpll_usb_m2_ck@4a008190 { + compatible = "divider-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + reg = <0x4a008190 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +l3init_480m_dclk_div: l3init_480m_dclk_div@4ae061ac { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061ac 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +usb_otg_dclk_div: usb_otg_dclk_div@4ae06184 { + compatible = "divider-clock"; + clocks = <&usb_otg_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06184 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +sata_dclk_div: sata_dclk_div@4ae061c0 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae061c0 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_pcie_ref_m2_ck: dpll_pcie_ref_m2_ck@4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +pcie2_dclk_div: pcie2_dclk_div@4ae061b8 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061b8 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +pcie_dclk_div: pcie_dclk_div@4ae061b4 { + compatible = "divider-clock"; + clocks = <&apll_pcie_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061b4 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +emu_dclk_div: emu_dclk_div@4ae06194 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06194 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +secure_32k_dclk_div: secure_32k_dclk_div@4ae061c4 { + compatible = "divider-clock"; + clocks = <&secure_32k_clk_src_ck>; + #clock-cells = <0>; + reg = <0x4ae061c4 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +eve_dpll_hs_clk_div: eve_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_EVE */ +dpll_eve_ck: dpll_eve_ck { + clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005284 0x4>, <0x4a005288 0x4>, <0x4a00528c 0x4>, <0x4a005290 0x4>; + ti,clk-bypass = <&eve_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_eve_m2_ck: dpll_eve_m2_ck@4a005294 { + compatible = "divider-clock"; + clocks = <&dpll_eve_ck>; + #clock-cells = <0>; + reg = <0x4a005294 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +eve_dclk_div: eve_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_eve_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +clkoutmux0_clk_mux: clkoutmux0_clk_mux@4ae06158 { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae06158 0x4>; + bit-mask = <0x1f>; +}; + +clkoutmux1_clk_mux: clkoutmux1_clk_mux@4ae0615c { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae0615c 0x4>; + bit-mask = <0x1f>; +}; + +clkoutmux2_clk_mux: clkoutmux2_clk_mux@4ae06160 { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae06160 0x4>; + bit-mask = <0x1f>; +}; + +custefuse_sys_gfclk_div: custefuse_sys_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +dpll_core_h13x2_ck: dpll_core_h13x2_ck@4a005140 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005140 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h14x2_ck: dpll_core_h14x2_ck@4a005144 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005144 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h22x2_ck: dpll_core_h22x2_ck@4a005154 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005154 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h23x2_ck: dpll_core_h23x2_ck@4a005158 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h24x2_ck: dpll_core_h24x2_ck@4a00515c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00515c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_ddr_x2_ck: dpll_ddr_x2_ck { + clocks = <&dpll_ddr_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_ddr_h11x2_ck: dpll_ddr_h11x2_ck@4a005228 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005228 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_dsp_x2_ck: dpll_dsp_x2_ck { + clocks = <&dpll_dsp_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_dsp_m3x2_ck: dpll_dsp_m3x2_ck@4a005248 { + compatible = "divider-clock"; + clocks = <&dpll_dsp_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005248 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_x2_ck: dpll_gmac_x2_ck { + clocks = <&dpll_gmac_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_gmac_h11x2_ck: dpll_gmac_h11x2_ck@4a0052c0 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c0 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_h12x2_ck: dpll_gmac_h12x2_ck@4a0052c4 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c4 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_h13x2_ck: dpll_gmac_h13x2_ck@4a0052c8 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c8 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_m3x2_ck: dpll_gmac_m3x2_ck@4a0052bc { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052bc 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_x2_ck: dpll_per_x2_ck { + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_per_h11x2_ck: dpll_per_h11x2_ck@4a008158 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h12x2_ck: dpll_per_h12x2_ck@4a00815c { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00815c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h13x2_ck: dpll_per_h13x2_ck@4a008160 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008160 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h14x2_ck: dpll_per_h14x2_ck@4a008164 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008164 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2x2_ck: dpll_per_m2x2_ck@4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_usb_clkdcoldo: dpll_usb_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +eve_clk: eve_clk@4ae06180 { + compatible = "mux-clock"; + clocks = <&dpll_eve_m2_ck>, <&dpll_dsp_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4ae06180 0x4>; + bit-mask = <0x1>; +}; + +func_128m_clk: func_128m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +func_12m_fclk: func_12m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +func_24m_clk: func_24m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_48m_fclk: func_48m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_96m_fclk: func_96m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +gmii_m_clk_div: gmii_m_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_gmac_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +hdmi_clk2_div: hdmi_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_div_clk: hdmi_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_dpll_clk_mux: hdmi_dpll_clk_mux@4ae061a4 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061a4 0x4>; + bit-mask = <0x7>; +}; + +l3_iclk_div: l3_iclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l3init_60m_fclk: l3init_60m_fclk@4a008104 { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4a008104 0x4>; + bit-mask = <0x1>; + table = < 1 0 >, < 8 1 >; +}; + +l4_root_clk_div: l4_root_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +mlb_clk: mlb_clk@4ae06134 { + compatible = "divider-clock"; + clocks = <&mlb_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06134 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +mlbp_clk: mlbp_clk@4ae06130 { + compatible = "divider-clock"; + clocks = <&mlbp_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06130 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +per_abe_x1_gfclk2_div: per_abe_x1_gfclk2_div@4ae06138 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae06138 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +timer_sys_clk_div: timer_sys_clk_div@4ae06144 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06144 0x4>; + bit-mask = <0x1>; +}; + +video1_clk2_div: video1_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&video1_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_div_clk: video1_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&video1_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_dpll_clk_mux: video1_dpll_clk_mux@4ae061d0 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061d0 0x4>; + bit-mask = <0x7>; +}; + +video2_clk2_div: video2_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&video2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video2_div_clk: video2_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&video2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video2_dpll_clk_mux: video2_dpll_clk_mux@4ae061d4 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061d4 0x4>; + bit-mask = <0x7>; +}; + +wkupaon_iclk_mux: wkupaon_iclk_mux@4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&abe_lp_clk_div>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +/* Leaf clocks controlled by modules */ +dss_32khz_clk: dss_32khz_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <11>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +dss_48mhz_clk: dss_48mhz_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <9>; + clocks = <&func_48m_fclk>; + #clock-cells = <0>; +}; + +dss_dss_clk: dss_dss_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <8>; + clocks = <&dpll_per_h12x2_ck>; + #clock-cells = <0>; +}; + +dss_hdmi_clk: dss_hdmi_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <10>; + clocks = <&hdmi_dpll_clk_mux>; + #clock-cells = <0>; +}; + +dss_video1_clk: dss_video1_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <12>; + clocks = <&video1_dpll_clk_mux>; + #clock-cells = <0>; +}; + +dss_video2_clk: dss_video2_clk@4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <13>; + clocks = <&video2_dpll_clk_mux>; + #clock-cells = <0>; +}; + +gpio1_dbclk: gpio1_dbclk@4ae07838 { + compatible = "gate-clock"; + reg = <0x4ae07838 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio2_dbclk: gpio2_dbclk@4a009760 { + compatible = "gate-clock"; + reg = <0x4a009760 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio3_dbclk: gpio3_dbclk@4a009768 { + compatible = "gate-clock"; + reg = <0x4a009768 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio4_dbclk: gpio4_dbclk@4a009770 { + compatible = "gate-clock"; + reg = <0x4a009770 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio5_dbclk: gpio5_dbclk@4a009778 { + compatible = "gate-clock"; + reg = <0x4a009778 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio6_dbclk: gpio6_dbclk@4a009780 { + compatible = "gate-clock"; + reg = <0x4a009780 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio7_dbclk: gpio7_dbclk@4a009810 { + compatible = "gate-clock"; + reg = <0x4a009810 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio8_dbclk: gpio8_dbclk@4a009818 { + compatible = "gate-clock"; + reg = <0x4a009818 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc1_clk32k: mmc1_clk32k@4a009328 { + compatible = "gate-clock"; + reg = <0x4a009328 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc2_clk32k: mmc2_clk32k@4a009330 { + compatible = "gate-clock"; + reg = <0x4a009330 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc3_clk32k: mmc3_clk32k@4a009820 { + compatible = "gate-clock"; + reg = <0x4a009820 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc4_clk32k: mmc4_clk32k@4a009828 { + compatible = "gate-clock"; + reg = <0x4a009828 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +sata_ref_clk: sata_ref_clk@4a009388 { + compatible = "gate-clock"; + reg = <0x4a009388 0x4>; + bit-shift = <8>; + clocks = <&sys_clkin1>; + #clock-cells = <0>; +}; + +usb_otg_ss1_refclk960m: usb_otg_ss1_refclk960m@4a0093f0 { + compatible = "gate-clock"; + reg = <0x4a0093f0 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_otg_ss2_refclk960m: usb_otg_ss2_refclk960m@4a009340 { + compatible = "gate-clock"; + reg = <0x4a009340 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_phy1_always_on_clk32k: usb_phy1_always_on_clk32k@4a008640 { + compatible = "gate-clock"; + reg = <0x4a008640 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_phy2_always_on_clk32k: usb_phy2_always_on_clk32k@4a008688 { + compatible = "gate-clock"; + reg = <0x4a008688 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_phy3_always_on_clk32k: usb_phy3_always_on_clk32k@4a008698 { + compatible = "gate-clock"; + reg = <0x4a008698 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +/* Remaining optional clocks */ +atl_dpll_clk_mux: atl_dpll_clk_mux@4a008c00 { + compatible = "mux-clock"; + clocks = <&sys_32k_ck>, <&video1_clkin_ck>, <&video2_clkin_ck>, <&hdmi_clkin_ck>; + #clock-cells = <0>; + reg = <0x4a008c00 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +atl_gfclk_mux: atl_gfclk_mux@4a008c00 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_abe_m2_ck>, <&atl_dpll_clk_mux>; + #clock-cells = <0>; + reg = <0x4a008c00 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +dcan1_sys_clk_mux: dcan1_sys_clk_mux@4ae07888 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae07888 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gmac_gmii_ref_clk_div: gmac_gmii_ref_clk_div@4a0093d0 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_m2_ck>; + #clock-cells = <0>; + reg = <0x4a0093d0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; + table = < 2 0 >; +}; + +gmac_rft_clk_mux: gmac_rft_clk_mux@4a0093d0 { + compatible = "mux-clock"; + clocks = <&video1_clkin_ck>, <&video2_clkin_ck>, <&dpll_abe_m2_ck>, <&hdmi_clkin_ck>, <&l3_iclk_div>; + #clock-cells = <0>; + reg = <0x4a0093d0 0x4>; + bit-mask = <0x7>; + bit-shift = <25>; +}; + +gpu_core_gclk_mux: gpu_core_gclk_mux@4a009220 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4a009220 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +gpu_hyd_gclk_mux: gpu_hyd_gclk_mux@4a009220 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4a009220 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +ipu1_gfclk_mux: ipu1_gfclk_mux@4a005520 { + compatible = "mux-clock"; + clocks = <&dpll_abe_m2x2_ck>, <&dpll_core_h22x2_ck>; + #clock-cells = <0>; + reg = <0x4a005520 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +l3instr_ts_gclk_div: l3instr_ts_gclk_div@4a008e50 { + compatible = "divider-clock"; + clocks = <&wkupaon_iclk_mux>; + #clock-cells = <0>; + reg = <0x4a008e50 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; + table = < 8 0 >, < 16 1 >, < 32 2 >; +}; + +mcasp1_ahclkr_mux: mcasp1_ahclkr_mux@4a005550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp1_ahclkx_mux: mcasp1_ahclkx_mux@4a005550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp1_aux_gfclk_mux: mcasp1_aux_gfclk_mux@4a005550 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp2_ahclkr_mux: mcasp2_ahclkr_mux@4a009860 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp2_ahclkx_mux: mcasp2_ahclkx_mux@4a009860 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp2_aux_gfclk_mux: mcasp2_aux_gfclk_mux@4a009860 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp3_ahclkx_mux: mcasp3_ahclkx_mux@4a009868 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009868 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp3_aux_gfclk_mux: mcasp3_aux_gfclk_mux@4a009868 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009868 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp4_ahclkx_mux: mcasp4_ahclkx_mux@4a009898 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009898 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp4_aux_gfclk_mux: mcasp4_aux_gfclk_mux@4a009898 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009898 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp5_ahclkx_mux: mcasp5_ahclkx_mux@4a009878 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009878 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp5_aux_gfclk_mux: mcasp5_aux_gfclk_mux@4a009878 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009878 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp6_ahclkx_mux: mcasp6_ahclkx_mux@4a009904 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009904 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp6_aux_gfclk_mux: mcasp6_aux_gfclk_mux@4a009904 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009904 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp7_ahclkx_mux: mcasp7_ahclkx_mux@4a009908 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009908 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp7_aux_gfclk_mux: mcasp7_aux_gfclk_mux@4a009908 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009908 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp8_ahclk_mux: mcasp8_ahclk_mux@4a009890 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009890 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp8_aux_gfclk_mux: mcasp8_aux_gfclk_mux@4a009890 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009890 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mmc1_fclk_mux: mmc1_fclk_mux@4a009328 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc1_fclk_div: mmc1_fclk_div@4a009328 { + compatible = "divider-clock"; + clocks = <&mmc1_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc2_fclk_mux: mmc2_fclk_mux@4a009330 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009330 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc2_fclk_div: mmc2_fclk_div@4a009330 { + compatible = "divider-clock"; + clocks = <&mmc2_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009330 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc3_gfclk_mux: mmc3_gfclk_mux@4a009820 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009820 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc3_gfclk_div: mmc3_gfclk_div@4a009820 { + compatible = "divider-clock"; + clocks = <&mmc3_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009820 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc4_gfclk_mux: mmc4_gfclk_mux@4a009828 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009828 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc4_gfclk_div: mmc4_gfclk_div@4a009828 { + compatible = "divider-clock"; + clocks = <&mmc4_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009828 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +qspi_gfclk_mux: qspi_gfclk_mux@4a009838 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_h13x2_ck>; + #clock-cells = <0>; + reg = <0x4a009838 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +qspi_gfclk_div: qspi_gfclk_div@4a009838 { + compatible = "divider-clock"; + clocks = <&qspi_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009838 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +timer10_gfclk_mux: timer10_gfclk_mux@4a009728 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009728 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer11_gfclk_mux: timer11_gfclk_mux@4a009730 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009730 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer13_gfclk_mux: timer13_gfclk_mux@4a0097c8 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097c8 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer14_gfclk_mux: timer14_gfclk_mux@4a0097d0 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097d0 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer15_gfclk_mux: timer15_gfclk_mux@4a0097d8 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097d8 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer16_gfclk_mux: timer16_gfclk_mux@4a009830 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009830 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer1_gfclk_mux: timer1_gfclk_mux@4ae07840 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4ae07840 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer2_gfclk_mux: timer2_gfclk_mux@4a009738 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009738 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer3_gfclk_mux: timer3_gfclk_mux@4a009740 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009740 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer4_gfclk_mux: timer4_gfclk_mux@4a009748 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009748 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer5_gfclk_mux: timer5_gfclk_mux@4a005558 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005558 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer6_gfclk_mux: timer6_gfclk_mux@4a005560 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005560 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer7_gfclk_mux: timer7_gfclk_mux@4a005568 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005568 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer8_gfclk_mux: timer8_gfclk_mux@4a005570 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005570 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer9_gfclk_mux: timer9_gfclk_mux@4a009750 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009750 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +uart10_gfclk_mux: uart10_gfclk_mux@4ae07880 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae07880 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart1_gfclk_mux: uart1_gfclk_mux@4a009840 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009840 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart2_gfclk_mux: uart2_gfclk_mux@4a009848 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009848 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart3_gfclk_mux: uart3_gfclk_mux@4a009850 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009850 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart4_gfclk_mux: uart4_gfclk_mux@4a009858 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009858 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart5_gfclk_mux: uart5_gfclk_mux@4a009870 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009870 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart6_gfclk_mux: uart6_gfclk_mux@4a005580 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a005580 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart7_gfclk_mux: uart7_gfclk_mux@4a0098d0 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098d0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart8_gfclk_mux: uart8_gfclk_mux@4a0098e0 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098e0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart9_gfclk_mux: uart9_gfclk_mux@4a0098e8 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098e8 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip1_gclk_mux: vip1_gclk_mux@4a009020 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009020 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip2_gclk_mux: vip2_gclk_mux@4a009028 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009028 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip3_gclk_mux: vip3_gclk_mux@4a009030 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009030 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/4] ARM: dts: dra7xx clock data @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-arm-kernel This patch creates the clock node mapping for DRA7xx. TODO: 1) include this from base dra7.dtsi file once available 2) apll_pcie_ck is currently broken, proper support code missing Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/boot/dts/dra7-clocks.dtsi | 2099 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2099 insertions(+) create mode 100644 arch/arm/boot/dts/dra7-clocks.dtsi diff --git a/arch/arm/boot/dts/dra7-clocks.dtsi b/arch/arm/boot/dts/dra7-clocks.dtsi new file mode 100644 index 0000000..5b1e107 --- /dev/null +++ b/arch/arm/boot/dts/dra7-clocks.dtsi @@ -0,0 +1,2099 @@ +/* + * Device Tree Source for DRA7xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* Root clocks */ +atl_clkin0_ck: atl_clkin0_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atl_clkin1_ck: atl_clkin1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atl_clkin2_ck: atl_clkin2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +atlclkin3_ck: atlclkin3_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +hdmi_clkin_ck: hdmi_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +mlb_clkin_ck: mlb_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +mlbp_clkin_ck: mlbp_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +pciesref_acs_clk_ck: pciesref_acs_clk_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <100000000>; +}; + +ref_clkin0_ck: ref_clkin0_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin1_ck: ref_clkin1_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin2_ck: ref_clkin2_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +ref_clkin3_ck: ref_clkin3_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +rmii_clk_ck: rmii_clk_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +sdvenc_clkin_ck: sdvenc_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +secure_32k_clk_src_ck: secure_32k_clk_src_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +sys_32k_ck: sys_32k_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +}; + +virt_12000000_ck: virt_12000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12000000>; +}; + +virt_13000000_ck: virt_13000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <13000000>; +}; + +virt_16800000_ck: virt_16800000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <16800000>; +}; + +virt_19200000_ck: virt_19200000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <19200000>; +}; + +virt_20000000_ck: virt_20000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <20000000>; +}; + +virt_26000000_ck: virt_26000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <26000000>; +}; + +virt_27000000_ck: virt_27000000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <27000000>; +}; + +virt_38400000_ck: virt_38400000_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <38400000>; +}; + +sys_clkin1: sys_clkin1 at 4ae06110 { + compatible = "mux-clock"; + clocks = <&virt_12000000_ck>, <&virt_20000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>; + #clock-cells = <0>; + reg = <0x4ae06110 0x4>; + bit-mask = <0x7>; + index-starts-at-one; +}; + +sys_clkin2: sys_clkin2 { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <22579200>; +}; + +usb_otg_clkin_ck: usb_otg_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video1_clkin_ck: video1_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video1_m2_clkin_ck: video1_m2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video2_clkin_ck: video2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +video2_m2_clkin_ck: video2_m2_clkin_ck { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <0>; +}; + +/* Module clocks and DPLL outputs */ +abe_dpll_sys_clk_mux: abe_dpll_sys_clk_mux at 4ae06118 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae06118 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux at 4ae06114 { + compatible = "mux-clock"; + clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae06114 0x4>; + bit-mask = <0x1>; +}; + +abe_dpll_clk_mux: abe_dpll_clk_mux at 4ae0610c { + compatible = "mux-clock"; + clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae0610c 0x4>; + bit-mask = <0x1>; +}; + +/* DPLL_ABE */ +dpll_abe_ck: dpll_abe_ck { + clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>; + #clock-cells = <0>; + reg = <0x4a0051e0 0x4>, <0x4a0051e4 0x4>, <0x4a0051e8 0x4>, <0x4a0051ec 0x4>; + ti,clk-bypass = <&abe_dpll_bypass_clk_mux>; + ti,clk-ref = <&abe_dpll_clk_mux>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-regm4xen; +}; + +dpll_abe_x2_ck: dpll_abe_x2_ck { + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_abe_m2x2_ck: dpll_abe_m2x2_ck at 4a0051f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0051f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +abe_24m_fclk: abe_24m_fclk at 4ae0611c { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae0611c 0x4>; + bit-mask = <0x1>; + table = < 8 0 >, < 16 1 >; +}; + +abe_clk: abe_clk at 4a005108 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a005108 0x4>; + bit-mask = <0x3>; + index-power-of-two; +}; + +aess_fclk: aess_fclk at 4ae06178 { + compatible = "divider-clock"; + clocks = <&abe_clk>; + #clock-cells = <0>; + reg = <0x4ae06178 0x4>; + bit-mask = <0x1>; +}; + +abe_giclk_div: abe_giclk_div at 4ae06174 { + compatible = "divider-clock"; + clocks = <&aess_fclk>; + #clock-cells = <0>; + reg = <0x4ae06174 0x4>; + bit-mask = <0x1>; +}; + +abe_lp_clk_div: abe_lp_clk_div at 4ae061d8 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae061d8 0x4>; + bit-mask = <0x1>; + table = < 16 0 >, < 32 1 >; +}; + +abe_sys_clk_div: abe_sys_clk_div at 4ae06120 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06120 0x4>; + bit-mask = <0x1>; +}; + +adc_gfclk_mux: adc_gfclk_mux at 4ae061dc { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>, <&sys_32k_ck>; + #clock-cells = <0>; + reg = <0x4ae061dc 0x4>; + bit-mask = <0x7>; +}; + +/* DPLL_PCIE_REF */ +dpll_pcie_ref_ck: dpll_pcie_ref_ck { + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&sys_clkin1>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_pcie_ref_m2ldo_ck: dpll_pcie_ref_m2ldo_ck at 4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* APLL_PCIE */ +/* XXX: apll_pcie_ck is currently broken, needs proper support code for it */ +apll_pcie_ck: apll_pcie_ck { + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008200 0x4>, <0x4a008204 0x4>, <0x4a008208 0x4>, <0x4a00820c 0x4>; + ti,clk-bypass = <&dpll_pcie_ref_ck>; + ti,clk-ref = <&dpll_pcie_ref_ck>; + compatible = "ti,omap4-dpll-clock"; +}; + +apll_pcie_clkvcoldo: apll_pcie_clkvcoldo { + compatible = "fixed-factor-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +apll_pcie_clkvcoldo_div: apll_pcie_clkvcoldo_div { + compatible = "fixed-factor-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +apll_pcie_m2_ck: apll_pcie_m2_ck at 4a008224 { + compatible = "divider-clock"; + clocks = <&apll_pcie_ck>; + #clock-cells = <0>; + reg = <0x4a008224 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +sys_clk1_dclk_div: sys_clk1_dclk_div at 4ae061c8 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae061c8 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +sys_clk2_dclk_div: sys_clk2_dclk_div at 4ae061cc { + compatible = "divider-clock"; + clocks = <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061cc 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_abe_m2_ck: dpll_abe_m2_ck at 4a0051f0 { + compatible = "divider-clock"; + clocks = <&dpll_abe_ck>; + #clock-cells = <0>; + reg = <0x4a0051f0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +per_abe_x1_dclk_div: per_abe_x1_dclk_div at 4ae061bc { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061bc 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_abe_m3x2_ck: dpll_abe_m3x2_ck at 4a0051f4 { + compatible = "divider-clock"; + clocks = <&dpll_abe_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0051f4 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +/* DPLL_CORE */ +dpll_core_ck: dpll_core_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a005120 0x4>, <0x4a005124 0x4>, <0x4a005128 0x4>, <0x4a00512c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-core; +}; + +dpll_core_x2_ck: dpll_core_x2_ck { + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_core_h12x2_ck: dpll_core_h12x2_ck at 4a00513c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00513c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_MPU */ +dpll_mpu_ck: dpll_mpu_ck { + clocks = <&sys_clkin1>, <&mpu_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005160 0x4>, <0x4a005164 0x4>, <0x4a005168 0x4>, <0x4a00516c 0x4>; + ti,clk-bypass = <&mpu_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_mpu_m2_ck: dpll_mpu_m2_ck at 4a005170 { + compatible = "divider-clock"; + clocks = <&dpll_mpu_ck>; + #clock-cells = <0>; + reg = <0x4a005170 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +mpu_dclk_div: mpu_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_mpu_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +dsp_dpll_hs_clk_div: dsp_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_DSP */ +dpll_dsp_ck: dpll_dsp_ck { + clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005234 0x4>, <0x4a005238 0x4>, <0x4a00523c 0x4>, <0x4a005240 0x4>; + ti,clk-bypass = <&dsp_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_dsp_m2_ck: dpll_dsp_m2_ck at 4a005244 { + compatible = "divider-clock"; + clocks = <&dpll_dsp_ck>; + #clock-cells = <0>; + reg = <0x4a005244 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dsp_gclk_div: dsp_gclk_div at 4ae0618c { + compatible = "divider-clock"; + clocks = <&dpll_dsp_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae0618c 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +iva_dpll_hs_clk_div: iva_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_IVA */ +dpll_iva_ck: dpll_iva_ck { + clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a0051a0 0x4>, <0x4a0051a4 0x4>, <0x4a0051a8 0x4>, <0x4a0051ac 0x4>; + ti,clk-bypass = <&iva_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_iva_m2_ck: dpll_iva_m2_ck at 4a0051b0 { + compatible = "divider-clock"; + clocks = <&dpll_iva_ck>; + #clock-cells = <0>; + reg = <0x4a0051b0 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +iva_dclk: iva_dclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_iva_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_GPU */ +dpll_gpu_ck: dpll_gpu_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052d8 0x4>, <0x4a0052dc 0x4>, <0x4a0052e0 0x4>, <0x4a0052e4 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_gpu_m2_ck: dpll_gpu_m2_ck at 4a0052e8 { + compatible = "divider-clock"; + clocks = <&dpll_gpu_ck>; + #clock-cells = <0>; + reg = <0x4a0052e8 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +gpu_dclk: gpu_dclk at 4ae061a0 { + compatible = "divider-clock"; + clocks = <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061a0 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_core_m2_ck: dpll_core_m2_ck at 4a005130 { + compatible = "divider-clock"; + clocks = <&dpll_core_ck>; + #clock-cells = <0>; + reg = <0x4a005130 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +core_dpll_out_dclk_div: core_dpll_out_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_DDR */ +dpll_ddr_ck: dpll_ddr_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a005210 0x4>, <0x4a005214 0x4>, <0x4a005218 0x4>, <0x4a00521c 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_ddr_m2_ck: dpll_ddr_m2_ck at 4a005220 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_ck>; + #clock-cells = <0>; + reg = <0x4a005220 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +emif_phy_dclk_div: emif_phy_dclk_div at 4ae06190 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae06190 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +/* DPLL_GMAC */ +dpll_gmac_ck: dpll_gmac_ck { + clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052a8 0x4>, <0x4a0052ac 0x4>, <0x4a0052b0 0x4>, <0x4a0052b4 0x4>; + ti,clk-bypass = <&dpll_abe_m3x2_ck>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_gmac_m2_ck: dpll_gmac_m2_ck at 4a0052b8 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_ck>; + #clock-cells = <0>; + reg = <0x4a0052b8 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +gmac_250m_dclk_div: gmac_250m_dclk_div at 4ae0619c { + compatible = "divider-clock"; + clocks = <&dpll_gmac_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae0619c 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +video2_dclk_div: video2_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&video2_m2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_dclk_div: video1_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&video1_m2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_dclk_div: hdmi_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +per_dpll_hs_clk_div: per_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +/* DPLL_PER */ +dpll_per_ck: dpll_per_ck { + clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008140 0x4>, <0x4a008144 0x4>, <0x4a008148 0x4>, <0x4a00814c 0x4>; + ti,clk-bypass = <&per_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_per_m2_ck: dpll_per_m2_ck at 4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +func_96m_aon_dclk_div: func_96m_aon_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +usb_dpll_hs_clk_div: usb_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_abe_m3x2_ck>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; +}; + +/* DPLL_USB */ +dpll_usb_ck: dpll_usb_ck { + clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a008180 0x4>, <0x4a008184 0x4>, <0x4a008188 0x4>, <0x4a00818c 0x4>; + ti,clk-bypass = <&usb_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + ti,clkdm-name = "coreaon_clkdm"; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-j-type; +}; + +dpll_usb_m2_ck: dpll_usb_m2_ck at 4a008190 { + compatible = "divider-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + reg = <0x4a008190 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +l3init_480m_dclk_div: l3init_480m_dclk_div at 4ae061ac { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061ac 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +usb_otg_dclk_div: usb_otg_dclk_div at 4ae06184 { + compatible = "divider-clock"; + clocks = <&usb_otg_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06184 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +sata_dclk_div: sata_dclk_div at 4ae061c0 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae061c0 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +dpll_pcie_ref_m2_ck: dpll_pcie_ref_m2_ck at 4a008210 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_ck>; + #clock-cells = <0>; + reg = <0x4a008210 0x4>; + bit-mask = <0x7f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +pcie2_dclk_div: pcie2_dclk_div at 4ae061b8 { + compatible = "divider-clock"; + clocks = <&dpll_pcie_ref_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061b8 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +pcie_dclk_div: pcie_dclk_div at 4ae061b4 { + compatible = "divider-clock"; + clocks = <&apll_pcie_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae061b4 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +emu_dclk_div: emu_dclk_div at 4ae06194 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06194 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +secure_32k_dclk_div: secure_32k_dclk_div at 4ae061c4 { + compatible = "divider-clock"; + clocks = <&secure_32k_clk_src_ck>; + #clock-cells = <0>; + reg = <0x4ae061c4 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +eve_dpll_hs_clk_div: eve_dpll_hs_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +/* DPLL_EVE */ +dpll_eve_ck: dpll_eve_ck { + clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>; + #clock-cells = <0>; + reg = <0x4a005284 0x4>, <0x4a005288 0x4>, <0x4a00528c 0x4>, <0x4a005290 0x4>; + ti,clk-bypass = <&eve_dpll_hs_clk_div>; + ti,clk-ref = <&sys_clkin1>; + compatible = "ti,omap4-dpll-clock"; +}; + +dpll_eve_m2_ck: dpll_eve_m2_ck at 4a005294 { + compatible = "divider-clock"; + clocks = <&dpll_eve_ck>; + #clock-cells = <0>; + reg = <0x4a005294 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +eve_dclk_div: eve_dclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_eve_m2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +clkoutmux0_clk_mux: clkoutmux0_clk_mux at 4ae06158 { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae06158 0x4>; + bit-mask = <0x1f>; +}; + +clkoutmux1_clk_mux: clkoutmux1_clk_mux at 4ae0615c { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae0615c 0x4>; + bit-mask = <0x1f>; +}; + +clkoutmux2_clk_mux: clkoutmux2_clk_mux at 4ae06160 { + compatible = "mux-clock"; + clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>; + #clock-cells = <0>; + reg = <0x4ae06160 0x4>; + bit-mask = <0x1f>; +}; + +custefuse_sys_gfclk_div: custefuse_sys_gfclk_div { + compatible = "fixed-factor-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +dpll_core_h13x2_ck: dpll_core_h13x2_ck at 4a005140 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005140 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h14x2_ck: dpll_core_h14x2_ck at 4a005144 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005144 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h22x2_ck: dpll_core_h22x2_ck at 4a005154 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005154 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h23x2_ck: dpll_core_h23x2_ck at 4a005158 { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_core_h24x2_ck: dpll_core_h24x2_ck at 4a00515c { + compatible = "divider-clock"; + clocks = <&dpll_core_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00515c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_ddr_x2_ck: dpll_ddr_x2_ck { + clocks = <&dpll_ddr_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_ddr_h11x2_ck: dpll_ddr_h11x2_ck at 4a005228 { + compatible = "divider-clock"; + clocks = <&dpll_ddr_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005228 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_dsp_x2_ck: dpll_dsp_x2_ck { + clocks = <&dpll_dsp_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_dsp_m3x2_ck: dpll_dsp_m3x2_ck at 4a005248 { + compatible = "divider-clock"; + clocks = <&dpll_dsp_x2_ck>; + #clock-cells = <0>; + reg = <0x4a005248 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_x2_ck: dpll_gmac_x2_ck { + clocks = <&dpll_gmac_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_gmac_h11x2_ck: dpll_gmac_h11x2_ck at 4a0052c0 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c0 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_h12x2_ck: dpll_gmac_h12x2_ck at 4a0052c4 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c4 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_h13x2_ck: dpll_gmac_h13x2_ck at 4a0052c8 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052c8 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_gmac_m3x2_ck: dpll_gmac_m3x2_ck at 4a0052bc { + compatible = "divider-clock"; + clocks = <&dpll_gmac_x2_ck>; + #clock-cells = <0>; + reg = <0x4a0052bc 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_x2_ck: dpll_per_x2_ck { + clocks = <&dpll_per_ck>; + #clock-cells = <0>; + compatible = "ti,omap4-dpll-clock"; + ti,dpll-clk-x2; +}; + +dpll_per_h11x2_ck: dpll_per_h11x2_ck at 4a008158 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008158 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h12x2_ck: dpll_per_h12x2_ck at 4a00815c { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a00815c 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h13x2_ck: dpll_per_h13x2_ck at 4a008160 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008160 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_h14x2_ck: dpll_per_h14x2_ck at 4a008164 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008164 0x4>; + bit-mask = <0x3f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_per_m2x2_ck: dpll_per_m2x2_ck at 4a008150 { + compatible = "divider-clock"; + clocks = <&dpll_per_x2_ck>; + #clock-cells = <0>; + reg = <0x4a008150 0x4>; + bit-mask = <0x1f>; + ti,autoidle-shift = <8>; + ti,autoidle-low; + index-starts-at-one; +}; + +dpll_usb_clkdcoldo: dpll_usb_clkdcoldo { + compatible = "fixed-factor-clock"; + clocks = <&dpll_usb_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +eve_clk: eve_clk at 4ae06180 { + compatible = "mux-clock"; + clocks = <&dpll_eve_m2_ck>, <&dpll_dsp_m3x2_ck>; + #clock-cells = <0>; + reg = <0x4ae06180 0x4>; + bit-mask = <0x1>; +}; + +func_128m_clk: func_128m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +func_12m_fclk: func_12m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <16>; + clock-mult = <1>; +}; + +func_24m_clk: func_24m_clk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_48m_fclk: func_48m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; +}; + +func_96m_fclk: func_96m_fclk { + compatible = "fixed-factor-clock"; + clocks = <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +gmii_m_clk_div: gmii_m_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_gmac_h11x2_ck>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; +}; + +hdmi_clk2_div: hdmi_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_div_clk: hdmi_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&hdmi_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +hdmi_dpll_clk_mux: hdmi_dpll_clk_mux at 4ae061a4 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061a4 0x4>; + bit-mask = <0x7>; +}; + +l3_iclk_div: l3_iclk_div { + compatible = "fixed-factor-clock"; + clocks = <&dpll_core_h12x2_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +l3init_60m_fclk: l3init_60m_fclk at 4a008104 { + compatible = "divider-clock"; + clocks = <&dpll_usb_m2_ck>; + #clock-cells = <0>; + reg = <0x4a008104 0x4>; + bit-mask = <0x1>; + table = < 1 0 >, < 8 1 >; +}; + +l4_root_clk_div: l4_root_clk_div { + compatible = "fixed-factor-clock"; + clocks = <&l3_iclk_div>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +mlb_clk: mlb_clk at 4ae06134 { + compatible = "divider-clock"; + clocks = <&mlb_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06134 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +mlbp_clk: mlbp_clk at 4ae06130 { + compatible = "divider-clock"; + clocks = <&mlbp_clkin_ck>; + #clock-cells = <0>; + reg = <0x4ae06130 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +per_abe_x1_gfclk2_div: per_abe_x1_gfclk2_div at 4ae06138 { + compatible = "divider-clock"; + clocks = <&dpll_abe_m2_ck>; + #clock-cells = <0>; + reg = <0x4ae06138 0x4>; + bit-mask = <0x7>; + index-power-of-two; +}; + +timer_sys_clk_div: timer_sys_clk_div at 4ae06144 { + compatible = "divider-clock"; + clocks = <&sys_clkin1>; + #clock-cells = <0>; + reg = <0x4ae06144 0x4>; + bit-mask = <0x1>; +}; + +video1_clk2_div: video1_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&video1_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_div_clk: video1_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&video1_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video1_dpll_clk_mux: video1_dpll_clk_mux at 4ae061d0 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061d0 0x4>; + bit-mask = <0x7>; +}; + +video2_clk2_div: video2_clk2_div { + compatible = "fixed-factor-clock"; + clocks = <&video2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video2_div_clk: video2_div_clk { + compatible = "fixed-factor-clock"; + clocks = <&video2_clkin_ck>; + #clock-cells = <0>; + clock-mult = <1>; + clock-div = <1>; +}; + +video2_dpll_clk_mux: video2_dpll_clk_mux at 4ae061d4 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae061d4 0x4>; + bit-mask = <0x7>; +}; + +wkupaon_iclk_mux: wkupaon_iclk_mux at 4ae06108 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&abe_lp_clk_div>; + #clock-cells = <0>; + reg = <0x4ae06108 0x4>; + bit-mask = <0x1>; +}; + +/* Leaf clocks controlled by modules */ +dss_32khz_clk: dss_32khz_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <11>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +dss_48mhz_clk: dss_48mhz_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <9>; + clocks = <&func_48m_fclk>; + #clock-cells = <0>; +}; + +dss_dss_clk: dss_dss_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <8>; + clocks = <&dpll_per_h12x2_ck>; + #clock-cells = <0>; +}; + +dss_hdmi_clk: dss_hdmi_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <10>; + clocks = <&hdmi_dpll_clk_mux>; + #clock-cells = <0>; +}; + +dss_video1_clk: dss_video1_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <12>; + clocks = <&video1_dpll_clk_mux>; + #clock-cells = <0>; +}; + +dss_video2_clk: dss_video2_clk at 4a009120 { + compatible = "gate-clock"; + reg = <0x4a009120 0x4>; + bit-shift = <13>; + clocks = <&video2_dpll_clk_mux>; + #clock-cells = <0>; +}; + +gpio1_dbclk: gpio1_dbclk at 4ae07838 { + compatible = "gate-clock"; + reg = <0x4ae07838 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio2_dbclk: gpio2_dbclk at 4a009760 { + compatible = "gate-clock"; + reg = <0x4a009760 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio3_dbclk: gpio3_dbclk at 4a009768 { + compatible = "gate-clock"; + reg = <0x4a009768 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio4_dbclk: gpio4_dbclk at 4a009770 { + compatible = "gate-clock"; + reg = <0x4a009770 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio5_dbclk: gpio5_dbclk at 4a009778 { + compatible = "gate-clock"; + reg = <0x4a009778 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio6_dbclk: gpio6_dbclk at 4a009780 { + compatible = "gate-clock"; + reg = <0x4a009780 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio7_dbclk: gpio7_dbclk at 4a009810 { + compatible = "gate-clock"; + reg = <0x4a009810 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +gpio8_dbclk: gpio8_dbclk at 4a009818 { + compatible = "gate-clock"; + reg = <0x4a009818 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc1_clk32k: mmc1_clk32k at 4a009328 { + compatible = "gate-clock"; + reg = <0x4a009328 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc2_clk32k: mmc2_clk32k at 4a009330 { + compatible = "gate-clock"; + reg = <0x4a009330 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc3_clk32k: mmc3_clk32k at 4a009820 { + compatible = "gate-clock"; + reg = <0x4a009820 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +mmc4_clk32k: mmc4_clk32k at 4a009828 { + compatible = "gate-clock"; + reg = <0x4a009828 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +sata_ref_clk: sata_ref_clk at 4a009388 { + compatible = "gate-clock"; + reg = <0x4a009388 0x4>; + bit-shift = <8>; + clocks = <&sys_clkin1>; + #clock-cells = <0>; +}; + +usb_otg_ss1_refclk960m: usb_otg_ss1_refclk960m at 4a0093f0 { + compatible = "gate-clock"; + reg = <0x4a0093f0 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_otg_ss2_refclk960m: usb_otg_ss2_refclk960m at 4a009340 { + compatible = "gate-clock"; + reg = <0x4a009340 0x4>; + bit-shift = <8>; + clocks = <&dpll_usb_clkdcoldo>; + #clock-cells = <0>; +}; + +usb_phy1_always_on_clk32k: usb_phy1_always_on_clk32k at 4a008640 { + compatible = "gate-clock"; + reg = <0x4a008640 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_phy2_always_on_clk32k: usb_phy2_always_on_clk32k at 4a008688 { + compatible = "gate-clock"; + reg = <0x4a008688 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +usb_phy3_always_on_clk32k: usb_phy3_always_on_clk32k at 4a008698 { + compatible = "gate-clock"; + reg = <0x4a008698 0x4>; + bit-shift = <8>; + clocks = <&sys_32k_ck>; + #clock-cells = <0>; +}; + +/* Remaining optional clocks */ +atl_dpll_clk_mux: atl_dpll_clk_mux at 4a008c00 { + compatible = "mux-clock"; + clocks = <&sys_32k_ck>, <&video1_clkin_ck>, <&video2_clkin_ck>, <&hdmi_clkin_ck>; + #clock-cells = <0>; + reg = <0x4a008c00 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +atl_gfclk_mux: atl_gfclk_mux at 4a008c00 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_abe_m2_ck>, <&atl_dpll_clk_mux>; + #clock-cells = <0>; + reg = <0x4a008c00 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +dcan1_sys_clk_mux: dcan1_sys_clk_mux at 4ae07888 { + compatible = "mux-clock"; + clocks = <&sys_clkin1>, <&sys_clkin2>; + #clock-cells = <0>; + reg = <0x4ae07888 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +gmac_gmii_ref_clk_div: gmac_gmii_ref_clk_div at 4a0093d0 { + compatible = "divider-clock"; + clocks = <&dpll_gmac_m2_ck>; + #clock-cells = <0>; + reg = <0x4a0093d0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; + table = < 2 0 >; +}; + +gmac_rft_clk_mux: gmac_rft_clk_mux at 4a0093d0 { + compatible = "mux-clock"; + clocks = <&video1_clkin_ck>, <&video2_clkin_ck>, <&dpll_abe_m2_ck>, <&hdmi_clkin_ck>, <&l3_iclk_div>; + #clock-cells = <0>; + reg = <0x4a0093d0 0x4>; + bit-mask = <0x7>; + bit-shift = <25>; +}; + +gpu_core_gclk_mux: gpu_core_gclk_mux at 4a009220 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4a009220 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; +}; + +gpu_hyd_gclk_mux: gpu_hyd_gclk_mux at 4a009220 { + compatible = "mux-clock"; + clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>; + #clock-cells = <0>; + reg = <0x4a009220 0x4>; + bit-mask = <0x3>; + bit-shift = <26>; +}; + +ipu1_gfclk_mux: ipu1_gfclk_mux at 4a005520 { + compatible = "mux-clock"; + clocks = <&dpll_abe_m2x2_ck>, <&dpll_core_h22x2_ck>; + #clock-cells = <0>; + reg = <0x4a005520 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +l3instr_ts_gclk_div: l3instr_ts_gclk_div at 4a008e50 { + compatible = "divider-clock"; + clocks = <&wkupaon_iclk_mux>; + #clock-cells = <0>; + reg = <0x4a008e50 0x4>; + bit-mask = <0x3>; + bit-shift = <24>; + table = < 8 0 >, < 16 1 >, < 32 2 >; +}; + +mcasp1_ahclkr_mux: mcasp1_ahclkr_mux at 4a005550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp1_ahclkx_mux: mcasp1_ahclkx_mux at 4a005550 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp1_aux_gfclk_mux: mcasp1_aux_gfclk_mux at 4a005550 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a005550 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp2_ahclkr_mux: mcasp2_ahclkr_mux at 4a009860 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp2_ahclkx_mux: mcasp2_ahclkx_mux at 4a009860 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0xf>; + bit-shift = <28>; +}; + +mcasp2_aux_gfclk_mux: mcasp2_aux_gfclk_mux at 4a009860 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009860 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp3_ahclkx_mux: mcasp3_ahclkx_mux at 4a009868 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009868 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp3_aux_gfclk_mux: mcasp3_aux_gfclk_mux at 4a009868 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009868 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp4_ahclkx_mux: mcasp4_ahclkx_mux at 4a009898 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009898 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp4_aux_gfclk_mux: mcasp4_aux_gfclk_mux at 4a009898 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009898 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp5_ahclkx_mux: mcasp5_ahclkx_mux at 4a009878 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009878 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp5_aux_gfclk_mux: mcasp5_aux_gfclk_mux at 4a009878 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009878 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp6_ahclkx_mux: mcasp6_ahclkx_mux at 4a009904 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009904 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp6_aux_gfclk_mux: mcasp6_aux_gfclk_mux at 4a009904 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009904 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp7_ahclkx_mux: mcasp7_ahclkx_mux at 4a009908 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009908 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mcasp7_aux_gfclk_mux: mcasp7_aux_gfclk_mux at 4a009908 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009908 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp8_ahclk_mux: mcasp8_ahclk_mux at 4a009890 { + compatible = "mux-clock"; + clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>; + #clock-cells = <0>; + reg = <0x4a009890 0x4>; + bit-mask = <0x3>; + bit-shift = <22>; +}; + +mcasp8_aux_gfclk_mux: mcasp8_aux_gfclk_mux at 4a009890 { + compatible = "mux-clock"; + clocks = <&per_abe_x1_gfclk2_div>, <&video1_clk2_div>, <&video2_clk2_div>, <&hdmi_clk2_div>; + #clock-cells = <0>; + reg = <0x4a009890 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +mmc1_fclk_mux: mmc1_fclk_mux at 4a009328 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc1_fclk_div: mmc1_fclk_div at 4a009328 { + compatible = "divider-clock"; + clocks = <&mmc1_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009328 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc2_fclk_mux: mmc2_fclk_mux at 4a009330 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009330 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc2_fclk_div: mmc2_fclk_div at 4a009330 { + compatible = "divider-clock"; + clocks = <&mmc2_fclk_mux>; + #clock-cells = <0>; + reg = <0x4a009330 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc3_gfclk_mux: mmc3_gfclk_mux at 4a009820 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009820 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc3_gfclk_div: mmc3_gfclk_div at 4a009820 { + compatible = "divider-clock"; + clocks = <&mmc3_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009820 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +mmc4_gfclk_mux: mmc4_gfclk_mux at 4a009828 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009828 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +mmc4_gfclk_div: mmc4_gfclk_div at 4a009828 { + compatible = "divider-clock"; + clocks = <&mmc4_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009828 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +qspi_gfclk_mux: qspi_gfclk_mux at 4a009838 { + compatible = "mux-clock"; + clocks = <&func_128m_clk>, <&dpll_per_h13x2_ck>; + #clock-cells = <0>; + reg = <0x4a009838 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +qspi_gfclk_div: qspi_gfclk_div at 4a009838 { + compatible = "divider-clock"; + clocks = <&qspi_gfclk_mux>; + #clock-cells = <0>; + reg = <0x4a009838 0x4>; + bit-mask = <0x3>; + bit-shift = <25>; + index-power-of-two; +}; + +timer10_gfclk_mux: timer10_gfclk_mux at 4a009728 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009728 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer11_gfclk_mux: timer11_gfclk_mux at 4a009730 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009730 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer13_gfclk_mux: timer13_gfclk_mux at 4a0097c8 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097c8 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer14_gfclk_mux: timer14_gfclk_mux at 4a0097d0 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097d0 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer15_gfclk_mux: timer15_gfclk_mux at 4a0097d8 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a0097d8 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer16_gfclk_mux: timer16_gfclk_mux at 4a009830 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009830 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer1_gfclk_mux: timer1_gfclk_mux at 4ae07840 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4ae07840 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer2_gfclk_mux: timer2_gfclk_mux at 4a009738 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009738 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer3_gfclk_mux: timer3_gfclk_mux at 4a009740 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009740 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer4_gfclk_mux: timer4_gfclk_mux at 4a009748 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009748 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer5_gfclk_mux: timer5_gfclk_mux at 4a005558 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005558 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer6_gfclk_mux: timer6_gfclk_mux at 4a005560 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005560 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer7_gfclk_mux: timer7_gfclk_mux at 4a005568 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005568 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer8_gfclk_mux: timer8_gfclk_mux at 4a005570 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>, <&clkoutmux0_clk_mux>; + #clock-cells = <0>; + reg = <0x4a005570 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +timer9_gfclk_mux: timer9_gfclk_mux at 4a009750 { + compatible = "mux-clock"; + clocks = <&timer_sys_clk_div>, <&sys_32k_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&abe_giclk_div>, <&video1_div_clk>, <&video2_div_clk>, <&hdmi_div_clk>; + #clock-cells = <0>; + reg = <0x4a009750 0x4>; + bit-mask = <0xf>; + bit-shift = <24>; +}; + +uart10_gfclk_mux: uart10_gfclk_mux at 4ae07880 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4ae07880 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart1_gfclk_mux: uart1_gfclk_mux at 4a009840 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009840 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart2_gfclk_mux: uart2_gfclk_mux at 4a009848 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009848 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart3_gfclk_mux: uart3_gfclk_mux at 4a009850 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009850 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart4_gfclk_mux: uart4_gfclk_mux at 4a009858 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009858 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart5_gfclk_mux: uart5_gfclk_mux at 4a009870 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a009870 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart6_gfclk_mux: uart6_gfclk_mux at 4a005580 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a005580 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart7_gfclk_mux: uart7_gfclk_mux at 4a0098d0 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098d0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart8_gfclk_mux: uart8_gfclk_mux at 4a0098e0 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098e0 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +uart9_gfclk_mux: uart9_gfclk_mux at 4a0098e8 { + compatible = "mux-clock"; + clocks = <&func_48m_fclk>, <&dpll_per_m2x2_ck>; + #clock-cells = <0>; + reg = <0x4a0098e8 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip1_gclk_mux: vip1_gclk_mux at 4a009020 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009020 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip2_gclk_mux: vip2_gclk_mux at 4a009028 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009028 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; + +vip3_gclk_mux: vip3_gclk_mux at 4a009030 { + compatible = "mux-clock"; + clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>; + #clock-cells = <0>; + reg = <0x4a009030 0x4>; + bit-mask = <0x1>; + bit-shift = <24>; +}; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 2013-06-27 8:38 ` Tero Kristo @ 2013-06-27 8:38 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-omap, paul, tony, mturquette, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss cclock7xx_data.c now contains only init function and the clkdev mapping that is still needed by some drivers. Eventually most of this file can be removed, once a common location for the clk init can be found, and the clkdev mapping is no longer needed. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c new file mode 100644 index 0000000..dba528a --- /dev/null +++ b/arch/arm/mach-omap2/cclock7xx_data.c @@ -0,0 +1,83 @@ +/* + * DRA7xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * Paul Walmsley (paul@pwsan.com) + * Rajendra Nayak (rnayak@ti.com) + * Benoit Cousson (b-cousson@ti.com) + * Mike Turquette (mturquette@linaro.org) + * Tero Kristo (t-kristo@ti.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/kernel.h> +#include <linux/list.h> +#include <linux/clk-provider.h> +#include <linux/clkdev.h> +#include <linux/io.h> +#include <linux/clk/omap.h> + +#include "soc.h" +#include "clock.h" + +#define DRA7_DPLL_ABE_DEFFREQ 361267200 +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 + +/* + * clkdev + */ + +static struct omap_dt_clk dra7xx_clks[] = { + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), +}; + +int __init dra7xx_clk_init(void) +{ + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; + int rc; + /* + * Must stay commented until all OMAP SoC drivers are + * converted to runtime PM, or drivers may start crashing + * + * omap2_clk_disable_clkdm_control(); + */ + + dt_omap_clk_init(); + + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); + + omap2_clk_disable_autoidle_all(); + + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); + + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); + if (!rc) + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); + if (rc) + pr_err("%s: failed to configure ABE DPLL!\n", __func__); + + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); + if (rc) + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); + + return 0; +} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 @ 2013-06-27 8:38 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-06-27 8:38 UTC (permalink / raw) To: linux-arm-kernel cclock7xx_data.c now contains only init function and the clkdev mapping that is still needed by some drivers. Eventually most of this file can be removed, once a common location for the clk init can be found, and the clkdev mapping is no longer needed. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c new file mode 100644 index 0000000..dba528a --- /dev/null +++ b/arch/arm/mach-omap2/cclock7xx_data.c @@ -0,0 +1,83 @@ +/* + * DRA7xx Clock data + * + * Copyright (C) 2013 Texas Instruments, Inc. + * + * Paul Walmsley (paul at pwsan.com) + * Rajendra Nayak (rnayak at ti.com) + * Benoit Cousson (b-cousson at ti.com) + * Mike Turquette (mturquette at linaro.org) + * Tero Kristo (t-kristo at ti.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/kernel.h> +#include <linux/list.h> +#include <linux/clk-provider.h> +#include <linux/clkdev.h> +#include <linux/io.h> +#include <linux/clk/omap.h> + +#include "soc.h" +#include "clock.h" + +#define DRA7_DPLL_ABE_DEFFREQ 361267200 +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 + +/* + * clkdev + */ + +static struct omap_dt_clk dra7xx_clks[] = { + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), +}; + +int __init dra7xx_clk_init(void) +{ + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; + int rc; + /* + * Must stay commented until all OMAP SoC drivers are + * converted to runtime PM, or drivers may start crashing + * + * omap2_clk_disable_clkdm_control(); + */ + + dt_omap_clk_init(); + + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); + + omap2_clk_disable_autoidle_all(); + + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); + + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); + if (!rc) + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); + if (rc) + pr_err("%s: failed to configure ABE DPLL!\n", __func__); + + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); + if (rc) + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); + + return 0; +} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 2013-06-27 8:38 ` Tero Kristo @ 2013-06-28 21:04 ` Mike Turquette -1 siblings, 0 replies; 24+ messages in thread From: Mike Turquette @ 2013-06-28 21:04 UTC (permalink / raw) To: Tero Kristo, linux-omap, paul, tony, nm, rnayak Cc: linux-arm-kernel, devicetree-discuss Quoting Tero Kristo (2013-06-27 01:38:19) > cclock7xx_data.c now contains only init function and the clkdev mapping > that is still needed by some drivers. Eventually most of this file can > be removed, once a common location for the clk init can be found, and > the clkdev mapping is no longer needed. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> > --- > arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ > 1 file changed, 93 insertions(+) > create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c Why not drivers/clk/omap/clk-dra7xx.c? Regards, Mike > > diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c > new file mode 100644 > index 0000000..dba528a > --- /dev/null > +++ b/arch/arm/mach-omap2/cclock7xx_data.c > @@ -0,0 +1,83 @@ > +/* > + * DRA7xx Clock data > + * > + * Copyright (C) 2013 Texas Instruments, Inc. > + * > + * Paul Walmsley (paul@pwsan.com) > + * Rajendra Nayak (rnayak@ti.com) > + * Benoit Cousson (b-cousson@ti.com) > + * Mike Turquette (mturquette@linaro.org) > + * Tero Kristo (t-kristo@ti.com) > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include <linux/kernel.h> > +#include <linux/list.h> > +#include <linux/clk-provider.h> > +#include <linux/clkdev.h> > +#include <linux/io.h> > +#include <linux/clk/omap.h> > + > +#include "soc.h" > +#include "clock.h" > + > +#define DRA7_DPLL_ABE_DEFFREQ 361267200 > +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 > + > +/* > + * clkdev > + */ > + > +static struct omap_dt_clk dra7xx_clks[] = { > + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), > + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), > +}; > + > +int __init dra7xx_clk_init(void) > +{ > + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; > + int rc; > + /* > + * Must stay commented until all OMAP SoC drivers are > + * converted to runtime PM, or drivers may start crashing > + * > + * omap2_clk_disable_clkdm_control(); > + */ > + > + dt_omap_clk_init(); > + > + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); > + > + omap2_clk_disable_autoidle_all(); > + > + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); > + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); > + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); > + > + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); > + if (!rc) > + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); > + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); > + > + return 0; > +} > -- > 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 @ 2013-06-28 21:04 ` Mike Turquette 0 siblings, 0 replies; 24+ messages in thread From: Mike Turquette @ 2013-06-28 21:04 UTC (permalink / raw) To: linux-arm-kernel Quoting Tero Kristo (2013-06-27 01:38:19) > cclock7xx_data.c now contains only init function and the clkdev mapping > that is still needed by some drivers. Eventually most of this file can > be removed, once a common location for the clk init can be found, and > the clkdev mapping is no longer needed. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> > --- > arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ > 1 file changed, 93 insertions(+) > create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c Why not drivers/clk/omap/clk-dra7xx.c? Regards, Mike > > diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c > new file mode 100644 > index 0000000..dba528a > --- /dev/null > +++ b/arch/arm/mach-omap2/cclock7xx_data.c > @@ -0,0 +1,83 @@ > +/* > + * DRA7xx Clock data > + * > + * Copyright (C) 2013 Texas Instruments, Inc. > + * > + * Paul Walmsley (paul at pwsan.com) > + * Rajendra Nayak (rnayak at ti.com) > + * Benoit Cousson (b-cousson at ti.com) > + * Mike Turquette (mturquette at linaro.org) > + * Tero Kristo (t-kristo at ti.com) > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include <linux/kernel.h> > +#include <linux/list.h> > +#include <linux/clk-provider.h> > +#include <linux/clkdev.h> > +#include <linux/io.h> > +#include <linux/clk/omap.h> > + > +#include "soc.h" > +#include "clock.h" > + > +#define DRA7_DPLL_ABE_DEFFREQ 361267200 > +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 > + > +/* > + * clkdev > + */ > + > +static struct omap_dt_clk dra7xx_clks[] = { > + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), > + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), > + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), > + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), > +}; > + > +int __init dra7xx_clk_init(void) > +{ > + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; > + int rc; > + /* > + * Must stay commented until all OMAP SoC drivers are > + * converted to runtime PM, or drivers may start crashing > + * > + * omap2_clk_disable_clkdm_control(); > + */ > + > + dt_omap_clk_init(); > + > + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); > + > + omap2_clk_disable_autoidle_all(); > + > + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); > + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); > + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); > + > + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); > + if (!rc) > + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure ABE DPLL!\n", __func__); > + > + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); > + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); > + if (rc) > + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); > + > + return 0; > +} > -- > 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 2013-06-28 21:04 ` Mike Turquette @ 2013-07-08 7:29 ` Tero Kristo -1 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-07-08 7:29 UTC (permalink / raw) To: Mike Turquette Cc: linux-omap, paul, tony, nm, rnayak, linux-arm-kernel, devicetree-discuss On 06/29/2013 12:04 AM, Mike Turquette wrote: > Quoting Tero Kristo (2013-06-27 01:38:19) >> cclock7xx_data.c now contains only init function and the clkdev mapping >> that is still needed by some drivers. Eventually most of this file can >> be removed, once a common location for the clk init can be found, and >> the clkdev mapping is no longer needed. >> >> Signed-off-by: Tero Kristo <t-kristo@ti.com> >> --- >> arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ >> 1 file changed, 93 insertions(+) >> create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c > > Why not drivers/clk/omap/clk-dra7xx.c? Hi Mike, Same as O5, I can move this over in next rev. -Tero > > Regards, > Mike > >> >> diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c >> new file mode 100644 >> index 0000000..dba528a >> --- /dev/null >> +++ b/arch/arm/mach-omap2/cclock7xx_data.c >> @@ -0,0 +1,83 @@ >> +/* >> + * DRA7xx Clock data >> + * >> + * Copyright (C) 2013 Texas Instruments, Inc. >> + * >> + * Paul Walmsley (paul@pwsan.com) >> + * Rajendra Nayak (rnayak@ti.com) >> + * Benoit Cousson (b-cousson@ti.com) >> + * Mike Turquette (mturquette@linaro.org) >> + * Tero Kristo (t-kristo@ti.com) >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#include <linux/kernel.h> >> +#include <linux/list.h> >> +#include <linux/clk-provider.h> >> +#include <linux/clkdev.h> >> +#include <linux/io.h> >> +#include <linux/clk/omap.h> >> + >> +#include "soc.h" >> +#include "clock.h" >> + >> +#define DRA7_DPLL_ABE_DEFFREQ 361267200 >> +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 >> + >> +/* >> + * clkdev >> + */ >> + >> +static struct omap_dt_clk dra7xx_clks[] = { >> + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), >> + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), >> +}; >> + >> +int __init dra7xx_clk_init(void) >> +{ >> + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; >> + int rc; >> + /* >> + * Must stay commented until all OMAP SoC drivers are >> + * converted to runtime PM, or drivers may start crashing >> + * >> + * omap2_clk_disable_clkdm_control(); >> + */ >> + >> + dt_omap_clk_init(); >> + >> + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); >> + >> + omap2_clk_disable_autoidle_all(); >> + >> + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); >> + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); >> + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); >> + >> + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); >> + if (!rc) >> + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); >> + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); >> + >> + return 0; >> +} >> -- >> 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 @ 2013-07-08 7:29 ` Tero Kristo 0 siblings, 0 replies; 24+ messages in thread From: Tero Kristo @ 2013-07-08 7:29 UTC (permalink / raw) To: linux-arm-kernel On 06/29/2013 12:04 AM, Mike Turquette wrote: > Quoting Tero Kristo (2013-06-27 01:38:19) >> cclock7xx_data.c now contains only init function and the clkdev mapping >> that is still needed by some drivers. Eventually most of this file can >> be removed, once a common location for the clk init can be found, and >> the clkdev mapping is no longer needed. >> >> Signed-off-by: Tero Kristo <t-kristo@ti.com> >> --- >> arch/arm/mach-omap2/cclock7xx_data.c | 93 ++++++++++++++++++++++++++++++++++ >> 1 file changed, 93 insertions(+) >> create mode 100644 arch/arm/mach-omap2/cclock7xx_data.c > > Why not drivers/clk/omap/clk-dra7xx.c? Hi Mike, Same as O5, I can move this over in next rev. -Tero > > Regards, > Mike > >> >> diff --git a/arch/arm/mach-omap2/cclock7xx_data.c b/arch/arm/mach-omap2/cclock7xx_data.c >> new file mode 100644 >> index 0000000..dba528a >> --- /dev/null >> +++ b/arch/arm/mach-omap2/cclock7xx_data.c >> @@ -0,0 +1,83 @@ >> +/* >> + * DRA7xx Clock data >> + * >> + * Copyright (C) 2013 Texas Instruments, Inc. >> + * >> + * Paul Walmsley (paul at pwsan.com) >> + * Rajendra Nayak (rnayak at ti.com) >> + * Benoit Cousson (b-cousson at ti.com) >> + * Mike Turquette (mturquette at linaro.org) >> + * Tero Kristo (t-kristo at ti.com) >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#include <linux/kernel.h> >> +#include <linux/list.h> >> +#include <linux/clk-provider.h> >> +#include <linux/clkdev.h> >> +#include <linux/io.h> >> +#include <linux/clk/omap.h> >> + >> +#include "soc.h" >> +#include "clock.h" >> + >> +#define DRA7_DPLL_ABE_DEFFREQ 361267200 >> +#define DRA7_DPLL_GMAC_DEFFREQ 1000000000 >> + >> +/* >> + * clkdev >> + */ >> + >> +static struct omap_dt_clk dra7xx_clks[] = { >> + DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"), >> + DT_CLK("4ae18000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48032000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48034000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48036000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("4803e000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48086000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48088000.timer", "timer_sys_ck", "sys_clkin2"), >> + DT_CLK("48820000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48822000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48824000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK("48826000.timer", "timer_sys_ck", "timer_sys_clk_div"), >> + DT_CLK(NULL, "sys_clkin", "sys_clkin1"), >> +}; >> + >> +int __init dra7xx_clk_init(void) >> +{ >> + struct clk *abe_dpll_mux, *sys_clkin2, *dpll_ck; >> + int rc; >> + /* >> + * Must stay commented until all OMAP SoC drivers are >> + * converted to runtime PM, or drivers may start crashing >> + * >> + * omap2_clk_disable_clkdm_control(); >> + */ >> + >> + dt_omap_clk_init(); >> + >> + omap_dt_clocks_register(dra7xx_clks, ARRAY_SIZE(dra7xx_clks)); >> + >> + omap2_clk_disable_autoidle_all(); >> + >> + abe_dpll_mux = clk_get_sys(NULL, "abe_dpll_sys_clk_mux"); >> + sys_clkin2 = clk_get_sys(NULL, "sys_clkin2"); >> + dpll_ck = clk_get_sys(NULL, "dpll_abe_ck"); >> + >> + rc = clk_set_parent(abe_dpll_mux, sys_clkin2); >> + if (!rc) >> + rc = clk_set_rate(dpll_ck, DRA7_DPLL_ABE_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure ABE DPLL!\n", __func__); >> + >> + dpll_ck = clk_get_sys(NULL, "dpll_gmac_ck"); >> + rc = clk_set_rate(dpll_ck, DRA7_DPLL_GMAC_DEFFREQ); >> + if (rc) >> + pr_err("%s: failed to configure GMAC DPLL!\n", __func__); >> + >> + return 0; >> +} >> -- >> 1.7.9.5 ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2013-07-08 7:30 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-06-27 8:38 [PATCH 0/4] ARM: OMAP5 and DRA7 clock data Tero Kristo 2013-06-27 8:38 ` Tero Kristo 2013-06-27 8:38 ` [PATCH 1/4] ARM: dts: omap5 " Tero Kristo 2013-06-27 8:38 ` Tero Kristo 2013-06-27 8:38 ` [PATCH 2/4] ARM: OMAP5: clockdomain data: add init file for omap54xx Tero Kristo 2013-06-27 8:38 ` Tero Kristo 2013-06-27 8:44 ` Felipe Balbi 2013-06-27 8:44 ` Felipe Balbi 2013-06-27 9:24 ` Tero Kristo 2013-06-27 9:24 ` Tero Kristo 2013-06-27 10:06 ` Felipe Balbi 2013-06-27 10:06 ` Felipe Balbi 2013-06-28 21:03 ` Mike Turquette 2013-06-28 21:03 ` Mike Turquette 2013-07-08 7:28 ` Tero Kristo 2013-07-08 7:28 ` Tero Kristo 2013-06-27 8:38 ` [PATCH 3/4] ARM: dts: dra7xx clock data Tero Kristo 2013-06-27 8:38 ` Tero Kristo 2013-06-27 8:38 ` [PATCH 4/4] ARM: DRA7: clockdomain data: add init file for dra7 Tero Kristo 2013-06-27 8:38 ` Tero Kristo 2013-06-28 21:04 ` Mike Turquette 2013-06-28 21:04 ` Mike Turquette 2013-07-08 7:29 ` Tero Kristo 2013-07-08 7:29 ` Tero Kristo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.