On Mon, Oct 05, 2020 at 05:04:10PM +0000, Zulkifli, Muhammad Husaini wrote: > To be clarify keembay_sd_voltage_selection function as Michal's prefers is > actually using the firmware driver. This function located in firmware > driver. OK, it can be just one function place it in any file you think is more appropriate need not be arasan controller driver. Any reasons why this can't work ? Can even be in some header. int keembay_sd_voltage_selection(int volt) { int res; arm_smccc_1_1_invoke(KEEMBAY_SET_SD_VOLTAGE_FUNC_ID, volt, &res) /* appropriate error check if needed here */ return res; } > I will call this func during voltage switching from arasan controller. I > believe this implementation require DT to specify the compatible name and > method use either smc/hvc. No, use the standard one as detected by arm_smccc_1_1_invoke (It calls arm_smccc_get_conduit internally and use SMC/HVC based on that) > > Are you saying that by using simple smcc based function library I should > call below func() in arasan controller. For example > 1) arm_smccc_get_version(void) > 2) arm_smccc_version_init(arm_smccc_get_version(), SMCCC_CONDUIT_SMC); Nope > 3) arm_smccc_1_1_invoke(KEEMBAY_SET_SD_VOLTAGE_FUNC_ID, voltage_value , &res); Just this. -- Regards, Sudeep