Commit 0409ac48 authored by Stephen Boyd's avatar Stephen Boyd
Browse files

Merge tag 'sunxi-clk-for-6.16' of...

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
parents 0af2f6be be0e9a37
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+24 −24
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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) },
+25 −0
Original line number Diff line number Diff line
@@ -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);
+5 −5
Original line number Diff line number Diff line
@@ -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.
Loading