diff mbox series

dt-bindings: nvmem: add binding for QTI SPMI SDAM

Message ID 1577165532-28772-1-git-send-email-sthella@codeaurora.org (mailing list archive)
State Superseded
Headers show
Series dt-bindings: nvmem: add binding for QTI SPMI SDAM | expand

Commit Message

Shyam Kumar Thella Dec. 24, 2019, 5:32 a.m. UTC
QTI SDAM allows PMIC peripherals to access the shared memory that is
available on QTI PMICs. Add documentation for it.

Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
---
 .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79 ++++++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml

Comments

Bjorn Andersson Dec. 29, 2019, 3:01 a.m. UTC | #1
On Mon 23 Dec 21:32 PST 2019, Shyam Kumar Thella wrote:

> QTI SDAM allows PMIC peripherals to access the shared memory that is
> available on QTI PMICs. Add documentation for it.
> 
> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
> ---
>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79 ++++++++++++++++++++++
>  1 file changed, 79 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> new file mode 100644
> index 0000000..8961a99
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> @@ -0,0 +1,79 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
> +
> +maintainers:
> +  - Shyam Kumar Thella <sthella@codeaurora.org>
> +
> +description: |
> +  The SDAM provides scratch register space for the PMIC clients. This
> +  memory can be used by software to store information or communicate
> +  to/from the PBUS.
> +
> +allOf:
> +  - $ref: "nvmem.yaml#"
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,spmi-sdam
> +
> +  reg:
> +    maxItems: 1
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +patternProperties:
> +  "^.*@[0-9a-f]+$":
> +    type: object
> +
> +    properties:
> +      reg:
> +        maxItems: 1
> +        description:
> +          Offset and size in bytes within the storage device.
> +
> +      bits:
> +        maxItems: 1
> +        items:
> +          items:
> +            - minimum: 0
> +              maximum: 7
> +              description:
> +                Offset in bit within the address range specified by reg.
> +            - minimum: 1
> +              description:
> +                Size in bit within the address range specified by reg.
> +
> +    required:
> +      - reg
> +
> +    additionalProperties: false
> +
> +examples:
> +  - |
> +      sdam_1: nvram@b000 {
> +         #address-cells = <1>;
> +         #size-cells = <1>;
> +         compatible = "qcom,spmi-sdam";
> +          reg = <0xb000 0x100>;
> +
> +          /* Data cells */
> +          restart_reason: restart@50 {

So this register has moved out of the PON register set? What component
in the system is going to reference this? Should it have a compatible,
in the same way as "syscon-reboot-mode" does?

Regards,
Bjorn

> +              reg = <0x50 0x1>;
> +              bits = <7 2>;
> +          };
> +      };
> +...
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
>  a Linux Foundation Collaborative Project
Shyam Kumar Thella Dec. 31, 2019, 6:43 a.m. UTC | #2
On 2019-12-29 08:31, Bjorn Andersson wrote:
> On Mon 23 Dec 21:32 PST 2019, Shyam Kumar Thella wrote:
> 
>> QTI SDAM allows PMIC peripherals to access the shared memory that is
>> available on QTI PMICs. Add documentation for it.
>> 
>> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
>> ---
>>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79 
>> ++++++++++++++++++++++
>>  1 file changed, 79 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> 
>> diff --git 
>> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml 
>> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> new file mode 100644
>> index 0000000..8961a99
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> @@ -0,0 +1,79 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
>> +
>> +maintainers:
>> +  - Shyam Kumar Thella <sthella@codeaurora.org>
>> +
>> +description: |
>> +  The SDAM provides scratch register space for the PMIC clients. This
>> +  memory can be used by software to store information or communicate
>> +  to/from the PBUS.
>> +
>> +allOf:
>> +  - $ref: "nvmem.yaml#"
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - qcom,spmi-sdam
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  "#address-cells":
>> +    const: 1
>> +
>> +  "#size-cells":
>> +    const: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +patternProperties:
>> +  "^.*@[0-9a-f]+$":
>> +    type: object
>> +
>> +    properties:
>> +      reg:
>> +        maxItems: 1
>> +        description:
>> +          Offset and size in bytes within the storage device.
>> +
>> +      bits:
>> +        maxItems: 1
>> +        items:
>> +          items:
>> +            - minimum: 0
>> +              maximum: 7
>> +              description:
>> +                Offset in bit within the address range specified by 
>> reg.
>> +            - minimum: 1
>> +              description:
>> +                Size in bit within the address range specified by 
>> reg.
>> +
>> +    required:
>> +      - reg
>> +
>> +    additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +      sdam_1: nvram@b000 {
>> +         #address-cells = <1>;
>> +         #size-cells = <1>;
>> +         compatible = "qcom,spmi-sdam";
>> +          reg = <0xb000 0x100>;
>> +
>> +          /* Data cells */
>> +          restart_reason: restart@50 {
> 
> So this register has moved out of the PON register set? What component
> in the system is going to reference this? Should it have a compatible,
> in the same way as "syscon-reboot-mode" does?
This is just an example for using data cells. It is not used in the 
system.
> 
> Regards,
> Bjorn
> 
>> +              reg = <0x50 0x1>;
>> +              bits = <7 2>;
>> +          };
>> +      };
>> +...
>> --
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora 
>> Forum,
>>  a Linux Foundation Collaborative Project
Rob Herring (Arm) Jan. 8, 2020, 4:39 p.m. UTC | #3
On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
> QTI SDAM allows PMIC peripherals to access the shared memory that is
> available on QTI PMICs. Add documentation for it.
> 
> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
> ---
>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79 ++++++++++++++++++++++
>  1 file changed, 79 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> new file mode 100644
> index 0000000..8961a99
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> @@ -0,0 +1,79 @@
> +# SPDX-License-Identifier: GPL-2.0

