You've already forked meta-qcom-extras
mirror of
https://github.com/linux-msm/meta-qcom-extras.git
synced 2026-02-25 13:14:43 -08:00
Merge pull request #541 from adhudase/qcm6490_rb3
linux-yocto: add support for QCM6490 RB3 board
This commit is contained in:
@@ -6,6 +6,8 @@ MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth ext2"
|
||||
# UFS partitions in 820/845/RB5 setup with 4096 logical sector size
|
||||
EXTRA_IMAGECMD:ext4 += " -b 4096 "
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
|
||||
# Support for dragonboard{410, 820, 845}c, rb5
|
||||
KERNEL_IMAGETYPE ?= "Image.gz"
|
||||
SERIAL_CONSOLE ?= "115200 ttyMSM0"
|
||||
@@ -20,6 +22,9 @@ KERNEL_DEVICETREE ?= " \
|
||||
qcom/sm8450-hdk.dtb \
|
||||
"
|
||||
|
||||
KERNEL_DEVICETREE:append:pn-linux-yocto += "qcom/qcm6490-idp.dtb"
|
||||
KERNEL_DEVICETREE:append:pn-linux-yocto += "qcom/qcm6490-rb3.dtb"
|
||||
|
||||
QCOM_BOOTIMG_PAGE_SIZE[apq8016-sbc] ?= "2048"
|
||||
QCOM_BOOTIMG_ROOTFS ?= "/dev/sda1"
|
||||
QCOM_BOOTIMG_ROOTFS[apq8016-sbc] ?= "/dev/mmcblk0p14"
|
||||
|
||||
@@ -5,6 +5,7 @@ kconf hardware qcom.cfg
|
||||
include qcom-msm8916.scc
|
||||
include qcom-msm8996.scc
|
||||
include qcom-qcm2290.scc
|
||||
include qcom-qcm6490.scc
|
||||
include qcom-sdm845.scc
|
||||
include qcom-sm6115.scc
|
||||
include qcom-sm8250.scc
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_PINCTRL_SC7280=y
|
||||
CONFIG_PINCTRL_SC7280_LPASS_LPI=m
|
||||
CONFIG_SND_SOC_SC7280=m
|
||||
CONFIG_INTERCONNECT_QCOM_SC7280=y
|
||||
|
||||
CONFIG_SC_CAMCC_7280=m
|
||||
CONFIG_SC_DISPCC_7280=y
|
||||
CONFIG_SC_GCC_7280=y
|
||||
CONFIG_SC_GPUCC_7280=y
|
||||
CONFIG_SC_LPASS_CORECC_7280=m
|
||||
CONFIG_SC_VIDEOCC_7280=m
|
||||
|
||||
CONFIG_PHY_QCOM_USB_HS=y
|
||||
CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y
|
||||
CONFIG_USB_DWC3_QCOM=y
|
||||
CONFIG_PHY_QCOM_QMP_COMBO=y
|
||||
|
||||
CONFIG_QCOM_WDT=m
|
||||
@@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
kconf hardware qcom-rpmh.cfg
|
||||
kconf hardware qcom-qcm6490.cfg
|
||||
@@ -0,0 +1,145 @@
|
||||
From dd2c03120004f3bfed8b4f6500c33957b1bae807 Mon Sep 17 00:00:00 2001
|
||||
From: John Stultz <jstultz@google.com>
|
||||
Date: Mon, 11 Sep 2023 10:30:31 +0800
|
||||
Subject: [PATCH 1/2] FROMLIST: dma-heap: Add proper kref handling on dma-buf
|
||||
heaps
|
||||
|
||||
Add proper refcounting on the dma_heap structure.
|
||||
While existing heaps are built-in, we may eventually
|
||||
have heaps loaded from modules, and we'll need to be
|
||||
able to properly handle the references to the heaps
|
||||
|
||||
Also moves minor tracking into the heap structure so
|
||||
we can properly free things.
|
||||
|
||||
[Yong: Just add comment for "minor" and "refcount"]
|
||||
Signed-off-by: John Stultz <jstultz@google.com>
|
||||
Signed-off-by: T.J. Mercier <tjmercier@google.com>
|
||||
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
|
||||
Signed-off-by: Vijayanand Jitta <quic_vjitta@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/lkml/20230911023038.30649-3-yong.wu@mediatek.com/]
|
||||
---
|
||||
drivers/dma-buf/dma-heap.c | 38 ++++++++++++++++++++++++++++++++++----
|
||||
include/linux/dma-heap.h | 6 ++++++
|
||||
2 files changed, 40 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c
|
||||
index 84ae708fafe7..59328045975a 100644
|
||||
--- a/drivers/dma-buf/dma-heap.c
|
||||
+++ b/drivers/dma-buf/dma-heap.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/xarray.h>
|
||||
+#include <linux/kref.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/nospec.h>
|
||||
@@ -31,6 +32,8 @@
|
||||
* @heap_devt heap device node
|
||||
* @list list head connecting to list of heaps
|
||||
* @heap_cdev heap char device
|
||||
+ * @minor: heap device node minor number
|
||||
+ * @refcount: reference counter for this heap device
|
||||
*
|
||||
* Represents a heap of memory from which buffers can be made.
|
||||
*/
|
||||
@@ -41,6 +44,8 @@ struct dma_heap {
|
||||
dev_t heap_devt;
|
||||
struct list_head list;
|
||||
struct cdev heap_cdev;
|
||||
+ int minor;
|
||||
+ struct kref refcount;
|
||||
};
|
||||
|
||||
static LIST_HEAD(heap_list);
|
||||
@@ -220,7 +225,6 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
{
|
||||
struct dma_heap *heap, *h, *err_ret;
|
||||
struct device *dev_ret;
|
||||
- unsigned int minor;
|
||||
int ret;
|
||||
|
||||
if (!exp_info->name || !strcmp(exp_info->name, "")) {
|
||||
@@ -237,12 +241,13 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
if (!heap)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
+ kref_init(&heap->refcount);
|
||||
heap->name = exp_info->name;
|
||||
heap->ops = exp_info->ops;
|
||||
heap->priv = exp_info->priv;
|
||||
|
||||
/* Find unused minor number */
|
||||
- ret = xa_alloc(&dma_heap_minors, &minor, heap,
|
||||
+ ret = xa_alloc(&dma_heap_minors, &heap->minor, heap,
|
||||
XA_LIMIT(0, NUM_HEAP_MINORS - 1), GFP_KERNEL);
|
||||
if (ret < 0) {
|
||||
pr_err("dma_heap: Unable to get minor number for heap\n");
|
||||
@@ -251,7 +256,7 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
}
|
||||
|
||||
/* Create device */
|
||||
- heap->heap_devt = MKDEV(MAJOR(dma_heap_devt), minor);
|
||||
+ heap->heap_devt = MKDEV(MAJOR(dma_heap_devt), heap->minor);
|
||||
|
||||
cdev_init(&heap->heap_cdev, &dma_heap_fops);
|
||||
ret = cdev_add(&heap->heap_cdev, heap->heap_devt, 1);
|
||||
@@ -295,12 +300,37 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
err2:
|
||||
cdev_del(&heap->heap_cdev);
|
||||
err1:
|
||||
- xa_erase(&dma_heap_minors, minor);
|
||||
+ xa_erase(&dma_heap_minors, heap->minor);
|
||||
err0:
|
||||
kfree(heap);
|
||||
return err_ret;
|
||||
}
|
||||
|
||||
+static void dma_heap_release(struct kref *ref)
|
||||
+{
|
||||
+ struct dma_heap *heap = container_of(ref, struct dma_heap, refcount);
|
||||
+
|
||||
+ /* Note, we already holding the heap_list_lock here */
|
||||
+ list_del(&heap->list);
|
||||
+
|
||||
+ device_destroy(dma_heap_class, heap->heap_devt);
|
||||
+ cdev_del(&heap->heap_cdev);
|
||||
+ xa_erase(&dma_heap_minors, heap->minor);
|
||||
+
|
||||
+ kfree(heap);
|
||||
+}
|
||||
+
|
||||
+void dma_heap_put(struct dma_heap *h)
|
||||
+{
|
||||
+ /*
|
||||
+ * Take the heap_list_lock now to avoid racing with code
|
||||
+ * scanning the list and then taking a kref.
|
||||
+ */
|
||||
+ mutex_lock(&heap_list_lock);
|
||||
+ kref_put(&h->refcount, dma_heap_release);
|
||||
+ mutex_unlock(&heap_list_lock);
|
||||
+}
|
||||
+
|
||||
static char *dma_heap_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
return kasprintf(GFP_KERNEL, "dma_heap/%s", dev_name(dev));
|
||||
diff --git a/include/linux/dma-heap.h b/include/linux/dma-heap.h
|
||||
index 0c05561cad6e..f8c986dd9a8b 100644
|
||||
--- a/include/linux/dma-heap.h
|
||||
+++ b/include/linux/dma-heap.h
|
||||
@@ -65,4 +65,10 @@ const char *dma_heap_get_name(struct dma_heap *heap);
|
||||
*/
|
||||
struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
|
||||
|
||||
+/**
|
||||
+ * dma_heap_put - drops a reference to a dmabuf heap, potentially freeing it
|
||||
+ * @heap: the heap whose reference count to decrement
|
||||
+ */
|
||||
+void dma_heap_put(struct dma_heap *heap);
|
||||
+
|
||||
#endif /* _DMA_HEAPS_H */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
From fd0d8a09c8d928459d37ae535825018bb0594357 Mon Sep 17 00:00:00 2001
|
||||
From: John Stultz <jstultz@google.com>
|
||||
Date: Mon, 11 Sep 2023 10:30:32 +0800
|
||||
Subject: [PATCH 2/2] FROMLIST: dma-heap: Provide accessors so that in-kernel
|
||||
drivers can allocate dmabufs from specific heaps
|
||||
|
||||
This allows drivers who don't want to create their own
|
||||
DMA-BUF exporter to be able to allocate DMA-BUFs directly
|
||||
from existing DMA-BUF Heaps.
|
||||
|
||||
There is some concern that the premise of DMA-BUF heaps is
|
||||
that userland knows better about what type of heap memory
|
||||
is needed for a pipeline, so it would likely be best for
|
||||
drivers to import and fill DMA-BUFs allocated by userland
|
||||
instead of allocating one themselves, but this is still
|
||||
up for debate.
|
||||
|
||||
[Yong: Fix the checkpatch alignment warning]
|
||||
Signed-off-by: John Stultz <jstultz@google.com>
|
||||
Signed-off-by: T.J. Mercier <tjmercier@google.com>
|
||||
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
|
||||
Signed-off-by: Vijayanand Jitta <quic_vjitta@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/lkml/20230911023038.30649-4-yong.wu@mediatek.com/]
|
||||
---
|
||||
drivers/dma-buf/dma-heap.c | 60 ++++++++++++++++++++++++++++----------
|
||||
include/linux/dma-heap.h | 25 ++++++++++++++++
|
||||
2 files changed, 69 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c
|
||||
index 59328045975a..e17705427b23 100644
|
||||
--- a/drivers/dma-buf/dma-heap.c
|
||||
+++ b/drivers/dma-buf/dma-heap.c
|
||||
@@ -54,12 +54,15 @@ static dev_t dma_heap_devt;
|
||||
static struct class *dma_heap_class;
|
||||
static DEFINE_XARRAY_ALLOC(dma_heap_minors);
|
||||
|
||||
-static int dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
|
||||
- unsigned int fd_flags,
|
||||
- unsigned int heap_flags)
|
||||
+struct dma_buf *dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
|
||||
+ unsigned int fd_flags,
|
||||
+ unsigned int heap_flags)
|
||||
{
|
||||
- struct dma_buf *dmabuf;
|
||||
- int fd;
|
||||
+ if (fd_flags & ~DMA_HEAP_VALID_FD_FLAGS)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
+
|
||||
+ if (heap_flags & ~DMA_HEAP_VALID_HEAP_FLAGS)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
|
||||
/*
|
||||
* Allocations from all heaps have to begin
|
||||
@@ -67,9 +70,20 @@ static int dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
|
||||
*/
|
||||
len = PAGE_ALIGN(len);
|
||||
if (!len)
|
||||
- return -EINVAL;
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
|
||||
- dmabuf = heap->ops->allocate(heap, len, fd_flags, heap_flags);
|
||||
+ return heap->ops->allocate(heap, len, fd_flags, heap_flags);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(dma_heap_buffer_alloc);
|
||||
+
|
||||
+static int dma_heap_bufferfd_alloc(struct dma_heap *heap, size_t len,
|
||||
+ unsigned int fd_flags,
|
||||
+ unsigned int heap_flags)
|
||||
+{
|
||||
+ struct dma_buf *dmabuf;
|
||||
+ int fd;
|
||||
+
|
||||
+ dmabuf = dma_heap_buffer_alloc(heap, len, fd_flags, heap_flags);
|
||||
if (IS_ERR(dmabuf))
|
||||
return PTR_ERR(dmabuf);
|
||||
|
||||
@@ -107,15 +121,9 @@ static long dma_heap_ioctl_allocate(struct file *file, void *data)
|
||||
if (heap_allocation->fd)
|
||||
return -EINVAL;
|
||||
|
||||
- if (heap_allocation->fd_flags & ~DMA_HEAP_VALID_FD_FLAGS)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- if (heap_allocation->heap_flags & ~DMA_HEAP_VALID_HEAP_FLAGS)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- fd = dma_heap_buffer_alloc(heap, heap_allocation->len,
|
||||
- heap_allocation->fd_flags,
|
||||
- heap_allocation->heap_flags);
|
||||
+ fd = dma_heap_bufferfd_alloc(heap, heap_allocation->len,
|
||||
+ heap_allocation->fd_flags,
|
||||
+ heap_allocation->heap_flags);
|
||||
if (fd < 0)
|
||||
return fd;
|
||||
|
||||
@@ -220,6 +228,7 @@ const char *dma_heap_get_name(struct dma_heap *heap)
|
||||
{
|
||||
return heap->name;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(dma_heap_get_name);
|
||||
|
||||
struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
{
|
||||
@@ -305,6 +314,24 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
kfree(heap);
|
||||
return err_ret;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(dma_heap_add);
|
||||
+
|
||||
+struct dma_heap *dma_heap_find(const char *name)
|
||||
+{
|
||||
+ struct dma_heap *h;
|
||||
+
|
||||
+ mutex_lock(&heap_list_lock);
|
||||
+ list_for_each_entry(h, &heap_list, list) {
|
||||
+ if (!strcmp(h->name, name)) {
|
||||
+ kref_get(&h->refcount);
|
||||
+ mutex_unlock(&heap_list_lock);
|
||||
+ return h;
|
||||
+ }
|
||||
+ }
|
||||
+ mutex_unlock(&heap_list_lock);
|
||||
+ return NULL;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(dma_heap_find);
|
||||
|
||||
static void dma_heap_release(struct kref *ref)
|
||||
{
|
||||
@@ -330,6 +357,7 @@ void dma_heap_put(struct dma_heap *h)
|
||||
kref_put(&h->refcount, dma_heap_release);
|
||||
mutex_unlock(&heap_list_lock);
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(dma_heap_put);
|
||||
|
||||
static char *dma_heap_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
diff --git a/include/linux/dma-heap.h b/include/linux/dma-heap.h
|
||||
index f8c986dd9a8b..31f44d83f11b 100644
|
||||
--- a/include/linux/dma-heap.h
|
||||
+++ b/include/linux/dma-heap.h
|
||||
@@ -65,10 +65,35 @@ const char *dma_heap_get_name(struct dma_heap *heap);
|
||||
*/
|
||||
struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
|
||||
|
||||
+/**
|
||||
+ * dma_heap_find - get the heap registered with the specified name
|
||||
+ * @name: Name of the DMA-Heap to find
|
||||
+ *
|
||||
+ * Returns:
|
||||
+ * The DMA-Heap with the provided name.
|
||||
+ *
|
||||
+ * NOTE: DMA-Heaps returned from this function MUST be released using
|
||||
+ * dma_heap_put() when the user is done to enable the heap to be unloaded.
|
||||
+ */
|
||||
+struct dma_heap *dma_heap_find(const char *name);
|
||||
+
|
||||
/**
|
||||
* dma_heap_put - drops a reference to a dmabuf heap, potentially freeing it
|
||||
* @heap: the heap whose reference count to decrement
|
||||
*/
|
||||
void dma_heap_put(struct dma_heap *heap);
|
||||
|
||||
+/**
|
||||
+ * dma_heap_buffer_alloc - Allocate dma-buf from a dma_heap
|
||||
+ * @heap: DMA-Heap to allocate from
|
||||
+ * @len: size to allocate in bytes
|
||||
+ * @fd_flags: flags to set on returned dma-buf fd
|
||||
+ * @heap_flags: flags to pass to the dma heap
|
||||
+ *
|
||||
+ * This is for internal dma-buf allocations only. Free returned buffers with dma_buf_put().
|
||||
+ */
|
||||
+struct dma_buf *dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
|
||||
+ unsigned int fd_flags,
|
||||
+ unsigned int heap_flags);
|
||||
+
|
||||
#endif /* _DMA_HEAPS_H */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 4cd742fb7632a39176bc2a2006e1cb1d01efe473 Mon Sep 17 00:00:00 2001
|
||||
From: Komal Bajaj <quic_kbajaj@quicinc.com>
|
||||
Date: Wed, 27 Sep 2023 10:53:52 +0530
|
||||
Subject: [PATCH] FROMLIST: dt-bindings: arm: qcom: Add QCM6490 IDP board
|
||||
|
||||
Document the qcom,qcm6490-idp board based off qcm6490 SoC.
|
||||
|
||||
Signed-off-by: Komal Bajaj <quic_kbajaj@quicinc.com>
|
||||
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Signed-off-by: Salendarsingh Gaud <quic_sgaud@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-arm-msm/20231003175456.14774-2-quic_kbajaj@quicinc.com/]
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
index 5d2cbddb6ab8..fcc301d8c4b5 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
@@ -386,6 +386,7 @@ properties:
|
||||
- items:
|
||||
- enum:
|
||||
- fairphone,fp5
|
||||
+ - qcom,qcm6490-idp
|
||||
- const: qcom,qcm6490
|
||||
|
||||
- description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From 4aed09eb7fca388f4ebf0dbd7b732a70cac6f6c6 Mon Sep 17 00:00:00 2001
|
||||
From: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Date: Tue, 17 Oct 2023 23:46:10 +0530
|
||||
Subject: [PATCH 1/2] PENDING: arm64: dts: qcom: qcm6490: Add UFS nodes for IDP
|
||||
|
||||
Add UFS host controller and Phy nodes for Qualcomm
|
||||
qcm6490 IDP Board.
|
||||
|
||||
Change-Id: If756cf2396ad0d82e7c607738068a634c5a1919a
|
||||
Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Salendarsingh Gaud <quic_sgaud@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
|
||||
index 9b1bf7d1c98d..7d609317af82 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
|
||||
+++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
|
||||
@@ -303,6 +303,25 @@ &uart5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&ufs_mem_hc {
|
||||
+ reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
|
||||
+ vcc-supply = <&vreg_l7b_2p9>;
|
||||
+ vcc-max-microamp = <800000>;
|
||||
+ vccq-supply = <&vreg_l9b_1p2>;
|
||||
+ vccq-max-microamp = <900000>;
|
||||
+ vccq2-supply = <&vreg_l9b_1p2>;
|
||||
+ vccq2-max-microamp = <900000>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ufs_mem_phy {
|
||||
+ vdda-phy-supply = <&vreg_l10c_0p8>;
|
||||
+ vdda-pll-supply = <&vreg_l6b_1p2>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&usb_1 {
|
||||
status = "okay";
|
||||
};
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From a0fc2104e8484205228819b1aa498fbd51c86ba0 Mon Sep 17 00:00:00 2001
|
||||
From: Naina Mehta <quic_nainmeht@quicinc.com>
|
||||
Date: Tue, 17 Oct 2023 13:29:51 +0530
|
||||
Subject: [PATCH 1/2] PENDING: dt-bindings: arm: qcom: Add QCM6490 RB3 board
|
||||
|
||||
Document the qcom,qcm6490-rb3 board based off qcm6490 SoC.
|
||||
|
||||
Signed-off-by: Naina Mehta <quic_nainmeht@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
index fcc301d8c4b5..6481bd03b0de 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
@@ -387,6 +387,7 @@ properties:
|
||||
- enum:
|
||||
- fairphone,fp5
|
||||
- qcom,qcm6490-idp
|
||||
+ - qcom,qcm6490-rb3
|
||||
- const: qcom,qcm6490
|
||||
|
||||
- description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
From d92bdf898e27e77de384cf1fa13793b62b9cd95a Mon Sep 17 00:00:00 2001
|
||||
From: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Date: Wed, 1 Nov 2023 11:58:28 +0530
|
||||
Subject: [PATCH 2/2] PENDING: arm64: dts: qcom: Add UFS nodes for qcm6490-rb3
|
||||
|
||||
Add UFS host controller and Phy nodes for Qualcomm
|
||||
qcm6490-rb3 Board.
|
||||
|
||||
Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/qcm6490-rb3.dts | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
index ddc286157b8f..47ea7d3b5f51 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
+++ b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
@@ -292,6 +292,25 @@ &uart5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&ufs_mem_hc {
|
||||
+ reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
|
||||
+ vcc-supply = <&vreg_l7b_2p952>;
|
||||
+ vcc-max-microamp = <800000>;
|
||||
+ vccq-supply = <&vreg_l9b_1p2>;
|
||||
+ vccq-max-microamp = <900000>;
|
||||
+ vccq2-supply = <&vreg_l9b_1p2>;
|
||||
+ vccq2-max-microamp = <900000>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ufs_mem_phy {
|
||||
+ vdda-phy-supply = <&vreg_l10c_0p88>;
|
||||
+ vdda-pll-supply = <&vreg_l6b_1p2>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&usb_1 {
|
||||
status = "okay";
|
||||
};
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,353 @@
|
||||
From 95a6f8a80e901dc1fe35793e51d761ea05eae90d Mon Sep 17 00:00:00 2001
|
||||
From: Naina Mehta <quic_nainmeht@quicinc.com>
|
||||
Date: Tue, 17 Oct 2023 18:59:20 +0530
|
||||
Subject: [PATCH 2/2] PENDING: arm64: dts: qcom: Add qcm6490 rb3 support
|
||||
|
||||
Add device tree file for rb3 board for qcm6490 SoC.
|
||||
|
||||
Signed-off-by: Naina Mehta <quic_nainmeht@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/Makefile | 1 +
|
||||
arch/arm64/boot/dts/qcom/qcm6490-rb3.dts | 316 +++++++++++++++++++++++
|
||||
2 files changed, 317 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
|
||||
index f597224e3dcb..c21079c18bb4 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/Makefile
|
||||
+++ b/arch/arm64/boot/dts/qcom/Makefile
|
||||
@@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-maple.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += msm8998-xiaomi-sagit.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
|
||||
+dtb-$(CONFIG_ARCH_QCOM) += qcm6490-rb3.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
|
||||
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
new file mode 100644
|
||||
index 000000000000..ddc286157b8f
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts
|
||||
@@ -0,0 +1,316 @@
|
||||
+// SPDX-License-Identifier: BSD-3-Clause
|
||||
+/*
|
||||
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+/* PM7250B is configured to use SID8/9 */
|
||||
+#define PM7250B_SID 8
|
||||
+#define PM7250B_SID1 9
|
||||
+
|
||||
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
|
||||
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
|
||||
+#include "qcm6490.dtsi"
|
||||
+#include "pm7250b.dtsi"
|
||||
+#include "pm7325.dtsi"
|
||||
+#include "pm8350c.dtsi"
|
||||
+#include "pmk8350.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Qualcomm Robotics RB3 Gen2";
|
||||
+ compatible = "qcom,qcm6490-rb3", "qcom,qcm6490";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart5;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&apps_rsc {
|
||||
+ regulators-0 {
|
||||
+ compatible = "qcom,pm7325-rpmh-regulators";
|
||||
+ qcom,pmic-id = "b";
|
||||
+
|
||||
+ vreg_s1b_1p872: smps1 {
|
||||
+ regulator-min-microvolt = <1840000>;
|
||||
+ regulator-max-microvolt = <2040000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s2b_0p876: smps2 {
|
||||
+ regulator-min-microvolt = <570070>;
|
||||
+ regulator-max-microvolt = <1050000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s7b_0p972: smps7 {
|
||||
+ regulator-min-microvolt = <535000>;
|
||||
+ regulator-max-microvolt = <1120000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s8b_1p272: smps8 {
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1500000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l1b_0p912: ldo1 {
|
||||
+ regulator-min-microvolt = <825000>;
|
||||
+ regulator-max-microvolt = <925000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l2b_3p072: ldo2 {
|
||||
+ regulator-min-microvolt = <2700000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l3b_0p504: ldo3 {
|
||||
+ regulator-min-microvolt = <312000>;
|
||||
+ regulator-max-microvolt = <910000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l4b_0p752: ldo4 {
|
||||
+ regulator-min-microvolt = <752000>;
|
||||
+ regulator-max-microvolt = <820000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l5b_0p752: ldo5 {
|
||||
+ regulator-min-microvolt = <552000>;
|
||||
+ regulator-max-microvolt = <832000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l6b_1p2: ldo6 {
|
||||
+ regulator-min-microvolt = <1140000>;
|
||||
+ regulator-max-microvolt = <1260000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l7b_2p952: ldo7 {
|
||||
+ regulator-min-microvolt = <2400000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l8b_0p904: ldo8 {
|
||||
+ regulator-min-microvolt = <870000>;
|
||||
+ regulator-max-microvolt = <970000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l9b_1p2: ldo9 {
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1304000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l11b_1p504: ldo11 {
|
||||
+ regulator-min-microvolt = <1504000>;
|
||||
+ regulator-max-microvolt = <2000000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l12b_0p751: ldo12 {
|
||||
+ regulator-min-microvolt = <751000>;
|
||||
+ regulator-max-microvolt = <824000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l13b_0p53: ldo13 {
|
||||
+ regulator-min-microvolt = <530000>;
|
||||
+ regulator-max-microvolt = <824000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l14b_1p08: ldo14 {
|
||||
+ regulator-min-microvolt = <1080000>;
|
||||
+ regulator-max-microvolt = <1304000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l15b_0p765: ldo15 {
|
||||
+ regulator-min-microvolt = <765000>;
|
||||
+ regulator-max-microvolt = <1020000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l16b_1p1: ldo16 {
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l17b_1p7: ldo17 {
|
||||
+ regulator-min-microvolt = <1700000>;
|
||||
+ regulator-max-microvolt = <1900000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l18b_1p8: ldo18 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <2000000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l19b_1p8: ldo19 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <2000000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ regulators-1 {
|
||||
+ compatible = "qcom,pm8350c-rpmh-regulators";
|
||||
+ qcom,pmic-id = "c";
|
||||
+
|
||||
+ vreg_s1c_2p19: smps1 {
|
||||
+ regulator-min-microvolt = <2190000>;
|
||||
+ regulator-max-microvolt = <2210000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s2c_0p752: smps2 {
|
||||
+ regulator-min-microvolt = <750000>;
|
||||
+ regulator-max-microvolt = <800000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s5c_0p752: smps5 {
|
||||
+ regulator-min-microvolt = <465000>;
|
||||
+ regulator-max-microvolt = <1050000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s7c_0p752: smps7 {
|
||||
+ regulator-min-microvolt = <465000>;
|
||||
+ regulator-max-microvolt = <800000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s9c_1p084: smps9 {
|
||||
+ regulator-min-microvolt = <1010000>;
|
||||
+ regulator-max-microvolt = <1170000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_s10c_0p752:smps10 {
|
||||
+ regulator-min-microvolt = <752000>;
|
||||
+ regulator-max-microvolt = <800000>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l1c_1p8: ldo1 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1980000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l2c_1p62: ldo2 {
|
||||
+ regulator-min-microvolt = <1620000>;
|
||||
+ regulator-max-microvolt = <1980000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l3c_2p8: ldo3 {
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <3540000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l4c_1p62: ldo4 {
|
||||
+ regulator-min-microvolt = <1620000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l5c_1p62: ldo5 {
|
||||
+ regulator-min-microvolt = <1620000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l6c_2p96: ldo6 {
|
||||
+ regulator-min-microvolt = <1650000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l7c_3p0: ldo7 {
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l8c_1p62: ldo8 {
|
||||
+ regulator-min-microvolt = <1620000>;
|
||||
+ regulator-max-microvolt = <2000000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l9c_2p96: ldo9 {
|
||||
+ regulator-min-microvolt = <2700000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l10c_0p88:ldo10 {
|
||||
+ regulator-min-microvolt = <720000>;
|
||||
+ regulator-max-microvolt = <1050000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l11c_2p8: ldo11 {
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l12c_1p65: ldo12 {
|
||||
+ regulator-min-microvolt = <1650000>;
|
||||
+ regulator-max-microvolt = <2000000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_l13c_2p7: ldo13 {
|
||||
+ regulator-min-microvolt = <2700000>;
|
||||
+ regulator-max-microvolt = <3544000>;
|
||||
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
+ };
|
||||
+
|
||||
+ vreg_bob_3p296: bob {
|
||||
+ regulator-min-microvolt = <3008000>;
|
||||
+ regulator-max-microvolt = <3960000>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&qupv3_id_0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart5 {
|
||||
+ compatible = "qcom,geni-debug-uart";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_1_dwc3 {
|
||||
+ dr_mode = "peripheral";
|
||||
+};
|
||||
+
|
||||
+&usb_1_hsphy {
|
||||
+ vdda-pll-supply = <&vreg_l10c_0p88>;
|
||||
+ vdda18-supply = <&vreg_l1c_1p8>;
|
||||
+ vdda33-supply = <&vreg_l2b_3p072>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_1_qmpphy {
|
||||
+ vdda-phy-supply = <&vreg_l6b_1p2>;
|
||||
+ vdda-pll-supply = <&vreg_l1b_0p912>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+};
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
From 801864e94d84f552d78e934bfe706183d7cc6901 Mon Sep 17 00:00:00 2001
|
||||
From: Nitin Rawat <quic_nitirawa@quicinc.com>
|
||||
Date: Tue, 19 Sep 2023 02:20:37 +0530
|
||||
Subject: [PATCH] FROMGIT: phy: qcom-qmp-ufs: Add Phy Configuration support for
|
||||
SC7280
|
||||
|
||||
Add SC7280 specific register layout and table configs.
|
||||
|
||||
Co-developed-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
|
||||
Signed-off-by: Salendarsingh Gaud <quic_sgaud@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 8abe9792d1ff7e60f911b56e8a2537be7e903576]
|
||||
---
|
||||
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 142 ++++++++++++++++++++++++
|
||||
1 file changed, 142 insertions(+)
|
||||
|
||||
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
|
||||
index 8c877b668bb9..0aca2abd77d3 100644
|
||||
--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
|
||||
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
|
||||
@@ -178,6 +178,111 @@ static const struct qmp_phy_init_tbl msm8996_ufsphy_rx[] = {
|
||||
QMP_PHY_INIT_CFG(QSERDES_RX_RX_EQU_ADAPTOR_CNTRL2, 0x0E),
|
||||
};
|
||||
|
||||
+static const struct qmp_phy_init_tbl sc7280_ufsphy_tx[] = {
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_PWM_GEAR_1_DIVIDER_BAND0_1, 0x06),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_PWM_GEAR_2_DIVIDER_BAND0_1, 0x03),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_PWM_GEAR_3_DIVIDER_BAND0_1, 0x01),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_PWM_GEAR_4_DIVIDER_BAND0_1, 0x00),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_LANE_MODE_1, 0x35),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_TX_TRAN_DRVR_EMP_EN, 0x0c),
|
||||
+};
|
||||
+
|
||||
+static const struct qmp_phy_init_tbl sc7280_ufsphy_rx[] = {
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_LVL, 0x24),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_CNTRL, 0x0f),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_DEGLITCH_CNTRL, 0x1e),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_BAND, 0x18),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FASTLOCK_FO_GAIN, 0x0a),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_SO_SATURATION_AND_ENABLE, 0x5a),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_PI_CONTROLS, 0xf1),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FASTLOCK_COUNT_LOW, 0x80),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_PI_CTRL2, 0x80),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FO_GAIN, 0x0e),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_SO_GAIN, 0x04),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_TERM_BW, 0x1b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL2, 0x06),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL3, 0x04),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL4, 0x1d),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_OFFSET_ADAPTOR_CNTRL2, 0x00),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_MEASURE_TIME, 0x10),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_TSETTLE_LOW, 0xc0),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_TSETTLE_HIGH, 0x00),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_LOW, 0x6d),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH, 0x6d),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH2, 0xed),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH3, 0x3b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH4, 0x3c),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_LOW, 0xe0),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH2, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH3, 0x3b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH4, 0xb1),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_LOW, 0xe0),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH2, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH3, 0x3b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH4, 0xb1),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_DCC_CTRL1, 0x0c),
|
||||
+};
|
||||
+
|
||||
+static const struct qmp_phy_init_tbl sc7280_ufsphy_pcs[] = {
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_RX_SIGDET_CTRL2, 0x6d),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_LARGE_AMP_DRV_LVL, 0x0a),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_SMALL_AMP_DRV_LVL, 0x02),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_MID_TERM_CTRL1, 0x43),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_DEBUG_BUS_CLKSEL, 0x1f),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_RX_MIN_HIBERN8_TIME, 0xff),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_MULTI_LANE_CTRL1, 0x02),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_PLL_CNTL, 0x03),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TIMER_20US_CORECLK_STEPS_MSB, 0x16),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TIMER_20US_CORECLK_STEPS_LSB, 0xd8),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_PWM_GEAR_BAND, 0xaa),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_HS_GEAR_BAND, 0x06),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_TX_HSGEAR_CAPABILITY, 0x03),
|
||||
+ QMP_PHY_INIT_CFG(QPHY_V4_PCS_UFS_RX_HSGEAR_CAPABILITY, 0x03),
|
||||
+};
|
||||
+
|
||||
+static const struct qmp_phy_init_tbl sc7280_ufsphy_hs_g4_rx[] = {
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_LVL, 0x24),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_CNTRL, 0x0f),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_SIGDET_DEGLITCH_CNTRL, 0x1e),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_BAND, 0x18),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FASTLOCK_FO_GAIN, 0x0a),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_SO_SATURATION_AND_ENABLE, 0x5a),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_PI_CONTROLS, 0xf1),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FASTLOCK_COUNT_LOW, 0x80),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_PI_CTRL2, 0x81),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_FO_GAIN, 0x0e),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_UCDR_SO_GAIN, 0x04),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_TERM_BW, 0x6f),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL1, 0x04),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL2, 0x00),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL3, 0x09),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQU_ADAPTOR_CNTRL4, 0x07),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_EQ_OFFSET_ADAPTOR_CNTRL1, 0x17),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_OFFSET_ADAPTOR_CNTRL2, 0x00),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_MEASURE_TIME, 0x20),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_TSETTLE_LOW, 0x80),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_IDAC_TSETTLE_HIGH, 0x01),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_LOW, 0x3f),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH, 0xff),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH2, 0xff),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH3, 0x7f),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_00_HIGH4, 0x2c),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_LOW, 0x6d),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH, 0x6d),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH2, 0xed),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH3, 0x3b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_01_HIGH4, 0x3c),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_LOW, 0xe0),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH2, 0xc8),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH3, 0x3b),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_RX_MODE_10_HIGH4, 0xb1),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_DCC_CTRL1, 0x0c),
|
||||
+ QMP_PHY_INIT_CFG(QSERDES_V4_RX_GM_CAL, 0x0f),
|
||||
+};
|
||||
+
|
||||
static const struct qmp_phy_init_tbl sm6115_ufsphy_serdes[] = {
|
||||
QMP_PHY_INIT_CFG(QSERDES_COM_CMN_CONFIG, 0x0e),
|
||||
QMP_PHY_INIT_CFG(QSERDES_COM_SYSCLK_EN_SEL, 0x14),
|
||||
@@ -887,6 +992,40 @@ static const struct qmp_phy_cfg sa8775p_ufsphy_cfg = {
|
||||
.regs = ufsphy_v5_regs_layout,
|
||||
};
|
||||
|
||||
+static const struct qmp_phy_cfg sc7280_ufsphy_cfg = {
|
||||
+ .lanes = 2,
|
||||
+
|
||||
+ .offsets = &qmp_ufs_offsets,
|
||||
+
|
||||
+ .tbls = {
|
||||
+ .serdes = sm8150_ufsphy_serdes,
|
||||
+ .serdes_num = ARRAY_SIZE(sm8150_ufsphy_serdes),
|
||||
+ .tx = sc7280_ufsphy_tx,
|
||||
+ .tx_num = ARRAY_SIZE(sc7280_ufsphy_tx),
|
||||
+ .rx = sc7280_ufsphy_rx,
|
||||
+ .rx_num = ARRAY_SIZE(sc7280_ufsphy_rx),
|
||||
+ .pcs = sc7280_ufsphy_pcs,
|
||||
+ .pcs_num = ARRAY_SIZE(sc7280_ufsphy_pcs),
|
||||
+ },
|
||||
+ .tbls_hs_b = {
|
||||
+ .serdes = sm8150_ufsphy_hs_b_serdes,
|
||||
+ .serdes_num = ARRAY_SIZE(sm8150_ufsphy_hs_b_serdes),
|
||||
+ },
|
||||
+ .tbls_hs_g4 = {
|
||||
+ .tx = sm8250_ufsphy_hs_g4_tx,
|
||||
+ .tx_num = ARRAY_SIZE(sm8250_ufsphy_hs_g4_tx),
|
||||
+ .rx = sc7280_ufsphy_hs_g4_rx,
|
||||
+ .rx_num = ARRAY_SIZE(sc7280_ufsphy_hs_g4_rx),
|
||||
+ .pcs = sm8150_ufsphy_hs_g4_pcs,
|
||||
+ .pcs_num = ARRAY_SIZE(sm8150_ufsphy_hs_g4_pcs),
|
||||
+ },
|
||||
+ .clk_list = sm8450_ufs_phy_clk_l,
|
||||
+ .num_clks = ARRAY_SIZE(sm8450_ufs_phy_clk_l),
|
||||
+ .vreg_list = qmp_phy_vreg_l,
|
||||
+ .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
|
||||
+ .regs = ufsphy_v4_regs_layout,
|
||||
+};
|
||||
+
|
||||
static const struct qmp_phy_cfg sc8280xp_ufsphy_cfg = {
|
||||
.lanes = 2,
|
||||
|
||||
@@ -1637,6 +1776,9 @@ static const struct of_device_id qmp_ufs_of_match_table[] = {
|
||||
}, {
|
||||
.compatible = "qcom,sa8775p-qmp-ufs-phy",
|
||||
.data = &sa8775p_ufsphy_cfg,
|
||||
+ }, {
|
||||
+ .compatible = "qcom,sc7280-qmp-ufs-phy",
|
||||
+ .data = &sc7280_ufsphy_cfg,
|
||||
}, {
|
||||
.compatible = "qcom,sc8180x-qmp-ufs-phy",
|
||||
.data = &sm8150_ufsphy_cfg,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
From 5dab9b1ec029bd145a387fc02447306467d6d9d3 Mon Sep 17 00:00:00 2001
|
||||
From: Taniya Das <quic_tdas@quicinc.com>
|
||||
Date: Mon, 30 Oct 2023 23:24:19 +0530
|
||||
Subject: [PATCH] PENDING: clk: qcom: gcc: Enable the force mem core for UFS
|
||||
ICE clock
|
||||
|
||||
Enable the force mem core for UFS ICE clock. Update the gdsc
|
||||
transition delays to the recommended values for functional correctness.
|
||||
|
||||
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
drivers/clk/qcom/camcc-sc7280.c | 19 +++++++++++++++++++
|
||||
drivers/clk/qcom/gcc-sc7280.c | 13 +++++++++++++
|
||||
drivers/clk/qcom/gpucc-sc7280.c | 7 +++++++
|
||||
drivers/clk/qcom/videocc-sc7280.c | 7 +++++++
|
||||
4 files changed, 46 insertions(+)
|
||||
|
||||
diff --git a/drivers/clk/qcom/camcc-sc7280.c b/drivers/clk/qcom/camcc-sc7280.c
|
||||
index 4396fddba7a6..c1b71b4865e7 100644
|
||||
--- a/drivers/clk/qcom/camcc-sc7280.c
|
||||
+++ b/drivers/clk/qcom/camcc-sc7280.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -2247,6 +2248,9 @@ static struct clk_branch cam_cc_sleep_clk = {
|
||||
|
||||
static struct gdsc cam_cc_titan_top_gdsc = {
|
||||
.gdscr = 0xc194,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_titan_top_gdsc",
|
||||
},
|
||||
@@ -2256,6 +2260,9 @@ static struct gdsc cam_cc_titan_top_gdsc = {
|
||||
|
||||
static struct gdsc cam_cc_bps_gdsc = {
|
||||
.gdscr = 0x7004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_bps_gdsc",
|
||||
},
|
||||
@@ -2265,6 +2272,9 @@ static struct gdsc cam_cc_bps_gdsc = {
|
||||
|
||||
static struct gdsc cam_cc_ife_0_gdsc = {
|
||||
.gdscr = 0xa004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_ife_0_gdsc",
|
||||
},
|
||||
@@ -2274,6 +2284,9 @@ static struct gdsc cam_cc_ife_0_gdsc = {
|
||||
|
||||
static struct gdsc cam_cc_ife_1_gdsc = {
|
||||
.gdscr = 0xb004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_ife_1_gdsc",
|
||||
},
|
||||
@@ -2283,6 +2296,9 @@ static struct gdsc cam_cc_ife_1_gdsc = {
|
||||
|
||||
static struct gdsc cam_cc_ife_2_gdsc = {
|
||||
.gdscr = 0xb070,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_ife_2_gdsc",
|
||||
},
|
||||
@@ -2292,6 +2308,9 @@ static struct gdsc cam_cc_ife_2_gdsc = {
|
||||
|
||||
static struct gdsc cam_cc_ipe_0_gdsc = {
|
||||
.gdscr = 0x8004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "cam_cc_ipe_0_gdsc",
|
||||
},
|
||||
diff --git a/drivers/clk/qcom/gcc-sc7280.c b/drivers/clk/qcom/gcc-sc7280.c
|
||||
index 1dc804154031..dbb2fcb4e96a 100644
|
||||
--- a/drivers/clk/qcom/gcc-sc7280.c
|
||||
+++ b/drivers/clk/qcom/gcc-sc7280.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -3094,6 +3095,9 @@ static struct clk_branch gcc_wpss_rscp_clk = {
|
||||
|
||||
static struct gdsc gcc_pcie_0_gdsc = {
|
||||
.gdscr = 0x6b004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "gcc_pcie_0_gdsc",
|
||||
},
|
||||
@@ -3112,6 +3116,9 @@ static struct gdsc gcc_pcie_1_gdsc = {
|
||||
|
||||
static struct gdsc gcc_ufs_phy_gdsc = {
|
||||
.gdscr = 0x77004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "gcc_ufs_phy_gdsc",
|
||||
},
|
||||
@@ -3121,6 +3128,9 @@ static struct gdsc gcc_ufs_phy_gdsc = {
|
||||
|
||||
static struct gdsc gcc_usb30_prim_gdsc = {
|
||||
.gdscr = 0xf004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0xf,
|
||||
.pd = {
|
||||
.name = "gcc_usb30_prim_gdsc",
|
||||
},
|
||||
@@ -3467,6 +3477,9 @@ static int gcc_sc7280_probe(struct platform_device *pdev)
|
||||
regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
|
||||
regmap_update_bits(regmap, 0x7100C, BIT(13), BIT(13));
|
||||
|
||||
+ /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */
|
||||
+ qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
|
||||
+
|
||||
ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
|
||||
ARRAY_SIZE(gcc_dfs_clocks));
|
||||
if (ret)
|
||||
diff --git a/drivers/clk/qcom/gpucc-sc7280.c b/drivers/clk/qcom/gpucc-sc7280.c
|
||||
index 1490cd45a654..a30d9941644d 100644
|
||||
--- a/drivers/clk/qcom/gpucc-sc7280.c
|
||||
+++ b/drivers/clk/qcom/gpucc-sc7280.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -379,6 +380,9 @@ static struct clk_branch gpu_cc_sleep_clk = {
|
||||
|
||||
static struct gdsc cx_gdsc = {
|
||||
.gdscr = 0x106c,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0x2,
|
||||
.gds_hw_ctrl = 0x1540,
|
||||
.pd = {
|
||||
.name = "cx_gdsc",
|
||||
@@ -389,6 +393,9 @@ static struct gdsc cx_gdsc = {
|
||||
|
||||
static struct gdsc gx_gdsc = {
|
||||
.gdscr = 0x100c,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0x2,
|
||||
.clamp_io_ctrl = 0x1508,
|
||||
.pd = {
|
||||
.name = "gx_gdsc",
|
||||
diff --git a/drivers/clk/qcom/videocc-sc7280.c b/drivers/clk/qcom/videocc-sc7280.c
|
||||
index 615695d82319..425b7d1dc3cc 100644
|
||||
--- a/drivers/clk/qcom/videocc-sc7280.c
|
||||
+++ b/drivers/clk/qcom/videocc-sc7280.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -232,6 +233,9 @@ static struct clk_branch video_cc_venus_ahb_clk = {
|
||||
|
||||
static struct gdsc mvs0_gdsc = {
|
||||
.gdscr = 0x3004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0x6,
|
||||
.pd = {
|
||||
.name = "mvs0_gdsc",
|
||||
},
|
||||
@@ -241,6 +245,9 @@ static struct gdsc mvs0_gdsc = {
|
||||
|
||||
static struct gdsc mvsc_gdsc = {
|
||||
.gdscr = 0x2004,
|
||||
+ .en_rest_wait_val = 0x2,
|
||||
+ .en_few_wait_val = 0x2,
|
||||
+ .clk_dis_wait_val = 0x6,
|
||||
.pd = {
|
||||
.name = "mvsc_gdsc",
|
||||
},
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 8a67d7619a576a3f95be7d27910c89bb801f6d03 Mon Sep 17 00:00:00 2001
|
||||
From: Taniya Das <quic_tdas@quicinc.com>
|
||||
Date: Wed, 1 Nov 2023 10:30:17 +0530
|
||||
Subject: [PATCH 1/2] PENDING: dt-bindings: clock: Add "qcom,adsp-skip-pll"
|
||||
property
|
||||
|
||||
Add support for "qcom,adsp-skip-pll" so as to avoid configuring the
|
||||
LPASS PLL.
|
||||
|
||||
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
.../devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml b/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
|
||||
index 447cdc447a0c..5587d4ca82a6 100644
|
||||
--- a/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
|
||||
+++ b/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
|
||||
@@ -49,6 +49,11 @@ properties:
|
||||
peripheral loader.
|
||||
type: boolean
|
||||
|
||||
+ qcom,adsp-skip-pll:
|
||||
+ description:
|
||||
+ Indicates if the LPASS PLL configuration would be skipped.
|
||||
+ type: boolean
|
||||
+
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
From 96ef94902f0ce507d21cefb3ffaf841640556cff Mon Sep 17 00:00:00 2001
|
||||
From: Taniya Das <quic_tdas@quicinc.com>
|
||||
Date: Tue, 31 Oct 2023 23:56:38 +0530
|
||||
Subject: [PATCH 2/2] PENDING: clk: qcom: lpassaudiocc: Add support to skip PLL
|
||||
configuration
|
||||
|
||||
On certain targets the PLL configuration should be skipped, thus add a
|
||||
device property to support the same.
|
||||
|
||||
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
drivers/clk/qcom/lpassaudiocc-sc7280.c | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/clk/qcom/lpassaudiocc-sc7280.c b/drivers/clk/qcom/lpassaudiocc-sc7280.c
|
||||
index 134eb1529ede..5322ff53a3e1 100644
|
||||
--- a/drivers/clk/qcom/lpassaudiocc-sc7280.c
|
||||
+++ b/drivers/clk/qcom/lpassaudiocc-sc7280.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -765,11 +766,13 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
- clk_zonda_pll_configure(&lpass_audio_cc_pll, regmap, &lpass_audio_cc_pll_config);
|
||||
+ if (!of_property_read_bool(pdev->dev.of_node, "qcom,adsp-skip-pll")) {
|
||||
+ clk_zonda_pll_configure(&lpass_audio_cc_pll, regmap, &lpass_audio_cc_pll_config);
|
||||
|
||||
- /* PLL settings */
|
||||
- regmap_write(regmap, 0x4, 0x3b);
|
||||
- regmap_write(regmap, 0x8, 0xff05);
|
||||
+ /* PLL settings */
|
||||
+ regmap_write(regmap, 0x4, 0x3b);
|
||||
+ regmap_write(regmap, 0x8, 0xff05);
|
||||
+ }
|
||||
|
||||
ret = qcom_cc_really_probe(pdev, &lpass_audio_cc_sc7280_desc, regmap);
|
||||
if (ret) {
|
||||
@@ -777,6 +780,9 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
+ lpass_audio_cc_sc7280_regmap_config.name = "lpassaudio_cc_reset";
|
||||
+ lpass_audio_cc_sc7280_regmap_config.max_register = 0xc8;
|
||||
+
|
||||
ret = qcom_cc_probe_by_index(pdev, 1, &lpass_audio_cc_reset_sc7280_desc);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "Failed to register LPASS AUDIO CC Resets\n");
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
From 92c06bd8d2125f45ff52c9a6819c6cd8bf7a575d Mon Sep 17 00:00:00 2001
|
||||
From: Nitin Rawat <quic_nitirawa@quicinc.com>
|
||||
Date: Fri, 29 Sep 2023 18:49:34 +0530
|
||||
Subject: [PATCH] FROMLIST: arm64: dts: qcom: sc7280: Add UFS nodes for sc7280
|
||||
soc
|
||||
|
||||
Add UFS host controller and PHY nodes for sc7280 soc.
|
||||
|
||||
Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
|
||||
Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Salendarsingh Gaud <quic_sgaud@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/all/20230929131936.29421-3-quic_nitirawa@quicinc.com/]
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/sc7280.dtsi | 66 ++++++++++++++++++++++++++++
|
||||
1 file changed, 66 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
index 042908048d09..19705df517dd 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
@@ -3321,6 +3321,72 @@ opp-202000000 {
|
||||
};
|
||||
};
|
||||
|
||||
+ ufs_mem_hc: ufs@1d84000 {
|
||||
+ compatible = "qcom,sc7280-ufshc", "qcom,ufshc",
|
||||
+ "jedec,ufs-2.0";
|
||||
+ reg = <0x0 0x01d84000 0x0 0x3000>;
|
||||
+ interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ phys = <&ufs_mem_phy>;
|
||||
+ phy-names = "ufsphy";
|
||||
+ lanes-per-direction = <2>;
|
||||
+ #reset-cells = <1>;
|
||||
+ resets = <&gcc GCC_UFS_PHY_BCR>;
|
||||
+ reset-names = "rst";
|
||||
+
|
||||
+ power-domains = <&gcc GCC_UFS_PHY_GDSC>;
|
||||
+ required-opps = <&rpmhpd_opp_nom>;
|
||||
+
|
||||
+ iommus = <&apps_smmu 0x80 0x0>;
|
||||
+ dma-coherent;
|
||||
+
|
||||
+ interconnects = <&aggre1_noc MASTER_UFS_MEM 0 &mc_virt SLAVE_EBI1 0>,
|
||||
+ <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_UFS_MEM_CFG 0>;
|
||||
+
|
||||
+ clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
|
||||
+ <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_AHB_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
|
||||
+ <&rpmhcc RPMH_CXO_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
|
||||
+ clock-names = "core_clk",
|
||||
+ "bus_aggr_clk",
|
||||
+ "iface_clk",
|
||||
+ "core_clk_unipro",
|
||||
+ "ref_clk",
|
||||
+ "tx_lane0_sync_clk",
|
||||
+ "rx_lane0_sync_clk",
|
||||
+ "rx_lane1_sync_clk";
|
||||
+ freq-table-hz =
|
||||
+ <75000000 300000000>,
|
||||
+ <0 0>,
|
||||
+ <0 0>,
|
||||
+ <75000000 300000000>,
|
||||
+ <0 0>,
|
||||
+ <0 0>,
|
||||
+ <0 0>,
|
||||
+ <0 0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ufs_mem_phy: phy@1d87000 {
|
||||
+ compatible = "qcom,sc7280-qmp-ufs-phy";
|
||||
+ reg = <0x0 0x01d87000 0x0 0xe00>;
|
||||
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
+ <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
|
||||
+ <&gcc GCC_UFS_1_CLKREF_EN>;
|
||||
+ clock-names = "ref", "ref_aux", "qref";
|
||||
+
|
||||
+ resets = <&ufs_mem_hc 0>;
|
||||
+ reset-names = "ufsphy";
|
||||
+
|
||||
+ #clock-cells = <1>;
|
||||
+ #phy-cells = <0>;
|
||||
+
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
usb_1_hsphy: phy@88e3000 {
|
||||
compatible = "qcom,sc7280-usb-hs-phy",
|
||||
"qcom,usb-snps-hs-7nm-phy";
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 5b76f570d28a806bd95390d762c0465d3da83b48 Mon Sep 17 00:00:00 2001
|
||||
From: Luca Weiss <luca.weiss@fairphone.com>
|
||||
Date: Tue, 19 Sep 2023 14:46:00 +0200
|
||||
Subject: [PATCH 1/3] FROMLIST: dt-bindings: arm: qcom: Add QCM6490 Fairphone 5
|
||||
|
||||
Fairphone 5 is a smartphone based on the QCM6490 SoC.
|
||||
|
||||
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
|
||||
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Signed-off-by: Komal Bajaj <quic_kbajaj@quicinc.com>
|
||||
Signed-off-by: Salendarsingh Gaud <quic_sgaud@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-arm-msm/20230919-fp5-initial-v2-6-14bb7cedadf5@fairphone.com/]
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
index 450f616774e0..5d2cbddb6ab8 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
|
||||
@@ -49,6 +49,7 @@ description: |
|
||||
msm8998
|
||||
qcs404
|
||||
qcm2290
|
||||
+ qcm6490
|
||||
qdu1000
|
||||
qrb2210
|
||||
qrb4210
|
||||
@@ -382,6 +383,11 @@ properties:
|
||||
- const: qcom,qrb2210
|
||||
- const: qcom,qcm2290
|
||||
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - fairphone,fp5
|
||||
+ - const: qcom,qcm6490
|
||||
+
|
||||
- description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
|
||||
items:
|
||||
- enum:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From af40873b3994a00cc0c0afd0c35ff44c412edfd3 Mon Sep 17 00:00:00 2001
|
||||
From: Taniya Das <quic_tdas@quicinc.com>
|
||||
Date: Mon, 30 Oct 2023 23:29:06 +0530
|
||||
Subject: [PATCH] PENDING: arm64: dts: qcm6490: Update the protected clocks for
|
||||
QCM6490
|
||||
|
||||
Certain clocks are not accessible on QCM6490 board and thus require them
|
||||
to be marked protected.
|
||||
Also disable the LPASS nodes which are not to be used.
|
||||
|
||||
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/qcm6490.dtsi | 48 +++++++++++++++++++++++++++
|
||||
1 file changed, 48 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/qcm6490.dtsi b/arch/arm64/boot/dts/qcom/qcm6490.dtsi
|
||||
index b93270cae9ae..cccb50ce6269 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/qcm6490.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/qcm6490.dtsi
|
||||
@@ -81,6 +81,54 @@ trusted_apps_mem: trusted_apps@c1800000 {
|
||||
};
|
||||
};
|
||||
|
||||
+&gcc {
|
||||
+ protected-clocks = <GCC_AGGRE_NOC_PCIE_1_AXI_CLK> ,<GCC_PCIE_1_AUX_CLK>,
|
||||
+ <GCC_PCIE_1_AUX_CLK_SRC>, <GCC_PCIE_1_CFG_AHB_CLK>,
|
||||
+ <GCC_PCIE_1_MSTR_AXI_CLK>, <GCC_PCIE_1_PHY_RCHNG_CLK_SRC>,
|
||||
+ <GCC_PCIE_1_PIPE_CLK>, <GCC_PCIE_1_PIPE_CLK_SRC>,
|
||||
+ <GCC_PCIE_1_SLV_AXI_CLK>, <GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
|
||||
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, <GCC_QSPI_CORE_CLK>,
|
||||
+ <GCC_QSPI_CORE_CLK_SRC>,<GCC_USB30_SEC_MASTER_CLK>,
|
||||
+ <GCC_USB30_SEC_MASTER_CLK_SRC>, <GCC_USB30_SEC_MOCK_UTMI_CLK>,
|
||||
+ <GCC_USB30_SEC_MOCK_UTMI_CLK_SRC>,
|
||||
+ <GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC>, <GCC_USB30_SEC_SLEEP_CLK>,
|
||||
+ <GCC_USB3_SEC_PHY_AUX_CLK>, <GCC_USB3_SEC_PHY_AUX_CLK_SRC>,
|
||||
+ <GCC_USB3_SEC_PHY_COM_AUX_CLK>, <GCC_USB3_SEC_PHY_PIPE_CLK>,
|
||||
+ <GCC_USB3_SEC_PHY_PIPE_CLK_SRC>, <GCC_CFG_NOC_LPASS_CLK>,
|
||||
+ <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>, <GCC_MSS_CFG_AHB_CLK>,
|
||||
+ <GCC_MSS_OFFLINE_AXI_CLK>, <GCC_MSS_SNOC_AXI_CLK>,
|
||||
+ <GCC_MSS_Q6_MEMNOC_AXI_CLK>, <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
|
||||
+ <GCC_SEC_CTRL_CLK_SRC>, <GCC_WPSS_AHB_CLK>,
|
||||
+ <GCC_WPSS_AHB_BDG_MST_CLK>, <GCC_WPSS_RSCP_CLK>;
|
||||
+};
|
||||
+
|
||||
+&lpass_audiocc {
|
||||
+ qcom,adsp-skip-pll;
|
||||
+ protected-clocks = <LPASS_AUDIO_CC_CDIV_RX_MCLK_DIV_CLK_SRC>,
|
||||
+ <LPASS_AUDIO_CC_CODEC_MEM0_CLK>, <LPASS_AUDIO_CC_CODEC_MEM1_CLK>,
|
||||
+ <LPASS_AUDIO_CC_CODEC_MEM2_CLK>, <LPASS_AUDIO_CC_CODEC_MEM_CLK>,
|
||||
+ <LPASS_AUDIO_CC_EXT_MCLK0_CLK>, <LPASS_AUDIO_CC_EXT_MCLK0_CLK_SRC>,
|
||||
+ <LPASS_AUDIO_CC_EXT_MCLK1_CLK>, <LPASS_AUDIO_CC_EXT_MCLK1_CLK_SRC>,
|
||||
+ <LPASS_AUDIO_CC_PLL>, <LPASS_AUDIO_CC_PLL_OUT_AUX2>,
|
||||
+ <LPASS_AUDIO_CC_PLL_OUT_AUX2_DIV_CLK_SRC>,
|
||||
+ <LPASS_AUDIO_CC_PLL_OUT_MAIN_DIV_CLK_SRC>,
|
||||
+ <LPASS_AUDIO_CC_RX_MCLK_2X_CLK>, <LPASS_AUDIO_CC_RX_MCLK_CLK>,
|
||||
+ <LPASS_AUDIO_CC_RX_MCLK_CLK_SRC>;
|
||||
+ /delete-property/ power-domains;
|
||||
+};
|
||||
+
|
||||
+&lpass_aon {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&lpass_core {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&lpass_hm {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
&video_mem {
|
||||
reg = <0x0 0x8a700000 0x0 0x500000>;
|
||||
};
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 0fd82fdf7e1a5d6bb1924129849ed351806e1a3d Mon Sep 17 00:00:00 2001
|
||||
From: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Date: Fri, 3 Nov 2023 10:11:01 +0530
|
||||
Subject: [PATCH] PENDING: arm64: dts: qcom: sc7280: Add interconnect paths to
|
||||
UFSHC
|
||||
|
||||
QCOM UFS host controller requires interconnect path configuration
|
||||
for proper working. So add them for SC7280 SoC.
|
||||
|
||||
Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm64/boot/dts/qcom/sc7280.dtsi | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
index 19705df517dd..1217de1d3266 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
|
||||
@@ -3341,6 +3341,7 @@ ufs_mem_hc: ufs@1d84000 {
|
||||
|
||||
interconnects = <&aggre1_noc MASTER_UFS_MEM 0 &mc_virt SLAVE_EBI1 0>,
|
||||
<&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_UFS_MEM_CFG 0>;
|
||||
+ interconnect-names = "ufs-ddr", "cpu-ufs";
|
||||
|
||||
clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
|
||||
<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 86cb0766a6e9ad295c9f719adc5f02fd94eb2199 Mon Sep 17 00:00:00 2001
|
||||
From: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Date: Tue, 31 Oct 2023 11:18:40 +0530
|
||||
Subject: [PATCH 1/2] PENDING: dt-bindings: pinctrl: qcom,sc7280-pinctrl: add
|
||||
gpio-reserved-ranges
|
||||
|
||||
Add gpio-reserved-ranges property for SC7280 (used on QCM6490 boards).
|
||||
|
||||
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
.../devicetree/bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-pinctrl.yaml
|
||||
index 368d44ff5468..c8735ab97e40 100644
|
||||
--- a/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-pinctrl.yaml
|
||||
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-pinctrl.yaml
|
||||
@@ -41,6 +41,10 @@ properties:
|
||||
gpio-ranges:
|
||||
maxItems: 1
|
||||
|
||||
+ gpio-reserved-ranges:
|
||||
+ minItems: 1
|
||||
+ maxItems: 88
|
||||
+
|
||||
gpio-line-names:
|
||||
maxItems: 175
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user