This patch adds bindings for secure qfprom found in QCOM SOCs.
SECURE QFPROM driver is based on simple nvmem framework.
Signed-off-by: Komal Bajaj <[email protected]>
---
.../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
new file mode 100644
index 000000000000..675e27918c7b
--- /dev/null
+++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies Inc, SECURE QFPROM Efuse
+
+maintainers:
+ - Komal Bajaj <[email protected]>
+
+allOf:
+ - $ref: nvmem.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - qcom,qdu1000-sec-qfprom
+ - const: qcom,sec-qfprom
+
+ reg:
+ items:
+ - description: The secure qfprom corrected region.
+
+ # Needed if any child nodes are present.
+ "#address-cells":
+ const: 1
+ "#size-cells":
+ const: 1
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-sc7180.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ efuse@221c8000 {
+ compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
+ reg = <0 0x221c8000 0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ multi_chan_ddr: multi_chan_ddr@12b {
+ reg = <0x12b 0x1>;
+ bits = <0 2>;
+ };
+ };
+ };
+
--
2.40.1
On 23/06/2023 16:18, Komal Bajaj wrote:
> This patch adds bindings for secure qfprom found in QCOM SOCs.
> SECURE QFPROM driver is based on simple nvmem framework.
>
> Signed-off-by: Komal Bajaj <[email protected]>
> ---
> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>
> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
> new file mode 100644
> index 000000000000..675e27918c7b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
> @@ -0,0 +1,58 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies Inc, SECURE QFPROM Efuse
SECURE is not acronym, so "Secure".
> +
> +maintainers:
> + - Komal Bajaj <[email protected]>
Add description: with explanation what is this. Specifically it should
be quite clear what is here different than regular QFPROM
> +
> +allOf:
> + - $ref: nvmem.yaml#
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - qcom,qdu1000-sec-qfprom
> + - const: qcom,sec-qfprom
> +
> + reg:
> + items:
> + - description: The secure qfprom corrected region.
> +
> + # Needed if any child nodes are present.
> + "#address-cells":
> + const: 1
> + "#size-cells":
> + const: 1
Drop both, they are not needed.
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + efuse@221c8000 {
> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
> + reg = <0 0x221c8000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + multi_chan_ddr: multi_chan_ddr@12b {
No underscores in node names.
Best regards,
Krzysztof
On 6/23/2023 10:06 PM, Krzysztof Kozlowski wrote:
> On 23/06/2023 16:18, Komal Bajaj wrote:
>> This patch adds bindings for secure qfprom found in QCOM SOCs.
>> SECURE QFPROM driver is based on simple nvmem framework.
>>
>> Signed-off-by: Komal Bajaj <[email protected]>
>> ---
>> .../bindings/nvmem/qcom,sec-qfprom.yaml | 58 +++++++++++++++++++
>> 1 file changed, 58 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>> new file mode 100644
>> index 000000000000..675e27918c7b
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/nvmem/qcom,sec-qfprom.yaml
>> @@ -0,0 +1,58 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Technologies Inc, SECURE QFPROM Efuse
> SECURE is not acronym, so "Secure".
Noted.
>
>> +
>> +maintainers:
>> + - Komal Bajaj <[email protected]>
> Add description: with explanation what is this. Specifically it should
> be quite clear what is here different than regular QFPROM
Sure, will add description the next patch set.
>
>> +
>> +allOf:
>> + - $ref: nvmem.yaml#
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - enum:
>> + - qcom,qdu1000-sec-qfprom
>> + - const: qcom,sec-qfprom
>> +
>> + reg:
>> + items:
>> + - description: The secure qfprom corrected region.
>> +
>> + # Needed if any child nodes are present.
>> + "#address-cells":
>> + const: 1
>> + "#size-cells":
>> + const: 1
> Drop both, they are not needed.
I didn't get it. Can you please explain why these are not needed as this
node will have child nodes which will use single value for address and size.
>
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,gcc-sc7180.h>
>> +
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + efuse@221c8000 {
>> + compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
>> + reg = <0 0x221c8000 0 0x1000>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + multi_chan_ddr: multi_chan_ddr@12b {
> No underscores in node names.
Noted.
>
>
> Best regards,
> Krzysztof
>
On 26/06/2023 10:22, Komal Bajaj wrote:
>>
>>> +
>>> +allOf:
>>> + - $ref: nvmem.yaml#
>>> +
>>> +properties:
>>> + compatible:
>>> + items:
>>> + - enum:
>>> + - qcom,qdu1000-sec-qfprom
>>> + - const: qcom,sec-qfprom
>>> +
>>> + reg:
>>> + items:
>>> + - description: The secure qfprom corrected region.
>>> +
>>> + # Needed if any child nodes are present.
>>> + "#address-cells":
>>> + const: 1
>>> + "#size-cells":
>>> + const: 1
>> Drop both, they are not needed.
>
> I didn't get it. Can you please explain why these are not needed as this
> node will have child nodes which will use single value for address and size.
I suspect they are already defined. Do other bindings (for cases with
children) have them? If not, why here it would be different?
Best regards,
Krzysztof
On 26/06/2023 11:02, Komal Bajaj wrote:
>
>
> On 6/26/2023 2:00 PM, Krzysztof Kozlowski wrote:
>> On 26/06/2023 10:22, Komal Bajaj wrote:
>>>>> +
>>>>> +allOf:
>>>>> + - $ref: nvmem.yaml#
>>>>> +
>>>>> +properties:
>>>>> + compatible:
>>>>> + items:
>>>>> + - enum:
>>>>> + - qcom,qdu1000-sec-qfprom
>>>>> + - const: qcom,sec-qfprom
>>>>> +
>>>>> + reg:
>>>>> + items:
>>>>> + - description: The secure qfprom corrected region.
>>>>> +
>>>>> + # Needed if any child nodes are present.
>>>>> + "#address-cells":
>>>>> + const: 1
>>>>> + "#size-cells":
>>>>> + const: 1
>>>> Drop both, they are not needed.
>>> I didn't get it. Can you please explain why these are not needed as this
>>> node will have child nodes which will use single value for address and size.
>> I suspect they are already defined. Do other bindings (for cases with
>> children) have them? If not, why here it would be different?
>
> Yes, I see there are bindings that has these properties, listed a few of
> them below -
>
> [1]
> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
Please work on current development. It's a bit of waste of time to
review old code...
https://lore.kernel.org/all/[email protected]/
> [2]
> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
That's not a nvmem provider.
> [3]
> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml
That's not a nvmem provider.
Best regards,
Krzysztof
On 6/26/2023 3:16 PM, Krzysztof Kozlowski wrote:
> On 26/06/2023 11:02, Komal Bajaj wrote:
>>
>> On 6/26/2023 2:00 PM, Krzysztof Kozlowski wrote:
>>> On 26/06/2023 10:22, Komal Bajaj wrote:
>>>>>> +
>>>>>> +allOf:
>>>>>> + - $ref: nvmem.yaml#
>>>>>> +
>>>>>> +properties:
>>>>>> + compatible:
>>>>>> + items:
>>>>>> + - enum:
>>>>>> + - qcom,qdu1000-sec-qfprom
>>>>>> + - const: qcom,sec-qfprom
>>>>>> +
>>>>>> + reg:
>>>>>> + items:
>>>>>> + - description: The secure qfprom corrected region.
>>>>>> +
>>>>>> + # Needed if any child nodes are present.
>>>>>> + "#address-cells":
>>>>>> + const: 1
>>>>>> + "#size-cells":
>>>>>> + const: 1
>>>>> Drop both, they are not needed.
>>>> I didn't get it. Can you please explain why these are not needed as this
>>>> node will have child nodes which will use single value for address and size.
>>> I suspect they are already defined. Do other bindings (for cases with
>>> children) have them? If not, why here it would be different?
>> Yes, I see there are bindings that has these properties, listed a few of
>> them below -
>>
>> [1]
>> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
> Please work on current development. It's a bit of waste of time to
> review old code...
Okay sorry for that, will work on this.
Thanks
Komal
>
> https://lore.kernel.org/all/[email protected]/
>
>> [2]
>> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> That's not a nvmem provider.
>
>> [3]
>> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml
> That's not a nvmem provider.
>
>
> Best regards,
> Krzysztof
>