Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

soc: qcom: spm: remove driver-internal structures from the driver API

Move internal SPM driver structures to the driver itself, removing them
from the public API. The CPUidle driver doesn't use them at all.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-4-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Dmitry Baryshkov and committed by
Bjorn Andersson
57e2b067 aa4e327f

+21 -22
+20
drivers/soc/qcom/spm.c
··· 36 36 SPM_REG_NR, 37 37 }; 38 38 39 + #define MAX_PMIC_DATA 2 40 + #define MAX_SEQ_DATA 64 41 + 42 + struct spm_reg_data { 43 + const u16 *reg_offset; 44 + u32 spm_cfg; 45 + u32 spm_dly; 46 + u32 pmic_dly; 47 + u32 pmic_data[MAX_PMIC_DATA]; 48 + u32 avs_ctl; 49 + u32 avs_limit; 50 + u8 seq[MAX_SEQ_DATA]; 51 + u8 start_index[PM_SLEEP_MODE_NR]; 52 + }; 53 + 54 + struct spm_driver_data { 55 + void __iomem *reg_base; 56 + const struct spm_reg_data *reg_data; 57 + }; 58 + 39 59 static const u16 spm_reg_offset_v4_1[SPM_REG_NR] = { 40 60 [SPM_REG_AVS_CTL] = 0x904, 41 61 [SPM_REG_AVS_LIMIT] = 0x908,
+1 -22
include/soc/qcom/spm.h
··· 7 7 #ifndef __SPM_H__ 8 8 #define __SPM_H__ 9 9 10 - #include <linux/cpuidle.h> 11 - 12 - #define MAX_PMIC_DATA 2 13 - #define MAX_SEQ_DATA 64 14 - 15 10 enum pm_sleep_mode { 16 11 PM_SLEEP_MODE_STBY, 17 12 PM_SLEEP_MODE_RET, ··· 15 20 PM_SLEEP_MODE_NR, 16 21 }; 17 22 18 - struct spm_reg_data { 19 - const u16 *reg_offset; 20 - u32 spm_cfg; 21 - u32 spm_dly; 22 - u32 pmic_dly; 23 - u32 pmic_data[MAX_PMIC_DATA]; 24 - u32 avs_ctl; 25 - u32 avs_limit; 26 - u8 seq[MAX_SEQ_DATA]; 27 - u8 start_index[PM_SLEEP_MODE_NR]; 28 - }; 29 - 30 - struct spm_driver_data { 31 - void __iomem *reg_base; 32 - const struct spm_reg_data *reg_data; 33 - }; 34 - 23 + struct spm_driver_data; 35 24 void spm_set_low_power_mode(struct spm_driver_data *drv, 36 25 enum pm_sleep_mode mode); 37 26