* [PATCH v3 0/2] coresight: core: Add device name support
@ 2024-01-31 8:26 Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 1/2] " Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components Mao Jinlong
0 siblings, 2 replies; 4+ messages in thread
From: Mao Jinlong @ 2024-01-31 8:26 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan,
Alexander Shishkin, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Maxime Coquelin, Alexandre Torgue, Bjorn Andersson,
Konrad Dybcio, Mathieu Poirier
Cc: Mao Jinlong, coresight, linux-arm-kernel, linux-kernel,
devicetree, linux-stm32, linux-arm-msm, Tingwei Zhang,
Yuanfang Zhang, Tao Zhang
With current design, the name of the non-cpu bounded coresight
component is the device type with the number. And with 'ls' command
we can get the register address of the component. But from these
information, we can't know what the HW or system the component belongs
to. Add device-name in DT to support it.
cti_sys0 -> ../../../devices/platform/soc@0/138f0000.cti/cti_sys0
cti_sys1 -> ../../../devices/platform/soc@0/13900000.cti/cti_sys1
tpdm0 -> ../../../devices/platform/soc@0/10b0d000.tpdm/tpdm0
tpdm1 -> ../../../devices/platform/soc@0/10c28000.tpdm/tpdm1
tpdm2 -> ../../../devices/platform/soc@0/10c29000.tpdm/tpdm2
Change since V2:
1. Fix the error in coresight core.
drivers/hwtracing/coresight/coresight-core.c:1775:7: error: assigning to 'char *' from 'const char *' discards qualifiers
2. Fix the warning when run dtbinding check.
Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml: device-name: missing type definition
Change since V1:
1. Change coresight-name to device name.
2. Add the device-name in coresight dt bindings.
Mao Jinlong (2):
coresight: core: Add device name support
dt-bindings: arm: Add device-name in the coresight components
.../bindings/arm/arm,coresight-catu.yaml | 6 +++
.../bindings/arm/arm,coresight-cpu-debug.yaml | 6 +++
.../bindings/arm/arm,coresight-cti.yaml | 6 +++
.../arm/arm,coresight-dummy-sink.yaml | 6 +++
.../arm/arm,coresight-dummy-source.yaml | 6 +++
.../arm/arm,coresight-dynamic-funnel.yaml | 6 +++
.../arm/arm,coresight-dynamic-replicator.yaml | 6 +++
.../bindings/arm/arm,coresight-etb10.yaml | 6 +++
.../bindings/arm/arm,coresight-etm.yaml | 6 +++
.../arm/arm,coresight-static-funnel.yaml | 6 +++
.../arm/arm,coresight-static-replicator.yaml | 6 +++
.../bindings/arm/arm,coresight-stm.yaml | 6 +++
.../bindings/arm/arm,coresight-tmc.yaml | 6 +++
.../bindings/arm/arm,coresight-tpiu.yaml | 6 +++
.../bindings/arm/qcom,coresight-tpda.yaml | 6 +++
.../bindings/arm/qcom,coresight-tpdm.yaml | 6 +++
drivers/hwtracing/coresight/coresight-core.c | 37 ++++++++++---------
.../hwtracing/coresight/coresight-platform.c | 31 ++++++++++++++++
include/linux/coresight.h | 3 +-
19 files changed, 149 insertions(+), 18 deletions(-)
--
2.41.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] coresight: core: Add device name support
2024-01-31 8:26 [PATCH v3 0/2] coresight: core: Add device name support Mao Jinlong
@ 2024-01-31 8:26 ` Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components Mao Jinlong
1 sibling, 0 replies; 4+ messages in thread
From: Mao Jinlong @ 2024-01-31 8:26 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan,
Alexander Shishkin, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Maxime Coquelin, Alexandre Torgue, Bjorn Andersson,
Konrad Dybcio, Mathieu Poirier
Cc: Mao Jinlong, coresight, linux-arm-kernel, linux-kernel,
devicetree, linux-stm32, linux-arm-msm, Tingwei Zhang,
Yuanfang Zhang, Tao Zhang
For some coresight components like CTI and TPDM, there could be
numerous of them. From the node name, we can only get the type and
register address of the component. We can't identify the HW or the
system the component belongs to. Add the device-name support for
adding the intuitive name of the device.
Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com>
---
drivers/hwtracing/coresight/coresight-core.c | 37 ++++++++++---------
.../hwtracing/coresight/coresight-platform.c | 31 ++++++++++++++++
include/linux/coresight.h | 3 +-
3 files changed, 53 insertions(+), 18 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index 5dde597403b3..8e836e8f407c 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -1766,33 +1766,36 @@ EXPORT_SYMBOL_GPL(coresight_loses_context_with_cpu);
* duplicate indices for the same device (e.g, if we defer probing of
* a device due to dependencies), in case the index is requested again.
*/
-char *coresight_alloc_device_name(struct coresight_dev_list *dict,
+const char *coresight_alloc_device_name(struct coresight_dev_list *dict,
struct device *dev)
{
int idx;
- char *name = NULL;
+ const char *name = NULL;
struct fwnode_handle **list;
mutex_lock(&coresight_mutex);
- idx = coresight_search_device_idx(dict, dev_fwnode(dev));
- if (idx < 0) {
- /* Make space for the new entry */
- idx = dict->nr_idx;
- list = krealloc_array(dict->fwnode_list,
- idx + 1, sizeof(*dict->fwnode_list),
- GFP_KERNEL);
- if (ZERO_OR_NULL_PTR(list)) {
- idx = -ENOMEM;
- goto done;
+ name = coresight_get_device_name(dev);
+ if (!name) {
+ idx = coresight_search_device_idx(dict, dev_fwnode(dev));
+ if (idx < 0) {
+ /* Make space for the new entry */
+ idx = dict->nr_idx;
+ list = krealloc_array(dict->fwnode_list,
+ idx + 1, sizeof(*dict->fwnode_list),
+ GFP_KERNEL);
+ if (ZERO_OR_NULL_PTR(list)) {
+ idx = -ENOMEM;
+ goto done;
+ }
+
+ list[idx] = dev_fwnode(dev);
+ dict->fwnode_list = list;
+ dict->nr_idx = idx + 1;
}
- list[idx] = dev_fwnode(dev);
- dict->fwnode_list = list;
- dict->nr_idx = idx + 1;
+ name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", dict->pfx, idx);
}
-
- name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", dict->pfx, idx);
done:
mutex_unlock(&coresight_mutex);
return name;
diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c
index 9d550f5697fa..c6c68fc9f787 100644
--- a/drivers/hwtracing/coresight/coresight-platform.c
+++ b/drivers/hwtracing/coresight/coresight-platform.c
@@ -183,6 +183,22 @@ static int of_coresight_get_cpu(struct device *dev)
return cpu;
}
+static const char *of_coresight_get_device_name(struct device *dev)
+{
+ const char *name = NULL;
+
+ if (!dev->of_node)
+ return NULL;
+
+ /*
+ * Get the device name from DT. The name describes the HW or
+ * system the device is for.
+ */
+ of_property_read_string(dev->of_node, "device-name", &name);
+
+ return name;
+}
+
/*
* of_coresight_parse_endpoint : Parse the given output endpoint @ep
* and fill the connection information in @pdata->out_conns
@@ -315,6 +331,12 @@ static inline int of_coresight_get_cpu(struct device *dev)
{
return -ENODEV;
}
+
+static inline const char *of_coresight_get_device_name(struct device *dev)
+{
+ return NULL;
+}
+
#endif
#ifdef CONFIG_ACPI
@@ -794,6 +816,15 @@ int coresight_get_cpu(struct device *dev)
}
EXPORT_SYMBOL_GPL(coresight_get_cpu);
+const char *coresight_get_device_name(struct device *dev)
+{
+ if (is_of_node(dev->fwnode))
+ return of_coresight_get_device_name(dev);
+ else
+ return NULL;
+}
+EXPORT_SYMBOL_GPL(coresight_get_device_name);
+
struct coresight_platform_data *
coresight_get_platform_data(struct device *dev)
{
diff --git a/include/linux/coresight.h b/include/linux/coresight.h
index e8b6e388218c..9d50a91a3fc7 100644
--- a/include/linux/coresight.h
+++ b/include/linux/coresight.h
@@ -582,7 +582,7 @@ extern int coresight_claim_device_unlocked(struct coresight_device *csdev);
extern void coresight_disclaim_device(struct coresight_device *csdev);
extern void coresight_disclaim_device_unlocked(struct coresight_device *csdev);
-extern char *coresight_alloc_device_name(struct coresight_dev_list *devs,
+extern const char *coresight_alloc_device_name(struct coresight_dev_list *devs,
struct device *dev);
extern bool coresight_loses_context_with_cpu(struct device *dev);
@@ -676,6 +676,7 @@ static inline void coresight_write64(struct coresight_device *csdev, u64 val, u3
#endif /* IS_ENABLED(CONFIG_CORESIGHT) */
extern int coresight_get_cpu(struct device *dev);
+extern const char *coresight_get_device_name(struct device *dev);
struct coresight_platform_data *coresight_get_platform_data(struct device *dev);
struct coresight_connection *
--
2.41.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components
2024-01-31 8:26 [PATCH v3 0/2] coresight: core: Add device name support Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 1/2] " Mao Jinlong
@ 2024-01-31 8:26 ` Mao Jinlong
2024-02-02 19:38 ` Rob Herring
1 sibling, 1 reply; 4+ messages in thread
From: Mao Jinlong @ 2024-01-31 8:26 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan,
Alexander Shishkin, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Maxime Coquelin, Alexandre Torgue, Bjorn Andersson,
Konrad Dybcio, Mathieu Poirier
Cc: Mao Jinlong, coresight, linux-arm-kernel, linux-kernel,
devicetree, linux-stm32, linux-arm-msm, Tingwei Zhang,
Yuanfang Zhang, Tao Zhang
Current name of coresight component's folder consists of prefix of
the device and the id in the device list. When run 'ls' command,
we can get the register address of the device. Take CTI for example,
if we want to set the config for modem CTI, but we can't know which
CTI is modem CTI from all current information.
cti_sys0 -> ../../../devices/platform/soc@0/138f0000.cti/cti_sys0
cti_sys1 -> ../../../devices/platform/soc@0/13900000.cti/cti_sys1
Add device-name in device tree which can provide a better description
of the coresight device. It can provide the info like the system or
HW it belongs to.
Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com>
---
.../devicetree/bindings/arm/arm,coresight-catu.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-cpu-debug.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-cti.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-dummy-sink.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-dummy-source.yaml | 6 ++++++
.../bindings/arm/arm,coresight-dynamic-funnel.yaml | 6 ++++++
.../bindings/arm/arm,coresight-dynamic-replicator.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-etb10.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-etm.yaml | 6 ++++++
.../bindings/arm/arm,coresight-static-funnel.yaml | 6 ++++++
.../bindings/arm/arm,coresight-static-replicator.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-stm.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-tmc.yaml | 6 ++++++
.../devicetree/bindings/arm/arm,coresight-tpiu.yaml | 6 ++++++
.../devicetree/bindings/arm/qcom,coresight-tpda.yaml | 6 ++++++
.../devicetree/bindings/arm/qcom,coresight-tpdm.yaml | 6 ++++++
16 files changed, 96 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
index 2bae06eed693..a4d20aad0c70 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
@@ -44,6 +44,12 @@ properties:
- const: arm,coresight-catu
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
index 0a6bc03ebe00..6094cc9cb834 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
@@ -39,6 +39,12 @@ properties:
- const: arm,coresight-cpu-debug
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
index 2d5545a2b49c..21c3c4fb71a6 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
@@ -88,6 +88,12 @@ properties:
- const: arm,coresight-cti
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
index c960c8e0a9a5..c2c3f4a743f2 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-sink.yaml
@@ -39,6 +39,12 @@ properties:
enum:
- arm,coresight-dummy-sink
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
in-ports:
$ref: /schemas/graph.yaml#/properties/ports
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
index 6745b4cc8f1c..6b3ba3c0cedb 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-dummy-source.yaml
@@ -38,6 +38,12 @@ properties:
enum:
- arm,coresight-dummy-source
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
out-ports:
$ref: /schemas/graph.yaml#/properties/ports
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
index 44a1041cb0fc..a47c30e6da97 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
@@ -41,6 +41,12 @@ properties:
- const: arm,coresight-dynamic-funnel
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
index 03792e9bd97a..feb800a95ee5 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
@@ -41,6 +41,12 @@ properties:
- const: arm,coresight-dynamic-replicator
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
index 90679788e0bf..5bf173982019 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
@@ -41,6 +41,12 @@ properties:
- const: arm,coresight-etb10
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
index 01200f67504a..20c0e5394ea0 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
@@ -60,6 +60,12 @@ properties:
Embedded Trace Macrocell (version 4.x), with system register access only
const: arm,coresight-etm4x-sysreg
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
index cc8c3baa79b4..ddecf2a9cbc6 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
@@ -27,6 +27,12 @@ properties:
compatible:
const: arm,coresight-static-funnel
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
power-domains:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
index 1892a091ac35..d10f2fbcab68 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
@@ -27,6 +27,12 @@ properties:
compatible:
const: arm,coresight-static-replicator
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
power-domains:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
index 378380c3f5aa..c964a01c5bd6 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
@@ -43,6 +43,12 @@ properties:
- const: arm,coresight-stm
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 2
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
index cb8dceaca70e..825d24c1c263 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
@@ -42,6 +42,12 @@ properties:
- const: arm,coresight-tmc
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
index 61a0cdc27745..3959c3ae6244 100644
--- a/Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
@@ -41,6 +41,12 @@ properties:
- const: arm,coresight-tpiu
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml b/Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml
index ea3c5db6b52d..6c94c47a05d4 100644
--- a/Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml
@@ -54,6 +54,12 @@ properties:
- const: qcom,coresight-tpda
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
minItems: 1
maxItems: 2
diff --git a/Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml b/Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml
index 61ddc3b5b247..f9c73c26daa8 100644
--- a/Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml
@@ -40,6 +40,12 @@ properties:
- const: qcom,coresight-tpdm
- const: arm,primecell
+ device-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Define the name which can describe what kind of HW or system the
+ device is for.
+
reg:
minItems: 1
maxItems: 2
--
2.41.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components
2024-01-31 8:26 ` [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components Mao Jinlong
@ 2024-02-02 19:38 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2024-02-02 19:38 UTC (permalink / raw)
To: Mao Jinlong
Cc: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan,
Alexander Shishkin, Krzysztof Kozlowski, Conor Dooley,
Maxime Coquelin, Alexandre Torgue, Bjorn Andersson, Konrad Dybcio,
Mathieu Poirier, coresight, linux-arm-kernel, linux-kernel,
devicetree, linux-stm32, linux-arm-msm, Tingwei Zhang,
Yuanfang Zhang, Tao Zhang
On Wed, Jan 31, 2024 at 12:26:26AM -0800, Mao Jinlong wrote:
> Current name of coresight component's folder consists of prefix of
> the device and the id in the device list. When run 'ls' command,
> we can get the register address of the device. Take CTI for example,
> if we want to set the config for modem CTI, but we can't know which
> CTI is modem CTI from all current information.
>
> cti_sys0 -> ../../../devices/platform/soc@0/138f0000.cti/cti_sys0
> cti_sys1 -> ../../../devices/platform/soc@0/13900000.cti/cti_sys1
>
> Add device-name in device tree which can provide a better description
> of the coresight device. It can provide the info like the system or
> HW it belongs to.
>
> Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com>
> ---
> .../devicetree/bindings/arm/arm,coresight-catu.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-cpu-debug.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-cti.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-dummy-sink.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-dummy-source.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-dynamic-funnel.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-dynamic-replicator.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-etb10.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-etm.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-static-funnel.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-static-replicator.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-stm.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-tmc.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-tpiu.yaml | 6 ++++++
> .../devicetree/bindings/arm/qcom,coresight-tpda.yaml | 6 ++++++
> .../devicetree/bindings/arm/qcom,coresight-tpdm.yaml | 6 ++++++
Why do you need a name on everything? Funnels and replicators, for
example, aren't a source of data, but just connected to things that are.
ETM is tightly coupled to a CPU and you have a link to it. You have
graph links to show connections. Limit this to where you actually need
it.
> 16 files changed, 96 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> index 2bae06eed693..a4d20aad0c70 100644
> --- a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> @@ -44,6 +44,12 @@ properties:
> - const: arm,coresight-catu
> - const: arm,primecell
>
> + device-name:
This is too generic of a name. Make is something closer to how it is
used or what it is for. Naming sysfs devices is not how it is used.
That's just an intermediate step.
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Define the name which can describe what kind of HW or system the
> + device is for.
> +
> reg:
> maxItems: 1
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> index 0a6bc03ebe00..6094cc9cb834 100644
> --- a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> @@ -39,6 +39,12 @@ properties:
> - const: arm,coresight-cpu-debug
> - const: arm,primecell
>
> + device-name:
> + $ref: /schemas/types.yaml#/definitions/string
If you are redefining the type multiple times, there's a problem in the
structure of the schemas. Really, that's true for anything duplicated in
the kernel.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-02 20:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-31 8:26 [PATCH v3 0/2] coresight: core: Add device name support Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 1/2] " Mao Jinlong
2024-01-31 8:26 ` [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components Mao Jinlong
2024-02-02 19:38 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).