Merge tag 'sunxi-clk-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner
Pull Allwinner clk driver updates from Chen-Yu Tsai: - Add support for DE (display engine) 3.3 clocks on H616 - Add missing LVDS reset control on H616 - Do not enable by default during compile testing * tag 'sunxi-clk-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support dt-bindings: allwinner: add H616 DE33 clock binding clk: sunxi-ng: h616: Add LVDS reset for LCD TCON dt-bindings: clock: sun50i-h616-ccu: Add LVDS reset clk: sunxi: Do not enable by default during compile testing clk: sunxi-ng: Do not enable by default during compile testing
This commit is contained in:
@@ -25,6 +25,7 @@ properties:
|
||||
- const: allwinner,sun50i-a64-de2-clk
|
||||
- const: allwinner,sun50i-h5-de2-clk
|
||||
- const: allwinner,sun50i-h6-de3-clk
|
||||
- const: allwinner,sun50i-h616-de33-clk
|
||||
- items:
|
||||
- const: allwinner,sun8i-r40-de2-clk
|
||||
- const: allwinner,sun8i-h3-de2-clk
|
||||
|
||||
@@ -9,123 +9,123 @@ if SUNXI_CCU
|
||||
|
||||
config SUNIV_F1C100S_CCU
|
||||
tristate "Support for the Allwinner newer F1C100s CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUNIV || COMPILE_TEST
|
||||
|
||||
config SUN20I_D1_CCU
|
||||
tristate "Support for the Allwinner D1/R528/T113 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || RISCV || COMPILE_TEST
|
||||
|
||||
config SUN20I_D1_R_CCU
|
||||
tristate "Support for the Allwinner D1/R528/T113 PRCM CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || RISCV || COMPILE_TEST
|
||||
|
||||
config SUN50I_A64_CCU
|
||||
tristate "Support for the Allwinner A64 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN50I_A100_CCU
|
||||
tristate "Support for the Allwinner A100 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN50I_A100_R_CCU
|
||||
tristate "Support for the Allwinner A100 PRCM CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN50I_H6_CCU
|
||||
tristate "Support for the Allwinner H6 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN50I_H616_CCU
|
||||
tristate "Support for the Allwinner H616 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN50I_H6_R_CCU
|
||||
tristate "Support for the Allwinner H6 and H616 PRCM CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN55I_A523_CCU
|
||||
tristate "Support for the Allwinner A523/T527 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN55I_A523_R_CCU
|
||||
tristate "Support for the Allwinner A523/T527 PRCM CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN4I_A10_CCU
|
||||
tristate "Support for the Allwinner A10/A20 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST
|
||||
|
||||
config SUN5I_CCU
|
||||
bool "Support for the Allwinner sun5i family CCM"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN5I || COMPILE_TEST
|
||||
depends on SUNXI_CCU=y
|
||||
|
||||
config SUN6I_A31_CCU
|
||||
tristate "Support for the Allwinner A31/A31s CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN6I || COMPILE_TEST
|
||||
|
||||
config SUN6I_RTC_CCU
|
||||
tristate "Support for the Allwinner H616/R329 RTC CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || ARM64 || RISCV || COMPILE_TEST
|
||||
|
||||
config SUN8I_A23_CCU
|
||||
tristate "Support for the Allwinner A23 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || COMPILE_TEST
|
||||
|
||||
config SUN8I_A33_CCU
|
||||
tristate "Support for the Allwinner A33 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || COMPILE_TEST
|
||||
|
||||
config SUN8I_A83T_CCU
|
||||
tristate "Support for the Allwinner A83T CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || COMPILE_TEST
|
||||
|
||||
config SUN8I_H3_CCU
|
||||
tristate "Support for the Allwinner H3 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || ARM64 || COMPILE_TEST
|
||||
|
||||
config SUN8I_V3S_CCU
|
||||
tristate "Support for the Allwinner V3s CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || COMPILE_TEST
|
||||
|
||||
config SUN8I_DE2_CCU
|
||||
tristate "Support for the Allwinner SoCs DE2 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || ARM64 || RISCV || COMPILE_TEST
|
||||
|
||||
config SUN8I_R40_CCU
|
||||
tristate "Support for the Allwinner R40 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || COMPILE_TEST
|
||||
|
||||
config SUN9I_A80_CCU
|
||||
tristate "Support for the Allwinner A80 CCU"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN9I || COMPILE_TEST
|
||||
|
||||
config SUN8I_R_CCU
|
||||
tristate "Support for Allwinner SoCs' PRCM CCUs"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
depends on MACH_SUN8I || ARM64 || COMPILE_TEST
|
||||
|
||||
endif
|
||||
|
||||
@@ -1094,6 +1094,7 @@ static const struct ccu_reset_map sun50i_h616_ccu_resets[] = {
|
||||
[RST_BUS_TCON_LCD1] = { 0xb7c, BIT(17) },
|
||||
[RST_BUS_TCON_TV0] = { 0xb9c, BIT(16) },
|
||||
[RST_BUS_TCON_TV1] = { 0xb9c, BIT(17) },
|
||||
[RST_BUS_LVDS] = { 0xbac, BIT(16) },
|
||||
[RST_BUS_TVE_TOP] = { 0xbbc, BIT(16) },
|
||||
[RST_BUS_TVE0] = { 0xbbc, BIT(17) },
|
||||
[RST_BUS_HDCP] = { 0xc4c, BIT(16) },
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
@@ -239,6 +240,16 @@ static const struct sunxi_ccu_desc sun50i_h5_de2_clk_desc = {
|
||||
.num_resets = ARRAY_SIZE(sun50i_h5_de2_resets),
|
||||
};
|
||||
|
||||
static const struct sunxi_ccu_desc sun50i_h616_de33_clk_desc = {
|
||||
.ccu_clks = sun8i_de2_ccu_clks,
|
||||
.num_ccu_clks = ARRAY_SIZE(sun8i_de2_ccu_clks),
|
||||
|
||||
.hw_clks = &sun8i_h3_de2_hw_clks,
|
||||
|
||||
.resets = sun50i_h5_de2_resets,
|
||||
.num_resets = ARRAY_SIZE(sun50i_h5_de2_resets),
|
||||
};
|
||||
|
||||
static int sunxi_de2_clk_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct clk *bus_clk, *mod_clk;
|
||||
@@ -291,6 +302,16 @@ static int sunxi_de2_clk_probe(struct platform_device *pdev)
|
||||
goto err_disable_mod_clk;
|
||||
}
|
||||
|
||||
/*
|
||||
* The DE33 requires these additional (unknown) registers set
|
||||
* during initialisation.
|
||||
*/
|
||||
if (of_device_is_compatible(pdev->dev.of_node,
|
||||
"allwinner,sun50i-h616-de33-clk")) {
|
||||
writel(0, reg + 0x24);
|
||||
writel(0x0000a980, reg + 0x28);
|
||||
}
|
||||
|
||||
ret = devm_sunxi_ccu_probe(&pdev->dev, reg, ccu_desc);
|
||||
if (ret)
|
||||
goto err_assert_reset;
|
||||
@@ -335,6 +356,10 @@ static const struct of_device_id sunxi_de2_clk_ids[] = {
|
||||
.compatible = "allwinner,sun50i-h6-de3-clk",
|
||||
.data = &sun50i_h5_de2_clk_desc,
|
||||
},
|
||||
{
|
||||
.compatible = "allwinner,sun50i-h616-de33-clk",
|
||||
.data = &sun50i_h616_de33_clk_desc,
|
||||
},
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, sunxi_de2_clk_ids);
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
menuconfig CLK_SUNXI
|
||||
bool "Legacy clock support for Allwinner SoCs"
|
||||
depends on (ARM && ARCH_SUNXI) || COMPILE_TEST
|
||||
default y
|
||||
default (ARM && ARCH_SUNXI)
|
||||
|
||||
if CLK_SUNXI
|
||||
|
||||
config CLK_SUNXI_CLOCKS
|
||||
bool "Legacy clock drivers"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
help
|
||||
Legacy clock drivers being used on older (A10, A13, A20,
|
||||
A23, A31, A80) SoCs. These drivers are kept around for
|
||||
@@ -19,14 +19,14 @@ config CLK_SUNXI_CLOCKS
|
||||
|
||||
config CLK_SUNXI_PRCM_SUN6I
|
||||
bool "Legacy A31 PRCM driver"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
help
|
||||
Legacy clock driver for the A31 PRCM clocks. Those are
|
||||
usually needed for the PMIC communication, mostly.
|
||||
|
||||
config CLK_SUNXI_PRCM_SUN8I
|
||||
bool "Legacy sun8i PRCM driver"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
help
|
||||
Legacy clock driver for the sun8i family PRCM clocks.
|
||||
Those are usually needed for the PMIC communication,
|
||||
@@ -34,7 +34,7 @@ config CLK_SUNXI_PRCM_SUN8I
|
||||
|
||||
config CLK_SUNXI_PRCM_SUN9I
|
||||
bool "Legacy A80 PRCM driver"
|
||||
default y
|
||||
default ARCH_SUNXI
|
||||
help
|
||||
Legacy clock driver for the A80 PRCM clocks. Those are
|
||||
usually needed for the PMIC communication, mostly.
|
||||
|
||||
@@ -69,5 +69,6 @@
|
||||
#define RST_BUS_GPADC 60
|
||||
#define RST_BUS_TCON_LCD0 61
|
||||
#define RST_BUS_TCON_LCD1 62
|
||||
#define RST_BUS_LVDS 63
|
||||
|
||||
#endif /* _DT_BINDINGS_RESET_SUN50I_H616_H_ */
|
||||
|
||||
Reference in New Issue
Block a user