Dual license new bindings:

(GPL-2.0-only OR BSD-2-Clause)

Please spread the word in QCom. 

> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
> +
> +maintainers:
> +  - Shyam Kumar Thella <sthella@codeaurora.org>
> +
> +description: |
> +  The SDAM provides scratch register space for the PMIC clients. This
> +  memory can be used by software to store information or communicate
> +  to/from the PBUS.
> +
> +allOf:
> +  - $ref: "nvmem.yaml#"
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,spmi-sdam
> +
> +  reg:
> +    maxItems: 1
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1

ranges? The child addresses should be translateable I assume.

> +
> +required:
> +  - compatible
> +  - reg
> +
> +patternProperties:
> +  "^.*@[0-9a-f]+$":
> +    type: object
> +
> +    properties:
> +      reg:
> +        maxItems: 1
> +        description:
> +          Offset and size in bytes within the storage device.
> +
> +      bits:

Needs a type reference. 

> +        maxItems: 1
> +        items:
> +          items:
> +            - minimum: 0
> +              maximum: 7
> +              description:
> +                Offset in bit within the address range specified by reg.
> +            - minimum: 1

max is 7?

> +              description:
> +                Size in bit within the address range specified by reg.
> +
> +    required:
> +      - reg
> +
> +    additionalProperties: false
> +
> +examples:
> +  - |
> +      sdam_1: nvram@b000 {
> +         #address-cells = <1>;
> +         #size-cells = <1>;
> +         compatible = "qcom,spmi-sdam";
> +          reg = <0xb000 0x100>;
> +
> +          /* Data cells */
> +          restart_reason: restart@50 {
> +              reg = <0x50 0x1>;
> +              bits = <7 2>;

How do you have bit 8 in a 1 byte register?

> +          };
> +      };
> +...
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
>  a Linux Foundation Collaborative Project
>
Shyam Kumar Thella Jan. 9, 2020, 10:57 a.m. UTC | #4
On 2020-01-08 22:09, Rob Herring wrote:
> On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
>> QTI SDAM allows PMIC peripherals to access the shared memory that is
>> available on QTI PMICs. Add documentation for it.
>> 
>> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
>> ---
>>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79 
>> ++++++++++++++++++++++
>>  1 file changed, 79 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> 
>> diff --git 
>> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml 
>> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> new file mode 100644
>> index 0000000..8961a99
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> @@ -0,0 +1,79 @@
>> +# SPDX-License-Identifier: GPL-2.0
> 
> Dual license new bindings:
> 
> (GPL-2.0-only OR BSD-2-Clause)
> 
> Please spread the word in QCom.
Sure. I will add Dual license in next patchset.
> 
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
>> +
>> +maintainers:
>> +  - Shyam Kumar Thella <sthella@codeaurora.org>
>> +
>> +description: |
>> +  The SDAM provides scratch register space for the PMIC clients. This
>> +  memory can be used by software to store information or communicate
>> +  to/from the PBUS.
>> +
>> +allOf:
>> +  - $ref: "nvmem.yaml#"
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - qcom,spmi-sdam
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  "#address-cells":
>> +    const: 1
>> +
>> +  "#size-cells":
>> +    const: 1
> 
> ranges? The child addresses should be translateable I assume.
The addresses are not memory mapped on the CPU's address domain. They 
are the SPMI addresses which can be accessed over SPMI controller.
> 
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +patternProperties:
>> +  "^.*@[0-9a-f]+$":
>> +    type: object
>> +
>> +    properties:
>> +      reg:
>> +        maxItems: 1
>> +        description:
>> +          Offset and size in bytes within the storage device.
>> +
>> +      bits:
> 
> Needs a type reference.
Yes. I will add a reference in the next patch set.
> 
>> +        maxItems: 1
>> +        items:
>> +          items:
>> +            - minimum: 0
>> +              maximum: 7
>> +              description:
>> +                Offset in bit within the address range specified by 
>> reg.
>> +            - minimum: 1
> 
> max is 7?
I don't think it is limited to 7 as it is the size within the address 
range specified by reg. If the address range is more than a byte size 
can be more.
> 
>> +              description:
>> +                Size in bit within the address range specified by 
>> reg.
>> +
>> +    required:
>> +      - reg
>> +
>> +    additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +      sdam_1: nvram@b000 {
>> +         #address-cells = <1>;
>> +         #size-cells = <1>;
>> +         compatible = "qcom,spmi-sdam";
>> +          reg = <0xb000 0x100>;
>> +
>> +          /* Data cells */
>> +          restart_reason: restart@50 {
>> +              reg = <0x50 0x1>;
>> +              bits = <7 2>;
> 
> How do you have bit 8 in a 1 byte register?
You are right. Thanks for it. I will correct the example in next patch 
set.
> 
>> +          };
>> +      };
>> +...
>> --
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora 
>> Forum,
>>  a Linux Foundation Collaborative Project
>>
Rob Herring (Arm) Jan. 9, 2020, 3:31 p.m. UTC | #5
On Thu, Jan 9, 2020 at 4:57 AM <sthella@codeaurora.org> wrote:
>
> On 2020-01-08 22:09, Rob Herring wrote:
> > On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
> >> QTI SDAM allows PMIC peripherals to access the shared memory that is
> >> available on QTI PMICs. Add documentation for it.
> >>
> >> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
> >> ---
> >>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79
> >> ++++++++++++++++++++++
> >>  1 file changed, 79 insertions(+)
> >>  create mode 100644
> >> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >>
> >> diff --git
> >> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> new file mode 100644
> >> index 0000000..8961a99
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> @@ -0,0 +1,79 @@
> >> +# SPDX-License-Identifier: GPL-2.0
> >
> > Dual license new bindings:
> >
> > (GPL-2.0-only OR BSD-2-Clause)
> >
> > Please spread the word in QCom.
> Sure. I will add Dual license in next patchset.
> >
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
> >> +
> >> +maintainers:
> >> +  - Shyam Kumar Thella <sthella@codeaurora.org>
> >> +
> >> +description: |
> >> +  The SDAM provides scratch register space for the PMIC clients. This
> >> +  memory can be used by software to store information or communicate
> >> +  to/from the PBUS.
> >> +
> >> +allOf:
> >> +  - $ref: "nvmem.yaml#"
> >> +
> >> +properties:
> >> +  compatible:
> >> +    enum:
> >> +      - qcom,spmi-sdam
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +  "#address-cells":
> >> +    const: 1
> >> +
> >> +  "#size-cells":
> >> +    const: 1
> >
> > ranges? The child addresses should be translateable I assume.
> The addresses are not memory mapped on the CPU's address domain. They
> are the SPMI addresses which can be accessed over SPMI controller.

