Lines Matching full:gate
63 [ASPEED_CLK_GATE_MCLK] = { 0, -1, "mclk-gate", "mpll", CLK_IS_CRITICAL }, /* SDRAM */
64 [ASPEED_CLK_GATE_ECLK] = { 1, 6, "eclk-gate", "eclk", 0 }, /* Video Engine */
65 [ASPEED_CLK_GATE_GCLK] = { 2, 7, "gclk-gate", NULL, 0 }, /* 2D engine */
67 [ASPEED_CLK_GATE_VCLK] = { 3, -1, "vclk-gate", NULL, 0 }, /* Video Capture */
68 [ASPEED_CLK_GATE_BCLK] = { 4, 8, "bclk-gate", "bclk", 0 }, /* PCIe/PCI */
70 [ASPEED_CLK_GATE_DCLK] = { 5, -1, "dclk-gate", NULL, CLK_IS_CRITICAL }, /* DAC */
71 [ASPEED_CLK_GATE_REF0CLK] = { 6, -1, "ref0clk-gate", "clkin", CLK_IS_CRITICAL },
72 [ASPEED_CLK_GATE_USBPORT2CLK] = { 7, 3, "usb-port2-gate", NULL, 0 }, /* USB2.0 Host port 2 */
74 …[ASPEED_CLK_GATE_USBUHCICLK] = { 9, 15, "usb-uhci-gate", NULL, 0 }, /* USB1.1 (requires port 2 e…
76 [ASPEED_CLK_GATE_D1CLK] = { 10, 13, "d1clk-gate", "d1clk", 0 }, /* GFX CRT */
78 [ASPEED_CLK_GATE_YCLK] = { 13, 4, "yclk-gate", NULL, 0 }, /* HAC */
79 …[ASPEED_CLK_GATE_USBPORT1CLK] = { 14, 14, "usb-port1-gate", NULL, 0 }, /* USB2 hub/USB2 host port…
80 [ASPEED_CLK_GATE_UART5CLK] = { 15, -1, "uart5clk-gate", "uart", 0 }, /* UART5 */
82 [ASPEED_CLK_GATE_MAC1CLK] = { 20, 11, "mac1clk-gate", "mac12", 0 }, /* MAC1 */
83 [ASPEED_CLK_GATE_MAC2CLK] = { 21, 12, "mac2clk-gate", "mac12", 0 }, /* MAC2 */
85 [ASPEED_CLK_GATE_RSACLK] = { 24, 4, "rsaclk-gate", NULL, 0 }, /* HAC */
86 [ASPEED_CLK_GATE_RVASCLK] = { 25, 9, "rvasclk-gate", NULL, 0 }, /* RVAS */
88 [ASPEED_CLK_GATE_EMMCCLK] = { 27, 16, "emmcclk-gate", NULL, 0 }, /* For card clk */
90 [ASPEED_CLK_GATE_LCLK] = { 32, 32, "lclk-gate", NULL, 0 }, /* LPC */
91 [ASPEED_CLK_GATE_ESPICLK] = { 33, -1, "espiclk-gate", NULL, 0 }, /* eSPI */
92 [ASPEED_CLK_GATE_REF1CLK] = { 34, -1, "ref1clk-gate", "clkin", CLK_IS_CRITICAL },
94 [ASPEED_CLK_GATE_SDCLK] = { 36, 56, "sdclk-gate", NULL, 0 }, /* SDIO/SD */
95 [ASPEED_CLK_GATE_LHCCLK] = { 37, -1, "lhclk-gate", "lhclk", 0 }, /* LPC master/LPC+ */
98 [ASPEED_CLK_GATE_I3C0CLK] = { 40, 40, "i3c0clk-gate", NULL, 0 }, /* I3C0 */
99 [ASPEED_CLK_GATE_I3C1CLK] = { 41, 41, "i3c1clk-gate", NULL, 0 }, /* I3C1 */
100 [ASPEED_CLK_GATE_I3C2CLK] = { 42, 42, "i3c2clk-gate", NULL, 0 }, /* I3C2 */
101 [ASPEED_CLK_GATE_I3C3CLK] = { 43, 43, "i3c3clk-gate", NULL, 0 }, /* I3C3 */
102 [ASPEED_CLK_GATE_I3C4CLK] = { 44, 44, "i3c4clk-gate", NULL, 0 }, /* I3C4 */
103 [ASPEED_CLK_GATE_I3C5CLK] = { 45, 45, "i3c5clk-gate", NULL, 0 }, /* I3C5 */
104 [ASPEED_CLK_GATE_I3C6CLK] = { 46, 46, "i3c6clk-gate", NULL, 0 }, /* I3C6 */
105 [ASPEED_CLK_GATE_I3C7CLK] = { 47, 47, "i3c7clk-gate", NULL, 0 }, /* I3C7 */
106 [ASPEED_CLK_GATE_UART1CLK] = { 48, -1, "uart1clk-gate", "uart", 0 }, /* UART1 */
107 [ASPEED_CLK_GATE_UART2CLK] = { 49, -1, "uart2clk-gate", "uart", 0 }, /* UART2 */
108 [ASPEED_CLK_GATE_UART3CLK] = { 50, -1, "uart3clk-gate", "uart", 0 }, /* UART3 */
109 [ASPEED_CLK_GATE_UART4CLK] = { 51, -1, "uart4clk-gate", "uart", 0 }, /* UART4 */
110 [ASPEED_CLK_GATE_MAC3CLK] = { 52, 52, "mac3clk-gate", "mac34", 0 }, /* MAC3 */
111 [ASPEED_CLK_GATE_MAC4CLK] = { 53, 53, "mac4clk-gate", "mac34", 0 }, /* MAC4 */
112 [ASPEED_CLK_GATE_UART6CLK] = { 54, -1, "uart6clk-gate", "uartx", 0 }, /* UART6 */
113 [ASPEED_CLK_GATE_UART7CLK] = { 55, -1, "uart7clk-gate", "uartx", 0 }, /* UART7 */
114 [ASPEED_CLK_GATE_UART8CLK] = { 56, -1, "uart8clk-gate", "uartx", 0 }, /* UART8 */
115 [ASPEED_CLK_GATE_UART9CLK] = { 57, -1, "uart9clk-gate", "uartx", 0 }, /* UART9 */
116 [ASPEED_CLK_GATE_UART10CLK] = { 58, -1, "uart10clk-gate", "uartx", 0 }, /* UART10 */
117 [ASPEED_CLK_GATE_UART11CLK] = { 59, -1, "uart11clk-gate", "uartx", 0 }, /* UART11 */
118 [ASPEED_CLK_GATE_UART12CLK] = { 60, -1, "uart12clk-gate", "uartx", 0 }, /* UART12 */
119 [ASPEED_CLK_GATE_UART13CLK] = { 61, -1, "uart13clk-gate", "uartx", 0 }, /* UART13 */
120 [ASPEED_CLK_GATE_FSICLK] = { 62, 59, "fsiclk-gate", NULL, 0 }, /* FSI */
232 static u32 get_reset_reg(struct aspeed_clk_gate *gate) in get_reset_reg() argument
234 if (gate->reset_idx < 32) in get_reset_reg()
240 static u32 get_clock_reg(struct aspeed_clk_gate *gate) in get_clock_reg() argument
242 if (gate->clock_idx < 32) in get_clock_reg()
250 struct aspeed_clk_gate *gate = to_aspeed_clk_gate(hw); in aspeed_g6_clk_is_enabled() local
251 u32 clk = get_bit(gate->clock_idx); in aspeed_g6_clk_is_enabled()
252 u32 rst = get_bit(gate->reset_idx); in aspeed_g6_clk_is_enabled()
262 if (gate->reset_idx >= 0) { in aspeed_g6_clk_is_enabled()
263 regmap_read(gate->map, get_reset_reg(gate), ®); in aspeed_g6_clk_is_enabled()
269 regmap_read(gate->map, get_clock_reg(gate), ®); in aspeed_g6_clk_is_enabled()
271 enval = (gate->flags & CLK_GATE_SET_TO_DISABLE) ? 0 : clk; in aspeed_g6_clk_is_enabled()
278 struct aspeed_clk_gate *gate = to_aspeed_clk_gate(hw); in aspeed_g6_clk_enable() local
280 u32 clk = get_bit(gate->clock_idx); in aspeed_g6_clk_enable()
281 u32 rst = get_bit(gate->reset_idx); in aspeed_g6_clk_enable()
283 spin_lock_irqsave(gate->lock, flags); in aspeed_g6_clk_enable()
286 spin_unlock_irqrestore(gate->lock, flags); in aspeed_g6_clk_enable()
290 if (gate->reset_idx >= 0) { in aspeed_g6_clk_enable()
292 regmap_write(gate->map, get_reset_reg(gate), rst); in aspeed_g6_clk_enable()
298 if (gate->flags & CLK_GATE_SET_TO_DISABLE) { in aspeed_g6_clk_enable()
300 regmap_write(gate->map, get_clock_reg(gate) + 0x04, clk); in aspeed_g6_clk_enable()
303 regmap_write(gate->map, get_clock_reg(gate), clk); in aspeed_g6_clk_enable()
306 if (gate->reset_idx >= 0) { in aspeed_g6_clk_enable()
310 regmap_write(gate->map, get_reset_reg(gate) + 0x4, rst); in aspeed_g6_clk_enable()
313 spin_unlock_irqrestore(gate->lock, flags); in aspeed_g6_clk_enable()
320 struct aspeed_clk_gate *gate = to_aspeed_clk_gate(hw); in aspeed_g6_clk_disable() local
322 u32 clk = get_bit(gate->clock_idx); in aspeed_g6_clk_disable()
324 spin_lock_irqsave(gate->lock, flags); in aspeed_g6_clk_disable()
326 if (gate->flags & CLK_GATE_SET_TO_DISABLE) { in aspeed_g6_clk_disable()
327 regmap_write(gate->map, get_clock_reg(gate), clk); in aspeed_g6_clk_disable()
330 regmap_write(gate->map, get_clock_reg(gate) + 0x4, clk); in aspeed_g6_clk_disable()
333 spin_unlock_irqrestore(gate->lock, flags); in aspeed_g6_clk_disable()
390 struct aspeed_clk_gate *gate; in aspeed_g6_clk_hw_register_gate() local
395 gate = kzalloc(sizeof(*gate), GFP_KERNEL); in aspeed_g6_clk_hw_register_gate()
396 if (!gate) in aspeed_g6_clk_hw_register_gate()
405 gate->map = map; in aspeed_g6_clk_hw_register_gate()
406 gate->clock_idx = clock_idx; in aspeed_g6_clk_hw_register_gate()
407 gate->reset_idx = reset_idx; in aspeed_g6_clk_hw_register_gate()
408 gate->flags = clk_gate_flags; in aspeed_g6_clk_hw_register_gate()
409 gate->lock = lock; in aspeed_g6_clk_hw_register_gate()
410 gate->hw.init = &init; in aspeed_g6_clk_hw_register_gate()
412 hw = &gate->hw; in aspeed_g6_clk_hw_register_gate()
415 kfree(gate); in aspeed_g6_clk_hw_register_gate()
526 /* SD/SDIO clock divider and gate */ in aspeed_g6_clk_probe()