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

Commit 19790df3 authored by Taniya Das's avatar Taniya Das
Browse files

clk: qcom: Add clock driver for Bengal peripheral Clocks



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

Change-Id: I880dcf4652fde5e4e3f5f5bea6368d0e13eadd6b
Signed-off-by: default avatarTaniya Das <tdas@codeaurora.org>
parent 68e8b42a
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -407,3 +407,12 @@ config SM_DEBUGCC_LITO
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  LITO devices.
	  Say Y if you want to support the clock measurement functionality.

config SM_GCC_BENGAL
	tristate "BENGAL Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	help
	  Support for the global clock controller on Bengal devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  I2C, USB, UFS, SDCC, PCIe, Camera, Video etc.
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o
obj-$(CONFIG_SM_CAMCC_LITO) += camcc-lito.o
obj-$(CONFIG_SM_DEBUGCC_LITO) += debugcc-lito.o
obj-$(CONFIG_SM_DISPCC_LITO) += dispcc-lito.o
obj-$(CONFIG_SM_GCC_BENGAL) += gcc-bengal.o
obj-$(CONFIG_SM_GCC_LITO) += gcc-lito.o
obj-$(CONFIG_SM_NPUCC_LITO) += npucc-lito.o
obj-$(CONFIG_SM_VIDEOCC_LITO) += videocc-lito.o
+3897 −0

File added.

Preview size limit exceeded, changes collapsed.

+37 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2019, 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_MIN,		/* MIN SVS */
	VDD_LOWER,		/* SVS2 */
	VDD_LOW,		/* SVS */
	VDD_LOW_L1,		/* SVSL1 */
	VDD_NOMINAL,		/* NOM */
	VDD_NOMINAL_L1,		/* NOM L1 */
	VDD_HIGH,		/* TURBO */
	VDD_HIGH_L1,		/* TURBO */
	VDD_NUM,
};

static int vdd_corner[] = {
	[VDD_NONE]    = 0,
	[VDD_MIN]     = 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,
	[VDD_HIGH_L1]    = RPMH_REGULATOR_LEVEL_TURBO_L1,
};

#endif