Doesn't have to be a CPU address. Are the child offsets within the
range defined in the parent 'reg'? If so, then it should have
'ranges'.

> >
> >> +
> >> +required:
> >> +  - compatible
> >> +  - reg
> >> +
> >> +patternProperties:
> >> +  "^.*@[0-9a-f]+$":
> >> +    type: object
> >> +
> >> +    properties:
> >> +      reg:
> >> +        maxItems: 1
> >> +        description:
> >> +          Offset and size in bytes within the storage device.
> >> +
> >> +      bits:
> >
> > Needs a type reference.
> Yes. I will add a reference in the next patch set.
> >
> >> +        maxItems: 1
> >> +        items:
> >> +          items:
> >> +            - minimum: 0
> >> +              maximum: 7
> >> +              description:
> >> +                Offset in bit within the address range specified by
> >> reg.
> >> +            - minimum: 1
> >
> > max is 7?
> I don't think it is limited to 7 as it is the size within the address
> range specified by reg. If the address range is more than a byte size
> can be more.

Then why is the maximum offset 7?

Rob
Shyam Kumar Thella Jan. 10, 2020, 8:54 a.m. UTC | #6
On 2020-01-09 21:01, Rob Herring wrote:
> On Thu, Jan 9, 2020 at 4:57 AM <sthella@codeaurora.org> wrote:
>> 
>> On 2020-01-08 22:09, Rob Herring wrote:
>> > On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
>> >> QTI SDAM allows PMIC peripherals to access the shared memory that is
>> >> available on QTI PMICs. Add documentation for it.
>> >>
>> >> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
>> >> ---
>> >>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79
>> >> ++++++++++++++++++++++
>> >>  1 file changed, 79 insertions(+)
>> >>  create mode 100644
>> >> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >>
>> >> diff --git
>> >> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> new file mode 100644
>> >> index 0000000..8961a99
>> >> --- /dev/null
>> >> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> @@ -0,0 +1,79 @@
>> >> +# SPDX-License-Identifier: GPL-2.0
>> >
>> > Dual license new bindings:
>> >
>> > (GPL-2.0-only OR BSD-2-Clause)
>> >
>> > Please spread the word in QCom.
>> Sure. I will add Dual license in next patchset.
>> >
>> >> +%YAML 1.2
>> >> +---
>> >> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
>> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> >> +
>> >> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
>> >> +
>> >> +maintainers:
>> >> +  - Shyam Kumar Thella <sthella@codeaurora.org>
>> >> +
>> >> +description: |
>> >> +  The SDAM provides scratch register space for the PMIC clients. This
>> >> +  memory can be used by software to store information or communicate
>> >> +  to/from the PBUS.
>> >> +
>> >> +allOf:
>> >> +  - $ref: "nvmem.yaml#"
>> >> +
>> >> +properties:
>> >> +  compatible:
>> >> +    enum:
>> >> +      - qcom,spmi-sdam
>> >> +
>> >> +  reg:
>> >> +    maxItems: 1
>> >> +
>> >> +  "#address-cells":
>> >> +    const: 1
>> >> +
>> >> +  "#size-cells":
>> >> +    const: 1
>> >
>> > ranges? The child addresses should be translateable I assume.
>> The addresses are not memory mapped on the CPU's address domain. They
>> are the SPMI addresses which can be accessed over SPMI controller.
> 
> Doesn't have to be a CPU address. Are the child offsets within the
> range defined in the parent 'reg'? If so, then it should have
> 'ranges'.
Yes the child offsets fall within parent reg's address space.
I will add ranges in the next patch set.
> 
>> >
>> >> +
>> >> +required:
>> >> +  - compatible
>> >> +  - reg
>> >> +
>> >> +patternProperties:
>> >> +  "^.*@[0-9a-f]+$":
>> >> +    type: object
>> >> +
>> >> +    properties:
>> >> +      reg:
>> >> +        maxItems: 1
>> >> +        description:
>> >> +          Offset and size in bytes within the storage device.
>> >> +
>> >> +      bits:
>> >
>> > Needs a type reference.
>> Yes. I will add a reference in the next patch set.
>> >
>> >> +        maxItems: 1
>> >> +        items:
>> >> +          items:
>> >> +            - minimum: 0
>> >> +              maximum: 7
>> >> +              description:
>> >> +                Offset in bit within the address range specified by
>> >> reg.
>> >> +            - minimum: 1
>> >
>> > max is 7?
>> I don't think it is limited to 7 as it is the size within the address
>> range specified by reg. If the address range is more than a byte size
>> can be more.
> 
> Then why is the maximum offset 7?
I see. Offset can be more than 7 within the address range specified in 
case
of data cells with more than a byte. I will remove maximum in the next
patch set.
> 
> Rob
Rob Herring (Arm) Jan. 13, 2020, 3:42 p.m. UTC | #7
On Fri, Jan 10, 2020 at 2:54 AM <sthella@codeaurora.org> wrote:
>
> On 2020-01-09 21:01, Rob Herring wrote:
> > On Thu, Jan 9, 2020 at 4:57 AM <sthella@codeaurora.org> wrote:
> >>
> >> On 2020-01-08 22:09, Rob Herring wrote:
> >> > On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
> >> >> QTI SDAM allows PMIC peripherals to access the shared memory that is
> >> >> available on QTI PMICs. Add documentation for it.
> >> >>
> >> >> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
> >> >> ---
> >> >>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79
> >> >> ++++++++++++++++++++++
> >> >>  1 file changed, 79 insertions(+)
> >> >>  create mode 100644
> >> >> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> >>
> >> >> diff --git
> >> >> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> >> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> >> new file mode 100644
> >> >> index 0000000..8961a99
> >> >> --- /dev/null
> >> >> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
> >> >> @@ -0,0 +1,79 @@
> >> >> +# SPDX-License-Identifier: GPL-2.0
> >> >
> >> > Dual license new bindings:
> >> >
> >> > (GPL-2.0-only OR BSD-2-Clause)
> >> >
> >> > Please spread the word in QCom.
> >> Sure. I will add Dual license in next patchset.
> >> >
> >> >> +%YAML 1.2
> >> >> +---
> >> >> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
> >> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> >> +
> >> >> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
> >> >> +
> >> >> +maintainers:
> >> >> +  - Shyam Kumar Thella <sthella@codeaurora.org>
> >> >> +
> >> >> +description: |
> >> >> +  The SDAM provides scratch register space for the PMIC clients. This
> >> >> +  memory can be used by software to store information or communicate
> >> >> +  to/from the PBUS.
> >> >> +
> >> >> +allOf:
> >> >> +  - $ref: "nvmem.yaml#"
> >> >> +
> >> >> +properties:
> >> >> +  compatible:
> >> >> +    enum:
> >> >> +      - qcom,spmi-sdam
> >> >> +
> >> >> +  reg:
> >> >> +    maxItems: 1
> >> >> +
> >> >> +  "#address-cells":
> >> >> +    const: 1
> >> >> +
> >> >> +  "#size-cells":
> >> >> +    const: 1
> >> >
> >> > ranges? The child addresses should be translateable I assume.
> >> The addresses are not memory mapped on the CPU's address domain. They
> >> are the SPMI addresses which can be accessed over SPMI controller.
> >
> > Doesn't have to be a CPU address. Are the child offsets within the
> > range defined in the parent 'reg'? If so, then it should have
> > 'ranges'.
> Yes the child offsets fall within parent reg's address space.
> I will add ranges in the next patch set.
> >
> >> >
> >> >> +
> >> >> +required:
> >> >> +  - compatible
> >> >> +  - reg
> >> >> +
> >> >> +patternProperties:
> >> >> +  "^.*@[0-9a-f]+$":
> >> >> +    type: object
> >> >> +
> >> >> +    properties:
> >> >> +      reg:
> >> >> +        maxItems: 1
> >> >> +        description:
> >> >> +          Offset and size in bytes within the storage device.
> >> >> +
> >> >> +      bits:
> >> >
> >> > Needs a type reference.
> >> Yes. I will add a reference in the next patch set.
> >> >
> >> >> +        maxItems: 1
> >> >> +        items:
> >> >> +          items:
> >> >> +            - minimum: 0
> >> >> +              maximum: 7
> >> >> +              description:
> >> >> +                Offset in bit within the address range specified by
> >> >> reg.
> >> >> +            - minimum: 1
> >> >
> >> > max is 7?
> >> I don't think it is limited to 7 as it is the size within the address
> >> range specified by reg. If the address range is more than a byte size
> >> can be more.
> >
> > Then why is the maximum offset 7?
> I see. Offset can be more than 7 within the address range specified in
> case
> of data cells with more than a byte. I will remove maximum in the next
> patch set.

