Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On 19/07/16 10:17, Joseph Lo wrote: > Add DT binding for the Hardware Synchronization Primitives (HSP). The > HSP is designed for the processors to share resources and communicate > together. It provides a set of hardware synchronization primitives for > interprocessor communication. So the interprocessor communication (IPC) > protocols can use hardware synchronization primitive, when operating > between two processors not in an SMP relationship. > > Signed-off-by: Joseph Lo> --- > Sorry. Please allow me just update the binding patches of this series. > Want to make sure the binding is acceptable first. > Thanks. > > Changes in V3: > - use two cells for mboxes property > Changes in V2: > - revise the compatible string, interrupt-names, interrupts, and #mbox-cells > properties > - remove "nvidia,hsp-function" property > - fix the header file name > - the binding supports the concept of multiple HSP sub-modules on one HSP HW > block now. > --- > .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 > ++ > include/dt-bindings/mailbox/tegra186-hsp.h | 20 + > 2 files changed, 72 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h > > diff --git > a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > new file mode 100644 > index ..a9152380642d > --- /dev/null > +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > @@ -0,0 +1,52 @@ > +NVIDIA Tegra Hardware Synchronization Primitives (HSP) > + > +The HSP modules are used for the processors to share resources and > communicate > +together. It provides a set of hardware synchronization primitives for > +interprocessor communication. So the interprocessor communication (IPC) > +protocols can use hardware synchronization primitives, when operating between > +two processors not in an SMP relationship. > + > +The features that HSP supported are shared mailboxes, shared semaphores, > +arbitrated semaphores and doorbells. > + > +Required properties: > +- name : Should be hsp > +- compatible > +Array of strings. > +one of: > +- "nvidia,tegra186-hsp" > +- reg : Offset and length of the register set for the device. > +- interrupt-names > +Array of strings. > +Contains a list of names for the interrupts described by the interrupt > +property. May contain the following entries, in any order: > +- "doorbell" > +Users of this binding MUST look up entries in the interrupt property > +by name, using this interrupt-names property to do so. > +- interrupts > +Array of interrupt specifiers. > +Must contain one entry per entry in the interrupt-names property, > +in a matching order. > +- #mbox-cells : Should be 2. > + > +The mbox specifier of the "mboxes" property in the client node should > +contain two data. The first one should be the HSP type and the second > +one should be the ID that the client is going to use. Those information > +can be found in the following file. > + > +- . > + > +Example: > + > +hsp_top0: hsp@3c0 { > + compatible = "nvidia,tegra186-hsp"; > + reg = <0x0 0x03c0 0x0 0xa>; > + interrupts = ; > + interrupt-names = "doorbell"; > + #mbox-cells = <2>; > +}; > + > +client { > + ... > + mboxes = <_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>; > +}; > diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h > b/include/dt-bindings/mailbox/tegra186-hsp.h > new file mode 100644 > index ..d1c1432707cd > --- /dev/null > +++ b/include/dt-bindings/mailbox/tegra186-hsp.h > @@ -0,0 +1,20 @@ > +/* > + * This header provides constants for binding nvidia,tegra186-hsp. > + * > + * The number with HSP_DB_MASTER prefix indicates the bit that is > + * associated with a master ID in the doorbell registers. > + */ > + > + > +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H > +#define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H > + > +#define HSP_MBOX_TYPE_DB 0x0 > +#define HSP_MBOX_TYPE_SM 0x1 > +#define HSP_MBOX_TYPE_SS 0x2 > +#define HSP_MBOX_TYPE_AS 0x3 Nit ... may be we should add a comment that describes what the above are? > + > +#define HSP_DB_MASTER_CCPLEX 17 > +#define HSP_DB_MASTER_BPMP 19 Nit ... I would be tempted to move the comment in the header to above these defines, as I missed it on my first pass of this. Otherwise ... Acked-by: Jon Hunter Cheers Jon -- nvpublic
Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On 19/07/16 10:17, Joseph Lo wrote: > Add DT binding for the Hardware Synchronization Primitives (HSP). The > HSP is designed for the processors to share resources and communicate > together. It provides a set of hardware synchronization primitives for > interprocessor communication. So the interprocessor communication (IPC) > protocols can use hardware synchronization primitive, when operating > between two processors not in an SMP relationship. > > Signed-off-by: Joseph Lo > --- > Sorry. Please allow me just update the binding patches of this series. > Want to make sure the binding is acceptable first. > Thanks. > > Changes in V3: > - use two cells for mboxes property > Changes in V2: > - revise the compatible string, interrupt-names, interrupts, and #mbox-cells > properties > - remove "nvidia,hsp-function" property > - fix the header file name > - the binding supports the concept of multiple HSP sub-modules on one HSP HW > block now. > --- > .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 > ++ > include/dt-bindings/mailbox/tegra186-hsp.h | 20 + > 2 files changed, 72 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h > > diff --git > a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > new file mode 100644 > index ..a9152380642d > --- /dev/null > +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > @@ -0,0 +1,52 @@ > +NVIDIA Tegra Hardware Synchronization Primitives (HSP) > + > +The HSP modules are used for the processors to share resources and > communicate > +together. It provides a set of hardware synchronization primitives for > +interprocessor communication. So the interprocessor communication (IPC) > +protocols can use hardware synchronization primitives, when operating between > +two processors not in an SMP relationship. > + > +The features that HSP supported are shared mailboxes, shared semaphores, > +arbitrated semaphores and doorbells. > + > +Required properties: > +- name : Should be hsp > +- compatible > +Array of strings. > +one of: > +- "nvidia,tegra186-hsp" > +- reg : Offset and length of the register set for the device. > +- interrupt-names > +Array of strings. > +Contains a list of names for the interrupts described by the interrupt > +property. May contain the following entries, in any order: > +- "doorbell" > +Users of this binding MUST look up entries in the interrupt property > +by name, using this interrupt-names property to do so. > +- interrupts > +Array of interrupt specifiers. > +Must contain one entry per entry in the interrupt-names property, > +in a matching order. > +- #mbox-cells : Should be 2. > + > +The mbox specifier of the "mboxes" property in the client node should > +contain two data. The first one should be the HSP type and the second > +one should be the ID that the client is going to use. Those information > +can be found in the following file. > + > +- . > + > +Example: > + > +hsp_top0: hsp@3c0 { > + compatible = "nvidia,tegra186-hsp"; > + reg = <0x0 0x03c0 0x0 0xa>; > + interrupts = ; > + interrupt-names = "doorbell"; > + #mbox-cells = <2>; > +}; > + > +client { > + ... > + mboxes = <_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>; > +}; > diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h > b/include/dt-bindings/mailbox/tegra186-hsp.h > new file mode 100644 > index ..d1c1432707cd > --- /dev/null > +++ b/include/dt-bindings/mailbox/tegra186-hsp.h > @@ -0,0 +1,20 @@ > +/* > + * This header provides constants for binding nvidia,tegra186-hsp. > + * > + * The number with HSP_DB_MASTER prefix indicates the bit that is > + * associated with a master ID in the doorbell registers. > + */ > + > + > +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H > +#define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H > + > +#define HSP_MBOX_TYPE_DB 0x0 > +#define HSP_MBOX_TYPE_SM 0x1 > +#define HSP_MBOX_TYPE_SS 0x2 > +#define HSP_MBOX_TYPE_AS 0x3 Nit ... may be we should add a comment that describes what the above are? > + > +#define HSP_DB_MASTER_CCPLEX 17 > +#define HSP_DB_MASTER_BPMP 19 Nit ... I would be tempted to move the comment in the header to above these defines, as I missed it on my first pass of this. Otherwise ... Acked-by: Jon Hunter Cheers Jon -- nvpublic
Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On Tue, Jul 19, 2016 at 05:17:22PM +0800, Joseph Lo wrote: > Add DT binding for the Hardware Synchronization Primitives (HSP). The > HSP is designed for the processors to share resources and communicate > together. It provides a set of hardware synchronization primitives for > interprocessor communication. So the interprocessor communication (IPC) > protocols can use hardware synchronization primitive, when operating > between two processors not in an SMP relationship. > > Signed-off-by: Joseph Lo> --- > Sorry. Please allow me just update the binding patches of this series. > Want to make sure the binding is acceptable first. > Thanks. > > Changes in V3: > - use two cells for mboxes property > Changes in V2: > - revise the compatible string, interrupt-names, interrupts, and #mbox-cells > properties > - remove "nvidia,hsp-function" property > - fix the header file name > - the binding supports the concept of multiple HSP sub-modules on one HSP HW > block now. > --- > .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 > ++ > include/dt-bindings/mailbox/tegra186-hsp.h | 20 + > 2 files changed, 72 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h Acked-by: Rob Herring
Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On Tue, Jul 19, 2016 at 05:17:22PM +0800, Joseph Lo wrote: > Add DT binding for the Hardware Synchronization Primitives (HSP). The > HSP is designed for the processors to share resources and communicate > together. It provides a set of hardware synchronization primitives for > interprocessor communication. So the interprocessor communication (IPC) > protocols can use hardware synchronization primitive, when operating > between two processors not in an SMP relationship. > > Signed-off-by: Joseph Lo > --- > Sorry. Please allow me just update the binding patches of this series. > Want to make sure the binding is acceptable first. > Thanks. > > Changes in V3: > - use two cells for mboxes property > Changes in V2: > - revise the compatible string, interrupt-names, interrupts, and #mbox-cells > properties > - remove "nvidia,hsp-function" property > - fix the header file name > - the binding supports the concept of multiple HSP sub-modules on one HSP HW > block now. > --- > .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 > ++ > include/dt-bindings/mailbox/tegra186-hsp.h | 20 + > 2 files changed, 72 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt > create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h Acked-by: Rob Herring
Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On 07/19/2016 03:17 AM, Joseph Lo wrote: Add DT binding for the Hardware Synchronization Primitives (HSP). The HSP is designed for the processors to share resources and communicate together. It provides a set of hardware synchronization primitives for interprocessor communication. So the interprocessor communication (IPC) protocols can use hardware synchronization primitive, when operating between two processors not in an SMP relationship. Acked-by: Stephen WarrenA couple of nits below that you might want to fix up when posting the final version of the series; your call. diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h + */ + + +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H Nit: There are 2 blank lines there. +#endif /* _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H */ Nit: Personally I hate "filename" comments on the #endif, since it's just one more place to update if the file moves or is copied.
Re: [PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
On 07/19/2016 03:17 AM, Joseph Lo wrote: Add DT binding for the Hardware Synchronization Primitives (HSP). The HSP is designed for the processors to share resources and communicate together. It provides a set of hardware synchronization primitives for interprocessor communication. So the interprocessor communication (IPC) protocols can use hardware synchronization primitive, when operating between two processors not in an SMP relationship. Acked-by: Stephen Warren A couple of nits below that you might want to fix up when posting the final version of the series; your call. diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h + */ + + +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H Nit: There are 2 blank lines there. +#endif /* _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H */ Nit: Personally I hate "filename" comments on the #endif, since it's just one more place to update if the file moves or is copied.
[PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
Add DT binding for the Hardware Synchronization Primitives (HSP). The HSP is designed for the processors to share resources and communicate together. It provides a set of hardware synchronization primitives for interprocessor communication. So the interprocessor communication (IPC) protocols can use hardware synchronization primitive, when operating between two processors not in an SMP relationship. Signed-off-by: Joseph Lo--- Sorry. Please allow me just update the binding patches of this series. Want to make sure the binding is acceptable first. Thanks. Changes in V3: - use two cells for mboxes property Changes in V2: - revise the compatible string, interrupt-names, interrupts, and #mbox-cells properties - remove "nvidia,hsp-function" property - fix the header file name - the binding supports the concept of multiple HSP sub-modules on one HSP HW block now. --- .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 ++ include/dt-bindings/mailbox/tegra186-hsp.h | 20 + 2 files changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt new file mode 100644 index ..a9152380642d --- /dev/null +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt @@ -0,0 +1,52 @@ +NVIDIA Tegra Hardware Synchronization Primitives (HSP) + +The HSP modules are used for the processors to share resources and communicate +together. It provides a set of hardware synchronization primitives for +interprocessor communication. So the interprocessor communication (IPC) +protocols can use hardware synchronization primitives, when operating between +two processors not in an SMP relationship. + +The features that HSP supported are shared mailboxes, shared semaphores, +arbitrated semaphores and doorbells. + +Required properties: +- name : Should be hsp +- compatible +Array of strings. +one of: +- "nvidia,tegra186-hsp" +- reg : Offset and length of the register set for the device. +- interrupt-names +Array of strings. +Contains a list of names for the interrupts described by the interrupt +property. May contain the following entries, in any order: +- "doorbell" +Users of this binding MUST look up entries in the interrupt property +by name, using this interrupt-names property to do so. +- interrupts +Array of interrupt specifiers. +Must contain one entry per entry in the interrupt-names property, +in a matching order. +- #mbox-cells : Should be 2. + +The mbox specifier of the "mboxes" property in the client node should +contain two data. The first one should be the HSP type and the second +one should be the ID that the client is going to use. Those information +can be found in the following file. + +- . + +Example: + +hsp_top0: hsp@3c0 { + compatible = "nvidia,tegra186-hsp"; + reg = <0x0 0x03c0 0x0 0xa>; + interrupts = ; + interrupt-names = "doorbell"; + #mbox-cells = <2>; +}; + +client { + ... + mboxes = <_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>; +}; diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h new file mode 100644 index ..d1c1432707cd --- /dev/null +++ b/include/dt-bindings/mailbox/tegra186-hsp.h @@ -0,0 +1,20 @@ +/* + * This header provides constants for binding nvidia,tegra186-hsp. + * + * The number with HSP_DB_MASTER prefix indicates the bit that is + * associated with a master ID in the doorbell registers. + */ + + +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H +#define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H + +#define HSP_MBOX_TYPE_DB 0x0 +#define HSP_MBOX_TYPE_SM 0x1 +#define HSP_MBOX_TYPE_SS 0x2 +#define HSP_MBOX_TYPE_AS 0x3 + +#define HSP_DB_MASTER_CCPLEX 17 +#define HSP_DB_MASTER_BPMP 19 + +#endif /* _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H */ -- 2.9.2
[PATCH V3 01/10] Documentation: dt-bindings: mailbox: tegra: Add binding for HSP mailbox
Add DT binding for the Hardware Synchronization Primitives (HSP). The HSP is designed for the processors to share resources and communicate together. It provides a set of hardware synchronization primitives for interprocessor communication. So the interprocessor communication (IPC) protocols can use hardware synchronization primitive, when operating between two processors not in an SMP relationship. Signed-off-by: Joseph Lo --- Sorry. Please allow me just update the binding patches of this series. Want to make sure the binding is acceptable first. Thanks. Changes in V3: - use two cells for mboxes property Changes in V2: - revise the compatible string, interrupt-names, interrupts, and #mbox-cells properties - remove "nvidia,hsp-function" property - fix the header file name - the binding supports the concept of multiple HSP sub-modules on one HSP HW block now. --- .../bindings/mailbox/nvidia,tegra186-hsp.txt | 52 ++ include/dt-bindings/mailbox/tegra186-hsp.h | 20 + 2 files changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt create mode 100644 include/dt-bindings/mailbox/tegra186-hsp.h diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt new file mode 100644 index ..a9152380642d --- /dev/null +++ b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt @@ -0,0 +1,52 @@ +NVIDIA Tegra Hardware Synchronization Primitives (HSP) + +The HSP modules are used for the processors to share resources and communicate +together. It provides a set of hardware synchronization primitives for +interprocessor communication. So the interprocessor communication (IPC) +protocols can use hardware synchronization primitives, when operating between +two processors not in an SMP relationship. + +The features that HSP supported are shared mailboxes, shared semaphores, +arbitrated semaphores and doorbells. + +Required properties: +- name : Should be hsp +- compatible +Array of strings. +one of: +- "nvidia,tegra186-hsp" +- reg : Offset and length of the register set for the device. +- interrupt-names +Array of strings. +Contains a list of names for the interrupts described by the interrupt +property. May contain the following entries, in any order: +- "doorbell" +Users of this binding MUST look up entries in the interrupt property +by name, using this interrupt-names property to do so. +- interrupts +Array of interrupt specifiers. +Must contain one entry per entry in the interrupt-names property, +in a matching order. +- #mbox-cells : Should be 2. + +The mbox specifier of the "mboxes" property in the client node should +contain two data. The first one should be the HSP type and the second +one should be the ID that the client is going to use. Those information +can be found in the following file. + +- . + +Example: + +hsp_top0: hsp@3c0 { + compatible = "nvidia,tegra186-hsp"; + reg = <0x0 0x03c0 0x0 0xa>; + interrupts = ; + interrupt-names = "doorbell"; + #mbox-cells = <2>; +}; + +client { + ... + mboxes = <_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>; +}; diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h new file mode 100644 index ..d1c1432707cd --- /dev/null +++ b/include/dt-bindings/mailbox/tegra186-hsp.h @@ -0,0 +1,20 @@ +/* + * This header provides constants for binding nvidia,tegra186-hsp. + * + * The number with HSP_DB_MASTER prefix indicates the bit that is + * associated with a master ID in the doorbell registers. + */ + + +#ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H +#define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H + +#define HSP_MBOX_TYPE_DB 0x0 +#define HSP_MBOX_TYPE_SM 0x1 +#define HSP_MBOX_TYPE_SS 0x2 +#define HSP_MBOX_TYPE_AS 0x3 + +#define HSP_DB_MASTER_CCPLEX 17 +#define HSP_DB_MASTER_BPMP 19 + +#endif /* _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H */ -- 2.9.2