All of lore.kernel.org
 help / color / mirror / Atom feed
From: muhammad.husaini.zulkifli@intel.com
To: ulf.hansson@linaro.org, adrian.hunter@intel.com,
	michal.simek@xilinx.com, linux-mmc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: andriy.shevchenko@intel.com,
	lakshmi.bai.raja.subramanian@intel.com,
	wan.ahmad.zainie.wan.mohamad@intel.com,
	muhammad.husaini.zulkifli@intel.com, mgross@linux.intel.com
Subject: [PATCH v6 2/4] firmware: keembay: Add support for Trusted Firmware Service call
Date: Wed,  2 Dec 2020 23:02:02 +0800	[thread overview]
Message-ID: <20201202150205.20150-3-muhammad.husaini.zulkifli@intel.com> (raw)
In-Reply-To: <20201202150205.20150-1-muhammad.husaini.zulkifli@intel.com>

From: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>

Export inline function to encapsulate AON_CFG1 for controling the
I/O Rail supplied voltage levels which communicate with Trusted Firmware.

Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
---
 include/linux/firmware/intel/keembay.h | 54 ++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 include/linux/firmware/intel/keembay.h

diff --git a/include/linux/firmware/intel/keembay.h b/include/linux/firmware/intel/keembay.h
new file mode 100644
index 000000000000..b5e3e490807e
--- /dev/null
+++ b/include/linux/firmware/intel/keembay.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ *  Intel Keembay SOC Firmware API Layer
+ *
+ *  Copyright (C) 2020, Intel Corporation
+ *
+ *  Author: Muhammad Husaini Zulkifli <Muhammad.Husaini.Zulkifli@intel.com>
+ */
+
+#ifndef __FIRMWARE_KEEMBAY_SMC_H__
+#define __FIRMWARE_KEEMBAY_SMC_H__
+
+#include <linux/arm-smccc.h>
+
+/*
+ * This file defines an API function that can be called by a device driver in order to
+ * communicate with Trusted Firmware - A profile(TF-A) or Trusted Firmware - M profile (TF-M).
+ */
+
+#define KEEMBAY_SET_1V8_IO_RAIL	1
+#define KEEMBAY_SET_3V3_IO_RAIL	0
+
+#define IOV_1V8			1800000
+#define IOV_3V3			3300000
+
+#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)
+
+#if IS_ENABLED(CONFIG_HAVE_ARM_SMCCC_DISCOVERY)
+/*
+ * Voltage applied on the IO Rail is controlled from the Always On Register using specific
+ * bits in AON_CGF1 register. This is a secure register. Keem Bay SOC cannot exposed this
+ * register address to the outside world.
+ */
+static inline int keembay_io_rail_supplied_voltage(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;
+}
+#else
+static inline int keembay_io_rail_supplied_voltage(int volt)
+{
+	return -ENODEV;
+}
+#endif
+#endif /* __FIRMWARE_KEEMBAY_SMC_H__ */
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: muhammad.husaini.zulkifli@intel.com
To: ulf.hansson@linaro.org, adrian.hunter@intel.com,
	michal.simek@xilinx.com, linux-mmc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: lakshmi.bai.raja.subramanian@intel.com,
	muhammad.husaini.zulkifli@intel.com, mgross@linux.intel.com,
	andriy.shevchenko@intel.com,
	wan.ahmad.zainie.wan.mohamad@intel.com
Subject: [PATCH v6 2/4] firmware: keembay: Add support for Trusted Firmware Service call
Date: Wed,  2 Dec 2020 23:02:02 +0800	[thread overview]
Message-ID: <20201202150205.20150-3-muhammad.husaini.zulkifli@intel.com> (raw)
In-Reply-To: <20201202150205.20150-1-muhammad.husaini.zulkifli@intel.com>

From: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>

Export inline function to encapsulate AON_CFG1 for controling the
I/O Rail supplied voltage levels which communicate with Trusted Firmware.

Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
---
 include/linux/firmware/intel/keembay.h | 54 ++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 include/linux/firmware/intel/keembay.h