That's the wrong thing to do though. If the offset is more than 7, you
should just increase 'reg' value. IOW, 'bits' should only be used to
express bit position up to the minimum alignment of 'reg'. I guess you
could have an unaligned multi-byte field, so I guess this is fine
as-is.

Rob
Shyam Kumar Thella Jan. 14, 2020, 7:07 a.m. UTC | #8
On 2020-01-13 21:12, Rob Herring wrote:
> On Fri, Jan 10, 2020 at 2:54 AM <sthella@codeaurora.org> wrote:
>> 
>> On 2020-01-09 21:01, Rob Herring wrote:
>> > On Thu, Jan 9, 2020 at 4:57 AM <sthella@codeaurora.org> wrote:
>> >>
>> >> On 2020-01-08 22:09, Rob Herring wrote:
>> >> > On Tue, Dec 24, 2019 at 11:02:12AM +0530, Shyam Kumar Thella wrote:
>> >> >> QTI SDAM allows PMIC peripherals to access the shared memory that is
>> >> >> available on QTI PMICs. Add documentation for it.
>> >> >>
>> >> >> Signed-off-by: Shyam Kumar Thella <sthella@codeaurora.org>
>> >> >> ---
>> >> >>  .../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml  | 79
>> >> >> ++++++++++++++++++++++
>> >> >>  1 file changed, 79 insertions(+)
>> >> >>  create mode 100644
>> >> >> Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> >>
>> >> >> diff --git
>> >> >> a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> >> b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> >> new file mode 100644
>> >> >> index 0000000..8961a99
>> >> >> --- /dev/null
>> >> >> +++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
>> >> >> @@ -0,0 +1,79 @@
>> >> >> +# SPDX-License-Identifier: GPL-2.0
>> >> >
>> >> > Dual license new bindings:
>> >> >
>> >> > (GPL-2.0-only OR BSD-2-Clause)
>> >> >
>> >> > Please spread the word in QCom.
>> >> Sure. I will add Dual license in next patchset.
>> >> >
>> >> >> +%YAML 1.2
>> >> >> +---
>> >> >> +$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
>> >> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> >> >> +
>> >> >> +title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
>> >> >> +
>> >> >> +maintainers:
>> >> >> +  - Shyam Kumar Thella <sthella@codeaurora.org>
>> >> >> +
>> >> >> +description: |
>> >> >> +  The SDAM provides scratch register space for the PMIC clients. This
>> >> >> +  memory can be used by software to store information or communicate
>> >> >> +  to/from the PBUS.
>> >> >> +
>> >> >> +allOf:
>> >> >> +  - $ref: "nvmem.yaml#"
>> >> >> +
>> >> >> +properties:
>> >> >> +  compatible:
>> >> >> +    enum:
>> >> >> +      - qcom,spmi-sdam
>> >> >> +
>> >> >> +  reg:
>> >> >> +    maxItems: 1
>> >> >> +
>> >> >> +  "#address-cells":
>> >> >> +    const: 1
>> >> >> +
>> >> >> +  "#size-cells":
>> >> >> +    const: 1
>> >> >
>> >> > ranges? The child addresses should be translateable I assume.
>> >> The addresses are not memory mapped on the CPU's address domain. They
>> >> are the SPMI addresses which can be accessed over SPMI controller.
>> >
>> > Doesn't have to be a CPU address. Are the child offsets within the
>> > range defined in the parent 'reg'? If so, then it should have
>> > 'ranges'.
>> Yes the child offsets fall within parent reg's address space.
>> I will add ranges in the next patch set.
>> >
>> >> >
>> >> >> +
>> >> >> +required:
>> >> >> +  - compatible
>> >> >> +  - reg
>> >> >> +
>> >> >> +patternProperties:
>> >> >> +  "^.*@[0-9a-f]+$":
>> >> >> +    type: object
>> >> >> +
>> >> >> +    properties:
>> >> >> +      reg:
>> >> >> +        maxItems: 1
>> >> >> +        description:
>> >> >> +          Offset and size in bytes within the storage device.
>> >> >> +
>> >> >> +      bits:
>> >> >
>> >> > Needs a type reference.
>> >> Yes. I will add a reference in the next patch set.
>> >> >
>> >> >> +        maxItems: 1
>> >> >> +        items:
>> >> >> +          items:
>> >> >> +            - minimum: 0
>> >> >> +              maximum: 7
>> >> >> +              description:
>> >> >> +                Offset in bit within the address range specified by
>> >> >> reg.
>> >> >> +            - minimum: 1
>> >> >
>> >> > max is 7?
>> >> I don't think it is limited to 7 as it is the size within the address
>> >> range specified by reg. If the address range is more than a byte size
>> >> can be more.
>> >
>> > Then why is the maximum offset 7?
>> I see. Offset can be more than 7 within the address range specified in
>> case
>> of data cells with more than a byte. I will remove maximum in the next
>> patch set.
> 
> That's the wrong thing to do though. If the offset is more than 7, you
> should just increase 'reg' value. IOW, 'bits' should only be used to
> express bit position up to the minimum alignment of 'reg'. I guess you
> could have an unaligned multi-byte field, so I guess this is fine
> as-is.
> 
> Rob
Okay.

