Hi Sudeep, Thanks for the feedback. I replied inline >-----Original Message----- >From: Sudeep Holla <sudeep.holla@xxxxxxx> >Sent: Wednesday, October 7, 2020 6:11 PM >To: Michal Simek <michal.simek@xxxxxxxxxx> >Cc: Zulkifli, Muhammad Husaini <muhammad.husaini.zulkifli@xxxxxxxxx>; >Hunter, Adrian <adrian.hunter@xxxxxxxxx>; Sudeep Holla ><sudeep.holla@xxxxxxx>; ulf.hansson@xxxxxxxxxx; linux- >mmc@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- >kernel@xxxxxxxxxxxxxxx; Raja Subramanian, Lakshmi Bai ><lakshmi.bai.raja.subramanian@xxxxxxxxx>; Wan Mohamad, Wan Ahmad >Zainie <wan.ahmad.zainie.wan.mohamad@xxxxxxxxx>; arnd@xxxxxxxx >Subject: Re: [PATCH v3 2/2] firmware: Keem Bay: Add support for Arm Trusted >Firmware Service call > >On Wed, Oct 07, 2020 at 10:20:21AM +0200, Michal Simek wrote: >> Hi, >> >> 1. Keem Bay: in subject is wrong. Tools are working with it and you >> should just use keembay: instead. >> >> 2. This should come first before actual change to keep the tree bisectable. >> >> On 06. 10. 20 17:55, muhammad.husaini.zulkifli@xxxxxxxxx wrote: >> > From: Muhammad Husaini Zulkifli >> > <muhammad.husaini.zulkifli@xxxxxxxxx> >> > >> > Add header file to handle API function for device driver to >> > communicate with Arm Trusted Firmware. >> > >> > Signed-off-by: Muhammad Husaini Zulkifli >> > <muhammad.husaini.zulkifli@xxxxxxxxx> >> > --- >> > .../linux/firmware/intel/keembay_firmware.h | 46 +++++++++++++++++++ >> > 1 file changed, 46 insertions(+) >> > create mode 100644 include/linux/firmware/intel/keembay_firmware.h >> > >> > diff --git a/include/linux/firmware/intel/keembay_firmware.h >> > b/include/linux/firmware/intel/keembay_firmware.h >> > new file mode 100644 >> > index 000000000000..9adb8c87b788 >> > --- /dev/null >> > +++ b/include/linux/firmware/intel/keembay_firmware.h >> > @@ -0,0 +1,46 @@ >> > +/* SPDX-License-Identifier: GPL-2.0 */ >> > +/* >> > + * Intel Keembay SOC Firmware API Layer >> > + * >> > + * Copyright (C) 2020-2021, Intel Corporation >> > + * >> > + * Muhammad Husaini Zulkifli <Muhammad.Husaini.Zulkifli@xxxxxxxxx> >> > + */ >> > + >> > +#ifndef __FIRMWARE_KEEMBAY_SMC_H__ >> > +#define __FIRMWARE_KEEMBAY_SMC_H__ >> > + >> > +#include <linux/arm-smccc.h> >> > + >> > +/** >> >> This is not a kernel doc comment. Just use /* >> >> > + * This file defines API function that can be called by device >> > + driver in order to >> > + * communicate with Arm Trusted Firmware. >> > + */ >> > + >> > +/* Setting for Keem Bay IO Pad Line Voltage Selection */ >> > +#define KEEMBAY_SET_SD_VOLTAGE_FUNC_ID 0x8200ff26 >> >> Sudeep: Don't we have any macros for composing these IDs? >> nit: IMHO composing these IDs from macros would make more sense to me. >> > >Yes we do. Refer include/linux/arm-smccc.h I expect something like below, >which also indicated you are using wrong OWNER space. You can't be 0 which is >reserved for CPU ARCH. You need to be SIP(0x2) > >#define ARM_SMCCC_SIP_KEEMBAY_SET_SD_VOLTAGE \ > ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ > ARM_SMCCC_SMC_32, \ > ARM_SMCCC_OWNER_SIP, \ > 0xFF26) > > >-- Testing with below func and definition. It is working . #define ARM_SMCCC_SIP_KEEMBAY_SET_SD_VOLTAGE \ ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ ARM_SMCCC_SMC_32, \ ARM_SMCCC_OWNER_SIP, \ 0xFF26) int keembay_sd_voltage_selection(int volt) { struct arm_smccc_res res; arm_smccc_1_1_invoke(ARM_SMCCC_SIP_KEEMBAY_SET_SD_VOLTAGE, volt, &res); if ((int)res.a0 < 0) return -EINVAL; return 0; } >Regards, >Sudeep