From: Tom Rini <trini@konsulko.com>
Date: Tue, 12 Jan 2021 20:46:52 +0000 (-0500)
Subject: Merge tag 'u-boot-amlogic-20210112' of https://gitlab.denx.de/u-boot/custodians/u... 
X-Git-Tag: v2025.01-rc5-pxa1908~2068
X-Git-Url: http://git.dujemihanovic.xyz/html/static/gitweb.css?a=commitdiff_plain;h=795f8fd0b591eef7cf3f8c6fcf9788280029cc4a;p=u-boot.git

Merge tag 'u-boot-amlogic-20210112' of https://gitlab.denx.de/u-boot/custodians/u-boot-amlogic

- sync amlogic GX & AXG DT to Linux 5.10
- Add new MESON_EE driver support for GXBB & AXG
- Add support for Libretech-CC v2, Wetek Core2, Beelink GT-King/Pro boards
- add driver for TDO tl070wsh30 panel driver
- meson: isolate loading of socinfo
- Add soc_rev to environment
- Enable G12A support for saradc
- Add correct mmcdev on VIM3(L) & Odroid-N2(C4)
- Read MAC from fuses for VIM3 & VIM3L boards
---

795f8fd0b591eef7cf3f8c6fcf9788280029cc4a
diff --cc drivers/clk/meson/g12a-ao.c
index 0000000000,7a0abea77c..0148529e04
mode 000000,100644..100644
--- a/drivers/clk/meson/g12a-ao.c
+++ b/drivers/clk/meson/g12a-ao.c
@@@ -1,0 -1,83 +1,83 @@@
+ // SPDX-License-Identifier: GPL-2.0+
+ 
+ #include <common.h>
+ #include <log.h>
+ #include <asm/io.h>
+ #include <clk-uclass.h>
+ #include <dm.h>
+ #include <regmap.h>
+ #include <syscon.h>
+ #include <dt-bindings/clock/g12a-aoclkc.h>
+ 
+ #include "clk_meson.h"
+ 
+ struct meson_clk {
+ 	struct regmap *map;
+ };
+ 
+ #define AO_CLK_GATE0		0x4c
+ #define AO_SAR_CLK		0x90
+ 
+ static struct meson_gate gates[] = {
+ 	MESON_GATE(CLKID_AO_SAR_ADC, AO_CLK_GATE0, 8),
+ 	MESON_GATE(CLKID_AO_SAR_ADC_CLK, AO_SAR_CLK, 8),
+ };
+ 
+ static int meson_set_gate(struct clk *clk, bool on)
+ {
+ 	struct meson_clk *priv = dev_get_priv(clk->dev);
+ 	struct meson_gate *gate;
+ 
+ 	if (clk->id >= ARRAY_SIZE(gates))
+ 		return -ENOENT;
+ 
+ 	gate = &gates[clk->id];
+ 
+ 	if (gate->reg == 0)
+ 		return 0;
+ 
+ 	regmap_update_bits(priv->map, gate->reg,
+ 			   BIT(gate->bit), on ? BIT(gate->bit) : 0);
+ 
+ 	return 0;
+ }
+ 
+ static int meson_clk_enable(struct clk *clk)
+ {
+ 	return meson_set_gate(clk, true);
+ }
+ 
+ static int meson_clk_disable(struct clk *clk)
+ {
+ 	return meson_set_gate(clk, false);
+ }
+ 
+ static int meson_clk_probe(struct udevice *dev)
+ {
+ 	struct meson_clk *priv = dev_get_priv(dev);
+ 
 -	priv->map = syscon_node_to_regmap(dev_get_parent(dev)->node);
++	priv->map = syscon_node_to_regmap(dev_ofnode(dev_get_parent(dev)));
+ 	if (IS_ERR(priv->map))
+ 		return PTR_ERR(priv->map);
+ 
+ 	return 0;
+ }
+ 
+ static struct clk_ops meson_clk_ops = {
+ 	.disable	= meson_clk_disable,
+ 	.enable		= meson_clk_enable,
+ };
+ 
+ static const struct udevice_id meson_clk_ids[] = {
+ 	{ .compatible = "amlogic,meson-g12a-aoclkc" },
+ 	{ }
+ };
+ 
+ U_BOOT_DRIVER(meson_clk_axg) = {
+ 	.name		= "meson_clk_g12a_ao",
+ 	.id		= UCLASS_CLK,
+ 	.of_match	= meson_clk_ids,
 -	.priv_auto_alloc_size = sizeof(struct meson_clk),
++	.priv_auto	= sizeof(struct meson_clk),
+ 	.ops		= &meson_clk_ops,
+ 	.probe		= meson_clk_probe,
+ };