Regards,
Shyam
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
new file mode 100644
index 0000000..8961a99
--- /dev/null
+++ b/Documentation/devicetree/bindings/nvmem/qcom,spmi-sdam.yaml
@@ -0,0 +1,79 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. SPMI SDAM DT bindings
+
+maintainers:
+  - Shyam Kumar Thella <sthella@codeaurora.org>
+
+description: |
+  The SDAM provides scratch register space for the PMIC clients. This
+  memory can be used by software to store information or communicate
+  to/from the PBUS.
+
+allOf:
+  - $ref: "nvmem.yaml#"
+
+properties:
+  compatible:
+    enum:
+      - qcom,spmi-sdam
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+
+patternProperties:
+  "^.*@[0-9a-f]+$":
+    type: object
+
+    properties:
+      reg:
+        maxItems: 1
+        description:
+          Offset and size in bytes within the storage device.
+
+      bits:
+        maxItems: 1
+        items:
+          items:
+            - minimum: 0
+              maximum: 7
+              description:
+                Offset in bit within the address range specified by reg.
+            - minimum: 1
+              description:
+                Size in bit within the address range specified by reg.
+
+    required:
+      - reg
+
+    additionalProperties: false
+
+examples:
+  - |
+      sdam_1: nvram@b000 {
+         #address-cells = <1>;
+         #size-cells = <1>;
+         compatible = "qcom,spmi-sdam";
+          reg = <0xb000 0x100>;
+
+          /* Data cells */
+          restart_reason: restart@50 {
+              reg = <0x50 0x1>;
+              bits = <7 2>;
+          };
+      };
+...