Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2c13bff authored by Saurabh Sahu's avatar Saurabh Sahu
Browse files

clk: qcom: gcc: Add support for GCC clock driver for Monaco



Add support for global clock controller for peripheral
clock clients to be able to request for the clocks in
Monaco.

Change-Id: I0dcf82faf9073a7ee832c693540dddbca44e2524
Signed-off-by: default avatarSaurabh Sahu <sausah@codeaurora.org>
parent 8e71903a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -747,6 +747,16 @@ config SM_DEBUGCC_6150
	  Say Y if you want to support the debug clocks such as
	  clock measurement functionality.

config SDW_GCC_MONACO
	tristate "MONACO Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	help
	  Support for the global clock controller on Qualcomm Technologies, Inc.
	  MONACO devices.
	  Say Y if you want to use peripheral devices such as UART, SPI, I2C,
	  USB, SD/eMMC, etc.

endif

config VIRTIO_CLK
+1 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ obj-$(CONFIG_SDX_DEBUGCC_LEMUR) += debugcc-sdxlemur.o
obj-$(CONFIG_SDX_DEBUGCC_NIGHTJAR) += debugcc-sdxnightjar.o
obj-$(CONFIG_SDX_GCC_LEMUR) += gcc-sdxlemur.o
obj-$(CONFIG_SDX_GCC_NIGHTJAR) += gcc-sdxnightjar.o
obj-$(CONFIG_SDW_GCC_MONACO) += gcc-monaco.o
obj-$(CONFIG_SM_CAMCC_6150) += camcc-sm6150.o
obj-$(CONFIG_SM_CAMCC_8150) += camcc-sm8150.o
obj-$(CONFIG_SM_CAMCC_SHIMA) += camcc-shima.o
+2082 −0

File added.

Preview size limit exceeded, changes collapsed.

+35 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 */

#ifndef __DRIVERS_CLK_QCOM_VDD_LEVEL_H
#define __DRIVERS_CLK_QCOM_VDD_LEVEL_H

#include <linux/regulator/consumer.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>

enum vdd_levels {
	VDD_NONE,
	VDD_LOWER_D1,		/* MIN SVS */
	VDD_LOWER,		/* SVS2 */
	VDD_LOW,		/* SVS */
	VDD_LOW_L1,		/* SVSL1 */
	VDD_NOMINAL,		/* NOM */
	VDD_NOMINAL_L1,		/* NOM L1 */
	VDD_HIGH,		/* TURBO */
	VDD_NUM,
};

static int vdd_corner[] = {
	[VDD_NONE]    = 0,
	[VDD_LOWER_D1]     = RPMH_REGULATOR_LEVEL_MIN_SVS,
	[VDD_LOWER]   = RPMH_REGULATOR_LEVEL_LOW_SVS,
	[VDD_LOW]     = RPMH_REGULATOR_LEVEL_SVS,
	[VDD_LOW_L1]  = RPMH_REGULATOR_LEVEL_SVS_L1,
	[VDD_NOMINAL] = RPMH_REGULATOR_LEVEL_NOM,
	[VDD_NOMINAL_L1] = RPMH_REGULATOR_LEVEL_NOM_L1,
	[VDD_HIGH]    = RPMH_REGULATOR_LEVEL_TURBO,
};

#endif