soc: rockchip: amp: support amp driver

1.Protect clock and iomux resources used by AMP.
2.Support RK3568 AMP.

Signed-off-by: Steven Liu <steven.liu@rock-chips.com>
Change-Id: If53e893fac916217bfa5618350b1706b742b34e7
This commit is contained in:
Steven Liu
2021-08-26 20:04:20 +08:00
committed by Tao Huang
parent 28ce07e7f1
commit d5590a0c1e
3 changed files with 57 additions and 0 deletions

View File

@@ -14,6 +14,12 @@ config ANDROID_VERSION
The version of Android kernel supported.
The value is 0xAABBCCRR, corresponding to Android A.B.C release R
config ROCKCHIP_AMP
tristate "Rockchip AMP support"
help
Say y here to enable Rockchip AMP support.
This option protects resources used by AMP.
config ROCKCHIP_CPUINFO
tristate "Rockchip cpuinfo support"
depends on (ROCKCHIP_EFUSE || ROCKCHIP_OTP) && (ARM64 || ARM)

View File

@@ -14,6 +14,7 @@ obj-$(CONFIG_ROCKCHIP_IPA) += rockchip_ipa.o
obj-$(CONFIG_ROCKCHIP_OPP) += rockchip_opp_select.o
obj-$(CONFIG_ROCKCHIP_PVTM) += rockchip_pvtm.o
obj-$(CONFIG_ROCKCHIP_RAMDISK) += rockchip_ramdisk.o
obj-$(CONFIG_ROCKCHIP_AMP) += rockchip_amp.o
obj-$(CONFIG_ROCKCHIP_SUSPEND_MODE) += rockchip_pm_config.o
obj-$(CONFIG_ROCKCHIP_SYSTEM_MONITOR) += rockchip_system_monitor.o
obj-$(CONFIG_ROCKCHIP_THUNDER_BOOT_CRYPTO) += rockchip_thunderboot_crypto.o

View File

@@ -0,0 +1,50 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Rockchip AMP support.
*
* Copyright (c) 2021 Rockchip Electronics Co. Ltd.
* Author: Tony Xie <tony.xie@rock-chips.com>
*/
#include <linux/clk.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
static const struct of_device_id rockchip_amp_match[] = {
{
.compatible = "rockchip,rk3568-amp",
},
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, rockchip_amp_match);
static int rockchip_amp_probe(struct platform_device *pdev)
{
struct clk_bulk_data *clks;
int num_clks;
int ret;
num_clks = devm_clk_bulk_get_all(&pdev->dev, &clks);
if (num_clks < 1)
return -ENODEV;
ret = clk_bulk_prepare_enable(num_clks, clks);
if (ret) {
dev_err(&pdev->dev, "failed to prepare enable clks: %d\n", ret);
return ret;
}
return 0;
}
static struct platform_driver rockchip_amp_driver = {
.probe = rockchip_amp_probe,
.driver = {
.name = "rockchip-amp",
.of_match_table = rockchip_amp_match,
},
};
module_platform_driver(rockchip_amp_driver);
MODULE_DESCRIPTION("Rockchip AMP driver");
MODULE_AUTHOR("Tony xie<tony.xie@rock-chips.com>");
MODULE_LICENSE("GPL v2");