Our usual PR for the Allwinner SoCs, this time adding support for the
Allwinner H616 SoC, and a few H6 fixes. -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCYBbuKgAKCRDj7w1vZxhR xUVoAQCVfOy30h/9g4D0QdTaJv1glfEWZoY8CH3xrggMUekTOAD+NT6013V2zHf9 tkGInIRtannCc14+/lnlao6qaWPeFA4= =mZh1 -----END PGP SIGNATURE----- Merge tag 'sunxi-clk-for-5.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner Pull Allwinner clk driver updates from Maxime Ripard: "Our usual PR for the Allwinner SoCs, this time adding support for the Allwinner H616 SoC, and a few H6 fixes." * tag 'sunxi-clk-for-5.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: clk: sunxi-ng: Add support for the Allwinner H616 CCU clk: sunxi-ng: Add support for the Allwinner H616 R-CCU dt-bindings: clk: sunxi-ccu: Add compatible string for Allwinner H616 clk: sunxi-ng: h6: Fix clock divider range on some clocks clk: sunxi: clk-mod0: Demote non-conformant kernel-doc header clk: sunxi: clk-a10-ve: Demote obvious kernel-doc abuse clk: sunxi: clk-sunxi: Demote a bunch of non-conformant kernel-doc headers clk: sunxi-ng: h6: Fix CEC clock clk: sunxi-ng: h6-r: Add R_APB2_RSB clock and reset
This commit is contained in:
commit
6bbea83a66
@ -41,6 +41,8 @@ properties:
|
||||
- allwinner,sun50i-h5-ccu
|
||||
- allwinner,sun50i-h6-ccu
|
||||
- allwinner,sun50i-h6-r-ccu
|
||||
- allwinner,sun50i-h616-ccu
|
||||
- allwinner,sun50i-h616-r-ccu
|
||||
- allwinner,suniv-f1c100s-ccu
|
||||
- nextthing,gr8-ccu
|
||||
|
||||
@ -82,6 +84,7 @@ if:
|
||||
- allwinner,sun50i-a64-r-ccu
|
||||
- allwinner,sun50i-a100-r-ccu
|
||||
- allwinner,sun50i-h6-r-ccu
|
||||
- allwinner,sun50i-h616-r-ccu
|
||||
|
||||
then:
|
||||
properties:
|
||||
@ -100,6 +103,7 @@ else:
|
||||
enum:
|
||||
- allwinner,sun50i-a100-ccu
|
||||
- allwinner,sun50i-h6-ccu
|
||||
- allwinner,sun50i-h616-ccu
|
||||
|
||||
then:
|
||||
properties:
|
||||
|
@ -32,8 +32,13 @@ config SUN50I_H6_CCU
|
||||
default ARM64 && ARCH_SUNXI
|
||||
depends on (ARM64 && ARCH_SUNXI) || COMPILE_TEST
|
||||
|
||||
config SUN50I_H616_CCU
|
||||
bool "Support for the Allwinner H616 CCU"
|
||||
default ARM64 && ARCH_SUNXI
|
||||
depends on (ARM64 && ARCH_SUNXI) || COMPILE_TEST
|
||||
|
||||
config SUN50I_H6_R_CCU
|
||||
bool "Support for the Allwinner H6 PRCM CCU"
|
||||
bool "Support for the Allwinner H6 and H616 PRCM CCU"
|
||||
default ARM64 && ARCH_SUNXI
|
||||
depends on (ARM64 && ARCH_SUNXI) || COMPILE_TEST
|
||||
|
||||
|
@ -26,6 +26,7 @@ obj-$(CONFIG_SUN50I_A64_CCU) += ccu-sun50i-a64.o
|
||||
obj-$(CONFIG_SUN50I_A100_CCU) += ccu-sun50i-a100.o
|
||||
obj-$(CONFIG_SUN50I_A100_R_CCU) += ccu-sun50i-a100-r.o
|
||||
obj-$(CONFIG_SUN50I_H6_CCU) += ccu-sun50i-h6.o
|
||||
obj-$(CONFIG_SUN50I_H616_CCU) += ccu-sun50i-h616.o
|
||||
obj-$(CONFIG_SUN50I_H6_R_CCU) += ccu-sun50i-h6-r.o
|
||||
obj-$(CONFIG_SUN4I_A10_CCU) += ccu-sun4i-a10.o
|
||||
obj-$(CONFIG_SUN5I_CCU) += ccu-sun5i.o
|
||||
|
@ -91,6 +91,8 @@ static SUNXI_CCU_GATE(r_apb2_uart_clk, "r-apb2-uart", "r-apb2",
|
||||
0x18c, BIT(0), 0);
|
||||
static SUNXI_CCU_GATE(r_apb2_i2c_clk, "r-apb2-i2c", "r-apb2",
|
||||
0x19c, BIT(0), 0);
|
||||
static SUNXI_CCU_GATE(r_apb2_rsb_clk, "r-apb2-rsb", "r-apb2",
|
||||
0x1bc, BIT(0), 0);
|
||||
static SUNXI_CCU_GATE(r_apb1_ir_clk, "r-apb1-ir", "r-apb1",
|
||||
0x1cc, BIT(0), 0);
|
||||
static SUNXI_CCU_GATE(r_apb1_w1_clk, "r-apb1-w1", "r-apb1",
|
||||
@ -130,12 +132,23 @@ static struct ccu_common *sun50i_h6_r_ccu_clks[] = {
|
||||
&r_apb1_pwm_clk.common,
|
||||
&r_apb2_uart_clk.common,
|
||||
&r_apb2_i2c_clk.common,
|
||||
&r_apb2_rsb_clk.common,
|
||||
&r_apb1_ir_clk.common,
|
||||
&r_apb1_w1_clk.common,
|
||||
&ir_clk.common,
|
||||
&w1_clk.common,
|
||||
};
|
||||
|
||||
static struct ccu_common *sun50i_h616_r_ccu_clks[] = {
|
||||
&r_apb1_clk.common,
|
||||
&r_apb2_clk.common,
|
||||
&r_apb1_twd_clk.common,
|
||||
&r_apb2_i2c_clk.common,
|
||||
&r_apb2_rsb_clk.common,
|
||||
&r_apb1_ir_clk.common,
|
||||
&ir_clk.common,
|
||||
};
|
||||
|
||||
static struct clk_hw_onecell_data sun50i_h6_r_hw_clks = {
|
||||
.hws = {
|
||||
[CLK_AR100] = &ar100_clk.common.hw,
|
||||
@ -147,6 +160,7 @@ static struct clk_hw_onecell_data sun50i_h6_r_hw_clks = {
|
||||
[CLK_R_APB1_PWM] = &r_apb1_pwm_clk.common.hw,
|
||||
[CLK_R_APB2_UART] = &r_apb2_uart_clk.common.hw,
|
||||
[CLK_R_APB2_I2C] = &r_apb2_i2c_clk.common.hw,
|
||||
[CLK_R_APB2_RSB] = &r_apb2_rsb_clk.common.hw,
|
||||
[CLK_R_APB1_IR] = &r_apb1_ir_clk.common.hw,
|
||||
[CLK_R_APB1_W1] = &r_apb1_w1_clk.common.hw,
|
||||
[CLK_IR] = &ir_clk.common.hw,
|
||||
@ -155,16 +169,38 @@ static struct clk_hw_onecell_data sun50i_h6_r_hw_clks = {
|
||||
.num = CLK_NUMBER,
|
||||
};
|
||||
|
||||
static struct clk_hw_onecell_data sun50i_h616_r_hw_clks = {
|
||||
.hws = {
|
||||
[CLK_R_AHB] = &r_ahb_clk.hw,
|
||||
[CLK_R_APB1] = &r_apb1_clk.common.hw,
|
||||
[CLK_R_APB2] = &r_apb2_clk.common.hw,
|
||||
[CLK_R_APB1_TWD] = &r_apb1_twd_clk.common.hw,
|
||||
[CLK_R_APB2_I2C] = &r_apb2_i2c_clk.common.hw,
|
||||
[CLK_R_APB2_RSB] = &r_apb2_rsb_clk.common.hw,
|
||||
[CLK_R_APB1_IR] = &r_apb1_ir_clk.common.hw,
|
||||
[CLK_IR] = &ir_clk.common.hw,
|
||||
},
|
||||
.num = CLK_NUMBER,
|
||||
};
|
||||
|
||||
static struct ccu_reset_map sun50i_h6_r_ccu_resets[] = {
|
||||
[RST_R_APB1_TIMER] = { 0x11c, BIT(16) },
|
||||
[RST_R_APB1_TWD] = { 0x12c, BIT(16) },
|
||||
[RST_R_APB1_PWM] = { 0x13c, BIT(16) },
|
||||
[RST_R_APB2_UART] = { 0x18c, BIT(16) },
|
||||
[RST_R_APB2_I2C] = { 0x19c, BIT(16) },
|
||||
[RST_R_APB2_RSB] = { 0x1bc, BIT(16) },
|
||||
[RST_R_APB1_IR] = { 0x1cc, BIT(16) },
|
||||
[RST_R_APB1_W1] = { 0x1ec, BIT(16) },
|
||||
};
|
||||
|
||||
static struct ccu_reset_map sun50i_h616_r_ccu_resets[] = {
|
||||
[RST_R_APB1_TWD] = { 0x12c, BIT(16) },
|
||||
[RST_R_APB2_I2C] = { 0x19c, BIT(16) },
|
||||
[RST_R_APB2_RSB] = { 0x1bc, BIT(16) },
|
||||
[RST_R_APB1_IR] = { 0x1cc, BIT(16) },
|
||||
};
|
||||
|
||||
static const struct sunxi_ccu_desc sun50i_h6_r_ccu_desc = {
|
||||
.ccu_clks = sun50i_h6_r_ccu_clks,
|
||||
.num_ccu_clks = ARRAY_SIZE(sun50i_h6_r_ccu_clks),
|
||||
@ -175,6 +211,16 @@ static const struct sunxi_ccu_desc sun50i_h6_r_ccu_desc = {
|
||||
.num_resets = ARRAY_SIZE(sun50i_h6_r_ccu_resets),
|
||||
};
|
||||
|
||||
static const struct sunxi_ccu_desc sun50i_h616_r_ccu_desc = {
|
||||
.ccu_clks = sun50i_h616_r_ccu_clks,
|
||||
.num_ccu_clks = ARRAY_SIZE(sun50i_h616_r_ccu_clks),
|
||||
|
||||
.hw_clks = &sun50i_h616_r_hw_clks,
|
||||
|
||||
.resets = sun50i_h616_r_ccu_resets,
|
||||
.num_resets = ARRAY_SIZE(sun50i_h616_r_ccu_resets),
|
||||
};
|
||||
|
||||
static void __init sunxi_r_ccu_init(struct device_node *node,
|
||||
const struct sunxi_ccu_desc *desc)
|
||||
{
|
||||
@ -195,3 +241,10 @@ static void __init sun50i_h6_r_ccu_setup(struct device_node *node)
|
||||
}
|
||||
CLK_OF_DECLARE(sun50i_h6_r_ccu, "allwinner,sun50i-h6-r-ccu",
|
||||
sun50i_h6_r_ccu_setup);
|
||||
|
||||
static void __init sun50i_h616_r_ccu_setup(struct device_node *node)
|
||||
{
|
||||
sunxi_r_ccu_init(node, &sun50i_h616_r_ccu_desc);
|
||||
}
|
||||
CLK_OF_DECLARE(sun50i_h616_r_ccu, "allwinner,sun50i-h616-r-ccu",
|
||||
sun50i_h616_r_ccu_setup);
|
||||
|
@ -14,6 +14,6 @@
|
||||
|
||||
#define CLK_R_APB2 3
|
||||
|
||||
#define CLK_NUMBER (CLK_W1 + 1)
|
||||
#define CLK_NUMBER (CLK_R_APB2_RSB + 1)
|
||||
|
||||
#endif /* _CCU_SUN50I_H6_R_H */
|
||||
|
@ -237,7 +237,7 @@ static const char * const psi_ahb1_ahb2_parents[] = { "osc24M", "osc32k",
|
||||
static SUNXI_CCU_MP_WITH_MUX(psi_ahb1_ahb2_clk, "psi-ahb1-ahb2",
|
||||
psi_ahb1_ahb2_parents,
|
||||
0x510,
|
||||
0, 5, /* M */
|
||||
0, 2, /* M */
|
||||
8, 2, /* P */
|
||||
24, 2, /* mux */
|
||||
0);
|
||||
@ -246,19 +246,19 @@ static const char * const ahb3_apb1_apb2_parents[] = { "osc24M", "osc32k",
|
||||
"psi-ahb1-ahb2",
|
||||
"pll-periph0" };
|
||||
static SUNXI_CCU_MP_WITH_MUX(ahb3_clk, "ahb3", ahb3_apb1_apb2_parents, 0x51c,
|
||||
0, 5, /* M */
|
||||
0, 2, /* M */
|
||||
8, 2, /* P */
|
||||
24, 2, /* mux */
|
||||
0);
|
||||
|
||||
static SUNXI_CCU_MP_WITH_MUX(apb1_clk, "apb1", ahb3_apb1_apb2_parents, 0x520,
|
||||
0, 5, /* M */
|
||||
0, 2, /* M */
|
||||
8, 2, /* P */
|
||||
24, 2, /* mux */
|
||||
0);
|
||||
|
||||
static SUNXI_CCU_MP_WITH_MUX(apb2_clk, "apb2", ahb3_apb1_apb2_parents, 0x524,
|
||||
0, 5, /* M */
|
||||
0, 2, /* M */
|
||||
8, 2, /* P */
|
||||
24, 2, /* mux */
|
||||
0);
|
||||
@ -682,7 +682,7 @@ static struct ccu_mux hdmi_cec_clk = {
|
||||
|
||||
.common = {
|
||||
.reg = 0xb10,
|
||||
.features = CCU_FEATURE_VARIABLE_PREDIV,
|
||||
.features = CCU_FEATURE_FIXED_PREDIV,
|
||||
.hw.init = CLK_HW_INIT_PARENTS("hdmi-cec",
|
||||
hdmi_cec_parents,
|
||||
&ccu_mux_ops,
|
||||
|
1150
drivers/clk/sunxi-ng/ccu-sun50i-h616.c
Normal file
1150
drivers/clk/sunxi-ng/ccu-sun50i-h616.c
Normal file
File diff suppressed because it is too large
Load Diff
56
drivers/clk/sunxi-ng/ccu-sun50i-h616.h
Normal file
56
drivers/clk/sunxi-ng/ccu-sun50i-h616.h
Normal file
@ -0,0 +1,56 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright 2020 Arm Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _CCU_SUN50I_H616_H_
|
||||
#define _CCU_SUN50I_H616_H_
|
||||
|
||||
#include <dt-bindings/clock/sun50i-h616-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h616-ccu.h>
|
||||
|
||||
#define CLK_OSC12M 0
|
||||
#define CLK_PLL_CPUX 1
|
||||
#define CLK_PLL_DDR0 2
|
||||
#define CLK_PLL_DDR1 3
|
||||
|
||||
/* PLL_PERIPH0 exported for PRCM */
|
||||
|
||||
#define CLK_PLL_PERIPH0_2X 5
|
||||
#define CLK_PLL_PERIPH1 6
|
||||
#define CLK_PLL_PERIPH1_2X 7
|
||||
#define CLK_PLL_GPU 8
|
||||
#define CLK_PLL_VIDEO0 9
|
||||
#define CLK_PLL_VIDEO0_4X 10
|
||||
#define CLK_PLL_VIDEO1 11
|
||||
#define CLK_PLL_VIDEO1_4X 12
|
||||
#define CLK_PLL_VIDEO2 13
|
||||
#define CLK_PLL_VIDEO2_4X 14
|
||||
#define CLK_PLL_VE 15
|
||||
#define CLK_PLL_DE 16
|
||||
#define CLK_PLL_AUDIO_HS 17
|
||||
#define CLK_PLL_AUDIO_1X 18
|
||||
#define CLK_PLL_AUDIO_2X 19
|
||||
#define CLK_PLL_AUDIO_4X 20
|
||||
|
||||
/* CPUX clock exported for DVFS */
|
||||
|
||||
#define CLK_AXI 22
|
||||
#define CLK_CPUX_APB 23
|
||||
#define CLK_PSI_AHB1_AHB2 24
|
||||
#define CLK_AHB3 25
|
||||
|
||||
/* APB1 clock exported for PIO */
|
||||
|
||||
#define CLK_APB2 27
|
||||
#define CLK_MBUS 28
|
||||
|
||||
/* All module clocks and bus gates are exported except DRAM */
|
||||
|
||||
#define CLK_DRAM 49
|
||||
|
||||
#define CLK_BUS_DRAM 56
|
||||
|
||||
#define CLK_NUMBER (CLK_BUS_HDCP + 1)
|
||||
|
||||
#endif /* _CCU_SUN50I_H616_H_ */
|
@ -20,7 +20,7 @@ static DEFINE_SPINLOCK(ve_lock);
|
||||
#define SUN4I_VE_DIVIDER_WIDTH 3
|
||||
#define SUN4I_VE_RESET 0
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_ve_reset... - reset bit in ve clk registers handling
|
||||
*/
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#include "clk-factors.h"
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun4i_a10_get_mod0_factors() - calculates m, n factors for MOD0-style clocks
|
||||
* MOD0 rate is calculated as follows
|
||||
* rate = (parent_rate >> p) / (m + 1);
|
||||
|
@ -23,7 +23,7 @@ static DEFINE_SPINLOCK(clk_lock);
|
||||
/* Maximum number of parents our clocks have */
|
||||
#define SUNXI_MAX_PARENTS 5
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun4i_get_pll1_factors() - calculates n, k, m, p factors for PLL1
|
||||
* PLL1 rate is calculated as follows
|
||||
* rate = (parent_rate * n * (k + 1) >> p) / (m + 1);
|
||||
@ -71,7 +71,7 @@ static void sun4i_get_pll1_factors(struct factors_request *req)
|
||||
req->n = div / 4;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun6i_a31_get_pll1_factors() - calculates n, k and m factors for PLL1
|
||||
* PLL1 rate is calculated as follows
|
||||
* rate = parent_rate * (n + 1) * (k + 1) / (m + 1);
|
||||
@ -147,7 +147,7 @@ static void sun6i_a31_get_pll1_factors(struct factors_request *req)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun8i_a23_get_pll1_factors() - calculates n, k, m, p factors for PLL1
|
||||
* PLL1 rate is calculated as follows
|
||||
* rate = (parent_rate * (n + 1) * (k + 1) >> p) / (m + 1);
|
||||
@ -191,7 +191,7 @@ static void sun8i_a23_get_pll1_factors(struct factors_request *req)
|
||||
req->n = div / 4 - 1;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun4i_get_pll5_factors() - calculates n, k factors for PLL5
|
||||
* PLL5 rate is calculated as follows
|
||||
* rate = parent_rate * n * (k + 1)
|
||||
@ -218,7 +218,7 @@ static void sun4i_get_pll5_factors(struct factors_request *req)
|
||||
req->n = DIV_ROUND_UP(div, (req->k + 1));
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun6i_a31_get_pll6_factors() - calculates n, k factors for A31 PLL6x2
|
||||
* PLL6x2 rate is calculated as follows
|
||||
* rate = parent_rate * (n + 1) * (k + 1)
|
||||
@ -240,7 +240,7 @@ static void sun6i_a31_get_pll6_factors(struct factors_request *req)
|
||||
req->n = DIV_ROUND_UP(div, (req->k + 1)) - 1;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun5i_a13_get_ahb_factors() - calculates m, p factors for AHB
|
||||
* AHB rate is calculated as follows
|
||||
* rate = parent_rate >> p
|
||||
@ -276,7 +276,7 @@ static void sun5i_a13_get_ahb_factors(struct factors_request *req)
|
||||
|
||||
#define SUN6I_AHB1_PARENT_PLL6 3
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun6i_a31_get_ahb_factors() - calculates m, p factors for AHB
|
||||
* AHB rate is calculated as follows
|
||||
* rate = parent_rate >> p
|
||||
@ -320,7 +320,7 @@ static void sun6i_get_ahb1_factors(struct factors_request *req)
|
||||
req->m = calcm - 1;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun6i_ahb1_recalc() - calculates AHB clock rate from m, p factors and
|
||||
* parent index
|
||||
*/
|
||||
@ -336,7 +336,7 @@ static void sun6i_ahb1_recalc(struct factors_request *req)
|
||||
req->rate >>= req->p;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun4i_get_apb1_factors() - calculates m, p factors for APB1
|
||||
* APB1 rate is calculated as follows
|
||||
* rate = (parent_rate >> p) / (m + 1);
|
||||
@ -375,7 +375,7 @@ static void sun4i_get_apb1_factors(struct factors_request *req)
|
||||
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* sun7i_a20_get_out_factors() - calculates m, p factors for CLK_OUT_A/B
|
||||
* CLK_OUT rate is calculated as follows
|
||||
* rate = (parent_rate >> p) / (m + 1);
|
||||
@ -408,7 +408,7 @@ static void sun7i_a20_get_out_factors(struct factors_request *req)
|
||||
req->p = calcp;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_factors_clk_setup() - Setup function for factor clocks
|
||||
*/
|
||||
|
||||
@ -625,7 +625,7 @@ CLK_OF_DECLARE(sun7i_out, "allwinner,sun7i-a20-out-clk",
|
||||
sun7i_out_clk_setup);
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_mux_clk_setup() - Setup function for muxes
|
||||
*/
|
||||
|
||||
@ -717,7 +717,7 @@ CLK_OF_DECLARE(sun8i_ahb2, "allwinner,sun8i-h3-ahb2-clk",
|
||||
sun8i_ahb2_clk_setup);
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_divider_clk_setup() - Setup function for simple divider clocks
|
||||
*/
|
||||
|
||||
@ -853,7 +853,7 @@ CLK_OF_DECLARE(sun8i_axi, "allwinner,sun8i-a23-axi-clk",
|
||||
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_gates_clk_setup() - Setup function for leaf gates on clocks
|
||||
*/
|
||||
|
||||
@ -863,7 +863,7 @@ struct gates_data {
|
||||
DECLARE_BITMAP(mask, SUNXI_GATES_MAX_SIZE);
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_divs_clk_setup() helper data
|
||||
*/
|
||||
|
||||
@ -929,7 +929,7 @@ static const struct divs_data sun6i_a31_pll6_divs_data __initconst = {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* sunxi_divs_clk_setup() - Setup function for leaf divisors on clocks
|
||||
*
|
||||
* These clocks look something like this
|
||||
|
@ -21,4 +21,6 @@
|
||||
#define CLK_IR 11
|
||||
#define CLK_W1 12
|
||||
|
||||
#define CLK_R_APB2_RSB 13
|
||||
|
||||
#endif /* _DT_BINDINGS_CLK_SUN50I_H6_R_CCU_H_ */
|
||||
|
115
include/dt-bindings/clock/sun50i-h616-ccu.h
Normal file
115
include/dt-bindings/clock/sun50i-h616-ccu.h
Normal file
@ -0,0 +1,115 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
|
||||
/*
|
||||
* Copyright (C) 2020 Arm Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_SUN50I_H616_H_
|
||||
#define _DT_BINDINGS_CLK_SUN50I_H616_H_
|
||||
|
||||
#define CLK_PLL_PERIPH0 4
|
||||
|
||||
#define CLK_CPUX 21
|
||||
|
||||
#define CLK_APB1 26
|
||||
|
||||
#define CLK_DE 29
|
||||
#define CLK_BUS_DE 30
|
||||
#define CLK_DEINTERLACE 31
|
||||
#define CLK_BUS_DEINTERLACE 32
|
||||
#define CLK_G2D 33
|
||||
#define CLK_BUS_G2D 34
|
||||
#define CLK_GPU0 35
|
||||
#define CLK_BUS_GPU 36
|
||||
#define CLK_GPU1 37
|
||||
#define CLK_CE 38
|
||||
#define CLK_BUS_CE 39
|
||||
#define CLK_VE 40
|
||||
#define CLK_BUS_VE 41
|
||||
#define CLK_BUS_DMA 42
|
||||
#define CLK_BUS_HSTIMER 43
|
||||
#define CLK_AVS 44
|
||||
#define CLK_BUS_DBG 45
|
||||
#define CLK_BUS_PSI 46
|
||||
#define CLK_BUS_PWM 47
|
||||
#define CLK_BUS_IOMMU 48
|
||||
|
||||
#define CLK_MBUS_DMA 50
|
||||
#define CLK_MBUS_VE 51
|
||||
#define CLK_MBUS_CE 52
|
||||
#define CLK_MBUS_TS 53
|
||||
#define CLK_MBUS_NAND 54
|
||||
#define CLK_MBUS_G2D 55
|
||||
|
||||
#define CLK_NAND0 57
|
||||
#define CLK_NAND1 58
|
||||
#define CLK_BUS_NAND 59
|
||||
#define CLK_MMC0 60
|
||||
#define CLK_MMC1 61
|
||||
#define CLK_MMC2 62
|
||||
#define CLK_BUS_MMC0 63
|
||||
#define CLK_BUS_MMC1 64
|
||||
#define CLK_BUS_MMC2 65
|
||||
#define CLK_BUS_UART0 66
|
||||
#define CLK_BUS_UART1 67
|
||||
#define CLK_BUS_UART2 68
|
||||
#define CLK_BUS_UART3 69
|
||||
#define CLK_BUS_UART4 70
|
||||
#define CLK_BUS_UART5 71
|
||||
#define CLK_BUS_I2C0 72
|
||||
#define CLK_BUS_I2C1 73
|
||||
#define CLK_BUS_I2C2 74
|
||||
#define CLK_BUS_I2C3 75
|
||||
#define CLK_BUS_I2C4 76
|
||||
#define CLK_SPI0 77
|
||||
#define CLK_SPI1 78
|
||||
#define CLK_BUS_SPI0 79
|
||||
#define CLK_BUS_SPI1 80
|
||||
#define CLK_EMAC_25M 81
|
||||
#define CLK_BUS_EMAC0 82
|
||||
#define CLK_BUS_EMAC1 83
|
||||
#define CLK_TS 84
|
||||
#define CLK_BUS_TS 85
|
||||
#define CLK_BUS_THS 86
|
||||
#define CLK_SPDIF 87
|
||||
#define CLK_BUS_SPDIF 88
|
||||
#define CLK_DMIC 89
|
||||
#define CLK_BUS_DMIC 90
|
||||
#define CLK_AUDIO_CODEC_1X 91
|
||||
#define CLK_AUDIO_CODEC_4X 92
|
||||
#define CLK_BUS_AUDIO_CODEC 93
|
||||
#define CLK_AUDIO_HUB 94
|
||||
#define CLK_BUS_AUDIO_HUB 95
|
||||
#define CLK_USB_OHCI0 96
|
||||
#define CLK_USB_PHY0 97
|
||||
#define CLK_USB_OHCI1 98
|
||||
#define CLK_USB_PHY1 99
|
||||
#define CLK_USB_OHCI2 100
|
||||
#define CLK_USB_PHY2 101
|
||||
#define CLK_USB_OHCI3 102
|
||||
#define CLK_USB_PHY3 103
|
||||
#define CLK_BUS_OHCI0 104
|
||||
#define CLK_BUS_OHCI1 105
|
||||
#define CLK_BUS_OHCI2 106
|
||||
#define CLK_BUS_OHCI3 107
|
||||
#define CLK_BUS_EHCI0 108
|
||||
#define CLK_BUS_EHCI1 109
|
||||
#define CLK_BUS_EHCI2 110
|
||||
#define CLK_BUS_EHCI3 111
|
||||
#define CLK_BUS_OTG 112
|
||||
#define CLK_BUS_KEYADC 113
|
||||
#define CLK_HDMI 114
|
||||
#define CLK_HDMI_SLOW 115
|
||||
#define CLK_HDMI_CEC 116
|
||||
#define CLK_BUS_HDMI 117
|
||||
#define CLK_BUS_TCON_TOP 118
|
||||
#define CLK_TCON_TV0 119
|
||||
#define CLK_TCON_TV1 120
|
||||
#define CLK_BUS_TCON_TV0 121
|
||||
#define CLK_BUS_TCON_TV1 122
|
||||
#define CLK_TVE0 123
|
||||
#define CLK_BUS_TVE_TOP 124
|
||||
#define CLK_BUS_TVE0 125
|
||||
#define CLK_HDCP 126
|
||||
#define CLK_BUS_HDCP 127
|
||||
|
||||
#endif /* _DT_BINDINGS_CLK_SUN50I_H616_H_ */
|
@ -13,5 +13,6 @@
|
||||
#define RST_R_APB2_I2C 4
|
||||
#define RST_R_APB1_IR 5
|
||||
#define RST_R_APB1_W1 6
|
||||
#define RST_R_APB2_RSB 7
|
||||
|
||||
#endif /* _DT_BINDINGS_RST_SUN50I_H6_R_CCU_H_ */
|
||||
|
70
include/dt-bindings/reset/sun50i-h616-ccu.h
Normal file
70
include/dt-bindings/reset/sun50i-h616-ccu.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
|
||||
/*
|
||||
* Copyright (C) 2020 Arm Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_RESET_SUN50I_H616_H_
|
||||
#define _DT_BINDINGS_RESET_SUN50I_H616_H_
|
||||
|
||||
#define RST_MBUS 0
|
||||
#define RST_BUS_DE 1
|
||||
#define RST_BUS_DEINTERLACE 2
|
||||
#define RST_BUS_GPU 3
|
||||
#define RST_BUS_CE 4
|
||||
#define RST_BUS_VE 5
|
||||
#define RST_BUS_DMA 6
|
||||
#define RST_BUS_HSTIMER 7
|
||||
#define RST_BUS_DBG 8
|
||||
#define RST_BUS_PSI 9
|
||||
#define RST_BUS_PWM 10
|
||||
#define RST_BUS_IOMMU 11
|
||||
#define RST_BUS_DRAM 12
|
||||
#define RST_BUS_NAND 13
|
||||
#define RST_BUS_MMC0 14
|
||||
#define RST_BUS_MMC1 15
|
||||
#define RST_BUS_MMC2 16
|
||||
#define RST_BUS_UART0 17
|
||||
#define RST_BUS_UART1 18
|
||||
#define RST_BUS_UART2 19
|
||||
#define RST_BUS_UART3 20
|
||||
#define RST_BUS_UART4 21
|
||||
#define RST_BUS_UART5 22
|
||||
#define RST_BUS_I2C0 23
|
||||
#define RST_BUS_I2C1 24
|
||||
#define RST_BUS_I2C2 25
|
||||
#define RST_BUS_I2C3 26
|
||||
#define RST_BUS_I2C4 27
|
||||
#define RST_BUS_SPI0 28
|
||||
#define RST_BUS_SPI1 29
|
||||
#define RST_BUS_EMAC0 30
|
||||
#define RST_BUS_EMAC1 31
|
||||
#define RST_BUS_TS 32
|
||||
#define RST_BUS_THS 33
|
||||
#define RST_BUS_SPDIF 34
|
||||
#define RST_BUS_DMIC 35
|
||||
#define RST_BUS_AUDIO_CODEC 36
|
||||
#define RST_BUS_AUDIO_HUB 37
|
||||
#define RST_USB_PHY0 38
|
||||
#define RST_USB_PHY1 39
|
||||
#define RST_USB_PHY2 40
|
||||
#define RST_USB_PHY3 41
|
||||
#define RST_BUS_OHCI0 42
|
||||
#define RST_BUS_OHCI1 43
|
||||
#define RST_BUS_OHCI2 44
|
||||
#define RST_BUS_OHCI3 45
|
||||
#define RST_BUS_EHCI0 46
|
||||
#define RST_BUS_EHCI1 47
|
||||
#define RST_BUS_EHCI2 48
|
||||
#define RST_BUS_EHCI3 49
|
||||
#define RST_BUS_OTG 50
|
||||
#define RST_BUS_HDMI 51
|
||||
#define RST_BUS_HDMI_SUB 52
|
||||
#define RST_BUS_TCON_TOP 53
|
||||
#define RST_BUS_TCON_TV0 54
|
||||
#define RST_BUS_TCON_TV1 55
|
||||
#define RST_BUS_TVE_TOP 56
|
||||
#define RST_BUS_TVE0 57
|
||||
#define RST_BUS_HDCP 58
|
||||
#define RST_BUS_KEYADC 59
|
||||
|
||||
#endif /* _DT_BINDINGS_RESET_SUN50I_H616_H_ */
|
Loading…
x
Reference in New Issue
Block a user