From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0283462550350811276==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: [frank-w-bpi-r2-4.14:5.16-r2pro 5/46] drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:191:6: error: no previous prototype for function 'mtk_wcn_consys_power_on' Date: Thu, 16 Dec 2021 20:32:48 +0800 Message-ID: <202112162013.yu4EBbAk-lkp@intel.com> List-Id: --===============0283462550350811276== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/frank-w/BPI-R2-4.14 5.16-r2pro head: 128a9afefdc678ae6492ee2067b1e33e14b6c28f commit: 8f3e42b3d0855dda8a76965487facfb915a4dd33 [5/46] mt6625l: add change= s outside driver dir config: arm-randconfig-r003-20211216 (https://download.01.org/0day-ci/archi= ve/20211216/202112162013.yu4EBbAk-lkp(a)intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project dd245b= ab9fbb364faa1581e4f92ba3119a872fba) reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/frank-w/BPI-R2-4.14/commit/8f3e42b3d0855dda8a7= 6965487facfb915a4dd33 git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R= 2-4.14 git fetch --no-tags frank-w-bpi-r2-4.14 5.16-r2pro git checkout 8f3e42b3d0855dda8a76965487facfb915a4dd33 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dclang make.cross W=3D= 1 O=3Dbuild_dir ARCH=3Darm SHELL=3D/bin/bash drivers/misc/mediatek/connecti= vity/common/conn_soc/linux/pri/ drivers/misc/mediatek/connectivity/common/c= onn_soc/mt7623/ drivers/power/supply/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:191:6: error: no previous prototype for function 'mtk_wcn_consys_powe= r_on' [-Werror,-Wmissing-prototypes] VOID mtk_wcn_consys_power_on(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:191:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit VOID mtk_wcn_consys_power_on(VOID) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:207:6: error: no previous prototype for function 'mtk_wcn_consys_powe= r_off' [-Werror,-Wmissing-prototypes] VOID mtk_wcn_consys_power_off(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:207:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit VOID mtk_wcn_consys_power_off(VOID) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:224:7: error: no previous prototype for function 'mtk_wcn_consys_hw_r= eg_ctrl' [-Werror,-Wmissing-prototypes] INT32 mtk_wcn_consys_hw_reg_ctrl(UINT32 on, UINT32 co_clock_type) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:224:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit INT32 mtk_wcn_consys_hw_reg_ctrl(UINT32 on, UINT32 co_clock_type) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:335:7: error: no previous prototype for function 'mtk_wcn_consys_hw_g= pio_ctrl' [-Werror,-Wmissing-prototypes] INT32 mtk_wcn_consys_hw_gpio_ctrl(UINT32 on) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:335:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit INT32 mtk_wcn_consys_hw_gpio_ctrl(UINT32 on) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:539:7: error: no previous prototype for function 'mtk_wcn_consys_hw_r= estore' [-Werror,-Wmissing-prototypes] INT32 mtk_wcn_consys_hw_restore(struct device *device) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:539:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit INT32 mtk_wcn_consys_hw_restore(struct device *device) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:592:5: error: no previous prototype for function 'reserve_memory_cons= ys_fn' [-Werror,-Wmissing-prototypes] int reserve_memory_consys_fn(struct reserved_mem *rmem) ^ drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys= _hw.c:592:1: note: declare 'static' if the function is not intended to be u= sed outside of this translation unit int reserve_memory_consys_fn(struct reserved_mem *rmem) ^ static = 6 errors generated. -- static const struct proc_ops wmt_dbg_fops =3D { ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 289:7: error: no previous prototype for function 'wmt_dev_dbg_setup' [-Werr= or,-Wmissing-prototypes] INT32 wmt_dev_dbg_setup(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 289:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit INT32 wmt_dev_dbg_setup(VOID) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 303:7: error: no previous prototype for function 'wmt_dev_dbg_remove' [-Wer= ror,-Wmissing-prototypes] INT32 wmt_dev_dbg_remove(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 303:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit INT32 wmt_dev_dbg_remove(VOID) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 376:31: error: unused variable 'wmt_aee_fops' [-Werror,-Wunused-variable] static const struct proc_ops wmt_aee_fops =3D { ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 374:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_setu= p' [-Werror,-Wmissing-prototypes] INT32 wmt_dev_proc_for_aee_setup(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 374:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit INT32 wmt_dev_proc_for_aee_setup(VOID) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 390:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_remo= ve' [-Werror,-Wmissing-prototypes] INT32 wmt_dev_proc_for_aee_remove(VOID) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 390:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit INT32 wmt_dev_proc_for_aee_remove(VOID) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 494:20: error: implicit declaration of function 'get_fs' [-Werror,-Wimplici= t-function-declaration] fs=3Dget_fs(); ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 494:20: note: did you mean 'sget_fc'? include/linux/fs.h:2564:21: note: 'sget_fc' declared here struct super_block *sget_fc(struct fs_context *fc, ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 494:19: error: assigning to 'mm_segment_t' from incompatible type 'int' fs=3Dget_fs(); ^~~~~~~~~ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 496:17: error: implicit declaration of function 'set_fs' [-Werror,-Wimplici= t-function-declaration] set_fs(fs); ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 496:17: note: did you mean 'get_fs'? drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 494:20: note: 'get_fs' declared here fs=3Dget_fs(); ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 435:7: error: no previous prototype for function 'wmt_dev_read_file' [-Werr= or,-Wmissing-prototypes] INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offs= et, INT32 padSzBuf) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 435:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offs= et, INT32 padSzBuf) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 528:25: error: implicit declaration of function 'get_fs' [-Werror,-Wimplici= t-function-declaration] mm_segment_t orig_fs =3D get_fs(); ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 528:15: error: initializing 'mm_segment_t' with an expression of incompatib= le type 'int' mm_segment_t orig_fs =3D get_fs(); ^ ~~~~~~~~ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 555:2: error: implicit declaration of function 'set_fs' [-Werror,-Wimplicit= -function-declaration] set_fs(get_ds()); ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 597:14: error: no previous prototype for function 'wmt_dev_is_file_exist' [= -Werror,-Wmissing-prototypes] MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 597:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 645:14: error: no previous prototype for function 'wmt_dev_tra_bitf_update'= [-Werror,-Wmissing-prototypes] extern INT32 wmt_dev_tra_bitf_update(void) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 645:8: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit extern INT32 wmt_dev_tra_bitf_update(void) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 703:6: error: no previous prototype for function 'wmt_dev_tm_temp_query' [-= Werror,-Wmissing-prototypes] long wmt_dev_tm_temp_query(void) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 703:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit long wmt_dev_tm_temp_query(void) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 801:9: error: no previous prototype for function 'WMT_write' [-Werror,-Wmis= sing-prototypes] ssize_t WMT_write(struct file *filp, const char __user *buf, size_t coun= t, loff_t *f_pos) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 801:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit ssize_t WMT_write(struct file *filp, const char __user *buf, size_t coun= t, loff_t *f_pos) ^ static = drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 834:9: error: no previous prototype for function 'WMT_read' [-Werror,-Wmiss= ing-prototypes] ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff= _t *f_pos) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 834:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff= _t *f_pos) ^ static = >> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 865:14: error: no previous prototype for function 'WMT_poll' [-Werror,-Wmis= sing-prototypes] unsigned int WMT_poll(struct file *filp, poll_table *wait) ^ drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1= 865:1: note: declare 'static' if the function is not intended to be used ou= tside of this translation unit unsigned int WMT_poll(struct file *filp, poll_table *wait) ^ static = fatal error: too many errors emitted, stopping now [-ferror-limit=3D] 20 errors generated. vim +/mtk_wcn_consys_power_on +191 drivers/misc/mediatek/connectivity/commo= n/conn_soc/mt7623/mtk_wcn_consys_hw.c d03a149ef0a8e6 Frank Wunderlich 2021-08-29 190 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 @191 VOID mtk_wcn_consys_power_= on(VOID) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 192 { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 193 INT32 iRet =3D -1; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 194 iRet =3D pm_runtime_get_s= ync(&my_pdev->dev); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 195 if (iRet) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 196 WMT_PLAT_ERR_FUNC("pm_ru= ntime_get_sync() fail(%d)\n", iRet); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 197 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 198 WMT_PLAT_INFO_FUNC("pm_r= untime_get_sync() CONSYS ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 199 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 200 iRet =3D device_init_wake= up(&my_pdev->dev, true); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 201 if (iRet) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 202 WMT_PLAT_ERR_FUNC("devic= e_init_wakeup(true) fail.\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 203 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 204 WMT_PLAT_INFO_FUNC("devi= ce_init_wakeup(true) CONSYS ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 205 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 206 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 @207 VOID mtk_wcn_consys_power_= off(VOID) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 208 { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 209 INT32 iRet =3D -1; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 210 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 211 iRet =3D pm_runtime_put_s= ync(&my_pdev->dev); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 212 if (iRet) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 213 WMT_PLAT_ERR_FUNC("pm_ru= ntime_put_sync() fail.\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 214 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 215 WMT_PLAT_INFO_FUNC("pm_r= untime_put_sync() CONSYS ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 216 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 217 iRet =3D device_init_wake= up(&my_pdev->dev, false); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 218 if (iRet) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 219 WMT_PLAT_ERR_FUNC("devic= e_init_wakeup(false) fail.\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 220 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 221 WMT_PLAT_INFO_FUNC("devi= ce_init_wakeup(false) CONSYS ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 222 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 223 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 @224 INT32 mtk_wcn_consys_hw_re= g_ctrl(UINT32 on, UINT32 co_clock_type) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 225 { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 226 UINT32 retry =3D 10; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 227 UINT32 consysHwChipId =3D= 0; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 228 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 229 WMT_PLAT_DBG_FUNC("CONSYS= -HW-REG-CTRL(0x%08x),start\n", on); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 230 if (on) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 231 WMT_PLAT_DBG_FUNC("++\n"= ); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 232 /*need PMIC driver provi= de new API protocol */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 233 /*1.AP power on VCN_1V8 = LDO (with PMIC_WRAP API) VCN_1V8 */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 234 regulator_set_mode(reg_V= CN18, REGULATOR_MODE_STANDBY); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 235 /* VOL_DEFAULT, VOL_1200= , VOL_1300, VOL_1500, VOL_1800... */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 236 if (reg_VCN18) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 237 regulator_set_voltage(r= eg_VCN18, 1800000, 1800000); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 238 if (regulator_enable(re= g_VCN18)) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 239 WMT_PLAT_ERR_FUNC("ena= ble VCN18 fail\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 240 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 241 WMT_PLAT_DBG_FUNC("ena= ble VCN18 ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 242 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 243 udelay(150); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 244 if (co_clock_type) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 245 /*step0,clk buf ctrl */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 246 WMT_PLAT_INFO_FUNC("co = clock type(%d),turn on clk buf\n", co_clock_type); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 247 #if CONSYS_CLOCK_BUF_CTRL d03a149ef0a8e6 Frank Wunderlich 2021-08-29 248 clk_buf_ctrl(CLK_BUF_CO= NN, 1); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 249 #endif d03a149ef0a8e6 Frank Wunderlich 2021-08-29 250 /*if co-clock mode: */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 251 /*2.set VCN28 to SW con= trol mode (with PMIC_WRAP API) */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 252 /*turn on VCN28 LDO onl= y when FMSYS is activated" */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 253 regmap_update_bits(pmic= _regmap, 0x41C, 0x1 << 14, 0x0 << 14);/*V28*/ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 254 } else { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 255 /*if NOT co-clock: */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 256 /*2.1.switch VCN28 to H= W control mode (with PMIC_WRAP API) */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 257 regmap_update_bits(pmic= _regmap, 0x41C, 0x1 << 14, 0x1 << 14);/*V28*/ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 258 /*2.2.turn on VCN28 LDO= (with PMIC_WRAP API)" */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 259 /*fix vcn28 not balance= warning */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 260 if (reg_VCN28) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 261 regulator_set_voltage(= reg_VCN28, 2800000, 2800000); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 262 if (regulator_enable(r= eg_VCN28)) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 263 WMT_PLAT_ERR_FUNC("en= able VCN_2V8 fail!\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 264 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 265 WMT_PLAT_DBG_FUNC("en= able VCN_2V8 ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 266 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 267 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 268 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 269 /*3.assert CONNSYS CPU S= W reset 0x10007018 "[12]=3D1'b1 [31:24]=3D8'h88 (key)" */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 270 reset_control_reset(rstc= ); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 271 mtk_wcn_consys_power_on(= ); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 272 /*11.26M is ready now, d= elay 10us for mem_pd de-assert */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 273 udelay(10); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 274 /*enable AP bus clock : = connmcu_bus_pd API: enable_clock() ++?? */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 275 clk_prepare_enable(clk_i= nfra_conn_main); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 276 WMT_PLAT_DBG_FUNC("[CCF]= enable clk_infra_conn_main\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 277 /*12.poll CONNSYS CHIP I= D until chipid is returned 0x18070008 */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 278 while (retry-- > 0) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 279 consysHwChipId =3D CONS= YS_REG_READ(conn_reg.mcu_base + CONSYS_CHIP_ID_OFFSET) - 0xf6d; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 280 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 281 if ((consysHwChipId =3D= =3D 0x0321) || (consysHwChipId =3D=3D 0x0335) || (consysHwChipId =3D=3D 0x0= 337)) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 282 WMT_PLAT_INFO_FUNC("re= try(%d)consys chipId(0x%08x)\n", retry, consysHwChipId); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 283 break; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 284 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 285 if ((consysHwChipId =3D= =3D 0x8163) || (consysHwChipId =3D=3D 0x8127) || (consysHwChipId =3D=3D 0x7= 623)) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 286 WMT_PLAT_INFO_FUNC("re= try(%d)consys chipId(0x%08x)\n", retry, consysHwChipId); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 287 break; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 288 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 289 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 290 WMT_PLAT_ERR_FUNC("Read= CONSYS chipId(0x%08x)", consysHwChipId); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 291 msleep(20); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 292 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 293 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 294 if ((0 =3D=3D retry) || = (0 =3D=3D consysHwChipId)) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 295 WMT_PLAT_ERR_FUNC("Mayb= e has a consys power on issue,(0x%08x)\n", consysHwChipId); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 296 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 297 msleep(40); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 298 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 299 } else { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 300 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 301 clk_disable_unprepare(cl= k_infra_conn_main); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 302 WMT_PLAT_DBG_FUNC("[CCF]= clk_disable_unprepare(clk_infra_conn_main) calling\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 303 mtk_wcn_consys_power_off= (); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 304 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 305 if (co_clock_type) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 306 /*VCN28 has been turned= off by GPS OR FM */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 307 #if CONSYS_CLOCK_BUF_CTRL d03a149ef0a8e6 Frank Wunderlich 2021-08-29 308 clk_buf_ctrl(CLK_BUF_CO= NN, 0); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 309 #endif d03a149ef0a8e6 Frank Wunderlich 2021-08-29 310 } else { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 311 regmap_update_bits(pmic= _regmap, 0x41C, 0x1 << 14, 0x0 << 14);/*V28*/ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 312 /*turn off VCN28 LDO (w= ith PMIC_WRAP API)" */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 313 if (reg_VCN28) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 314 if (regulator_disable(= reg_VCN28)) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 315 WMT_PLAT_ERR_FUNC("di= sable VCN_2V8 fail!\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 316 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 317 WMT_PLAT_DBG_FUNC("di= sable VCN_2V8 ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 318 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 319 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 320 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 321 /*AP power off MT6625L V= CN_1V8 LDO */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 322 regulator_set_mode(reg_V= CN18, REGULATOR_MODE_STANDBY); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 323 if (reg_VCN18) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 324 if (regulator_disable(r= eg_VCN18)) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 325 WMT_PLAT_ERR_FUNC("dis= able VCN_1V8 fail!\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 326 else d03a149ef0a8e6 Frank Wunderlich 2021-08-29 327 WMT_PLAT_DBG_FUNC("dis= able VCN_1V8 ok\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 328 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 329 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 330 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 331 WMT_PLAT_DBG_FUNC("CONSYS= -HW-REG-CTRL(0x%08x),finish\n", on); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 332 return 0; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 333 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 334 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 @335 INT32 mtk_wcn_consys_hw_gp= io_ctrl(UINT32 on) d03a149ef0a8e6 Frank Wunderlich 2021-08-29 336 { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 337 INT32 iRet =3D 0; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 338 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 339 WMT_PLAT_DBG_FUNC("CONSYS= -HW-GPIO-CTRL(0x%08x), start\n", on); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 340 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 341 if (on) { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 342 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 343 /* TODO: [FixMe][GeorgeK= uo] double check if BGF_INT is implemented ok */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 344 /* iRet +=3D wmt_plat_gp= io_ctrl(PIN_BGF_EINT, PIN_STA_MUX); */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 345 iRet +=3D wmt_plat_eirq_= ctrl(PIN_BGF_EINT, PIN_STA_INIT); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 346 iRet +=3D wmt_plat_eirq_= ctrl(PIN_BGF_EINT, PIN_STA_EINT_DIS); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 347 WMT_PLAT_DBG_FUNC("CONSY= S-HW, BGF IRQ registered and disabled\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 348 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 349 } else { d03a149ef0a8e6 Frank Wunderlich 2021-08-29 350 = d03a149ef0a8e6 Frank Wunderlich 2021-08-29 351 /* set bgf eint/all eint= to deinit state, namely input low state */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 352 iRet +=3D wmt_plat_eirq_= ctrl(PIN_BGF_EINT, PIN_STA_EINT_DIS); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 353 iRet +=3D wmt_plat_eirq_= ctrl(PIN_BGF_EINT, PIN_STA_DEINIT); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 354 WMT_PLAT_DBG_FUNC("CONSY= S-HW, BGF IRQ unregistered and disabled\n"); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 355 /* iRet +=3D wmt_plat_gp= io_ctrl(PIN_BGF_EINT, PIN_STA_DEINIT); */ d03a149ef0a8e6 Frank Wunderlich 2021-08-29 356 } d03a149ef0a8e6 Frank Wunderlich 2021-08-29 357 WMT_PLAT_DBG_FUNC("CONSYS= -HW-GPIO-CTRL(0x%08x), finish\n", on); d03a149ef0a8e6 Frank Wunderlich 2021-08-29 358 return iRet; d03a149ef0a8e6 Frank Wunderlich 2021-08-29 359 = :::::: The code@line 191 was first introduced by commit :::::: d03a149ef0a8e6180c7c086fc189dedb7ecb8af5 mt6625l: add driver folder = from 5.14 :::::: TO: Frank Wunderlich :::::: CC: Frank Wunderlich --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0283462550350811276==--