diff --git a/include/linux/firmware/intel/keembay.h b/include/linux/firmware/intel/keembay.h
new file mode 100644
index 000000000000..b5e3e490807e
--- /dev/null
+++ b/include/linux/firmware/intel/keembay.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ *  Intel Keembay SOC Firmware API Layer
+ *
+ *  Copyright (C) 2020, Intel Corporation
+ *
+ *  Author: Muhammad Husaini Zulkifli <Muhammad.Husaini.Zulkifli@intel.com>
+ */
+
+#ifndef __FIRMWARE_KEEMBAY_SMC_H__
+#define __FIRMWARE_KEEMBAY_SMC_H__
+
+#include <linux/arm-smccc.h>
+
+/*
+ * This file defines an API function that can be called by a device driver in order to
+ * communicate with Trusted Firmware - A profile(TF-A) or Trusted Firmware - M profile (TF-M).
+ */
+
+#define KEEMBAY_SET_1V8_IO_RAIL	1
+#define KEEMBAY_SET_3V3_IO_RAIL	0
+
+#define IOV_1V8			1800000
+#define IOV_3V3			3300000
+
+#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)
+
+#if IS_ENABLED(CONFIG_HAVE_ARM_SMCCC_DISCOVERY)
+/*
+ * Voltage applied on the IO Rail is controlled from the Always On Register using specific
+ * bits in AON_CGF1 register. This is a secure register. Keem Bay SOC cannot exposed this
+ * register address to the outside world.
+ */
+static inline int keembay_io_rail_supplied_voltage(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;
+}
+#else
+static inline int keembay_io_rail_supplied_voltage(int volt)
+{
+	return -ENODEV;
+}
+#endif
+#endif /* __FIRMWARE_KEEMBAY_SMC_H__ */
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-12-02  7:03 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 15:02 [PATCH v6 0/4] mmc: sdhci-of-arasan: Enable UHS-1 support for Keem Bay SOC muhammad.husaini.zulkifli
2020-12-02 15:02 ` muhammad.husaini.zulkifli
2020-12-02 10:53 ` Ulf Hansson
2020-12-02 10:53   ` Ulf Hansson
2020-12-02 12:25   ` Shevchenko, Andriy
2020-12-02 12:25     ` Shevchenko, Andriy
2020-12-02 12:41     ` Ulf Hansson
2020-12-02 12:41       ` Ulf Hansson
2020-12-02 13:10       ` Andy Shevchenko
2020-12-02 13:10         ` Andy Shevchenko
2020-12-02 14:10         ` Ulf Hansson
2020-12-02 14:10           ` Ulf Hansson
2020-12-02 14:34           ` Andy Shevchenko
2020-12-02 14:34             ` Andy Shevchenko
2020-12-02 14:38             ` Zulkifli, Muhammad Husaini
2020-12-02 14:38               ` Zulkifli, Muhammad Husaini
2020-12-02 15:02 ` [PATCH v6 1/4] mmc: sdhci-of-arasan: Add structure device pointer in probe func muhammad.husaini.zulkifli
2020-12-02 15:02   ` muhammad.husaini.zulkifli
2020-12-02 15:02 ` muhammad.husaini.zulkifli [this message]
2020-12-02 15:02   ` [PATCH v6 2/4] firmware: keembay: Add support for Trusted Firmware Service call muhammad.husaini.zulkifli
2020-12-02 15:02 ` [PATCH v6 3/4] dt-bindings: mmc: Add phys, vmmc and vqmmc supplies for Keem Bay SOC muhammad.husaini.zulkifli
2020-12-02 15:02   ` muhammad.husaini.zulkifli
2020-12-02 15:02 ` [PATCH v6 4/4] mmc: sdhci-of-arasan: Enable UHS-1 support " muhammad.husaini.zulkifli
2020-12-02 15:02   ` muhammad.husaini.zulkifli
2020-12-02 18:54   ` Linus Walleij
2020-12-02 18:54     ` Linus Walleij
2020-12-03  7:10     ` Zulkifli, Muhammad Husaini
2020-12-03  7:10       ` Zulkifli, Muhammad Husaini
2020-12-03  8:12       ` Shevchenko, Andriy
2020-12-03  8:12         ` Shevchenko, Andriy
2020-12-05 23:01       ` Linus Walleij
2020-12-05 23:01         ` Linus Walleij
2020-12-12 14:06         ` Zulkifli, Muhammad Husaini
2020-12-12 14:06           ` Zulkifli, Muhammad Husaini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201202150205.20150-3-muhammad.husaini.zulkifli@intel.com \
    --to=muhammad.husaini.zulkifli@intel.com \
    --cc=adrian.hunter@intel.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=lakshmi.bai.raja.subramanian@intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=mgross@linux.intel.com \
    --cc=michal.simek@xilinx.com \
    --cc=ulf.hansson@linaro.org \
    --cc=wan.ahmad.zainie.wan.mohamad@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.