aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-02 12:13:58 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-02 12:13:58 -0400
commitc9733c79f411b5df63f3dfd494fc37636a4d8fba (patch)
treed3800ccbdf9e97952416b371d0ac860b7a627071
parent6885a7f1ed88607cc9945bb106474ecfecb8e59b (diff)
parenteafaebd987fcd001e2c123c050939a29c625d673 (diff)
Merge tag 'hsi-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi into next
Pull HSI (High Speed Syncronous Interface) changes from Sebastian Reichel: "Please pull the following changes for the HSI subsystem, which I have taken over from Carlos Chinea <carlos.chinea@nokia.com>. The below patches have been worked on in the linux-omap mailinglist for 10 months and are well tested in linux-next (have been in there for more than two weeks) without any problems arising. Apart from that potential regressions are very limited, because the subsystem is not yet used by any platform in the mainline kernel. - Add some documentation for the HSI subsystem - Add Device Tree support for the HSI subsystem - Add OMAP3 SSI driver (SSI is a legacy variant of HSI) - Add Nokia N900 Modem driver (without speech support for now)" * tag 'hsi-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: HSI: Introduce Nokia N900 modem driver HSI: Introduce driver for SSI Protocol Documentation: DT: omap-ssi binding documentation HSI: Introduce OMAP SSI driver HSI: Add common DT binding for HSI client devices HSI: export method to (un)register clients HSI: Add channel resource support to HSI clients HSI: method to unregister clients from an hsi port HSI: hsi-char: fix driver for multiport scenarios MAINTAINERS: update HSI entry Documentation: HSI: Add some general description for the HSI subsystem
-rw-r--r--Documentation/devicetree/bindings/hsi/client-devices.txt44
-rw-r--r--Documentation/devicetree/bindings/hsi/nokia-modem.txt57
-rw-r--r--Documentation/devicetree/bindings/hsi/omap-ssi.txt97
-rw-r--r--Documentation/hsi.txt75
-rw-r--r--MAINTAINERS4
-rw-r--r--drivers/hsi/Kconfig1
-rw-r--r--drivers/hsi/Makefile1
-rw-r--r--drivers/hsi/clients/Kconfig17
-rw-r--r--drivers/hsi/clients/Makefile4
-rw-r--r--drivers/hsi/clients/hsi_char.c14
-rw-r--r--drivers/hsi/clients/nokia-modem.c285
-rw-r--r--drivers/hsi/clients/ssi_protocol.c1191
-rw-r--r--drivers/hsi/controllers/Kconfig19
-rw-r--r--drivers/hsi/controllers/Makefile6
-rw-r--r--drivers/hsi/controllers/omap_ssi.c625
-rw-r--r--drivers/hsi/controllers/omap_ssi.h166
-rw-r--r--drivers/hsi/controllers/omap_ssi_port.c1399
-rw-r--r--drivers/hsi/controllers/omap_ssi_regs.h171
-rw-r--r--drivers/hsi/hsi.c275
-rw-r--r--include/linux/hsi/hsi.h39
-rw-r--r--include/linux/hsi/ssi_protocol.h42
21 files changed, 4513 insertions, 19 deletions
diff --git a/Documentation/devicetree/bindings/hsi/client-devices.txt b/Documentation/devicetree/bindings/hsi/client-devices.txt
new file mode 100644
index 000000000000..104c9a3e57a4
--- /dev/null
+++ b/Documentation/devicetree/bindings/hsi/client-devices.txt
@@ -0,0 +1,44 @@
1Each HSI port is supposed to have one child node, which
2symbols the remote device connected to the HSI port. The
3following properties are standardized for HSI clients:
4
5Required HSI configuration properties:
6
7- hsi-channel-ids: A list of channel ids
8
9- hsi-rx-mode: Receiver Bit transmission mode ("stream" or "frame")
10- hsi-tx-mode: Transmitter Bit transmission mode ("stream" or "frame")
11- hsi-mode: May be used instead hsi-rx-mode and hsi-tx-mode if
12 the transmission mode is the same for receiver and
13 transmitter
14- hsi-speed-kbps: Max bit transmission speed in kbit/s
15- hsi-flow: RX flow type ("synchronized" or "pipeline")
16- hsi-arb-mode: Arbitration mode for TX frame ("round-robin", "priority")
17
18Optional HSI configuration properties:
19
20- hsi-channel-names: A list with one name per channel specified in the
21 hsi-channel-ids property
22
23
24Device Tree node example for an HSI client:
25
26hsi-controller {
27 hsi-port {
28 modem: hsi-client {
29 compatible = "nokia,n900-modem";
30
31 hsi-channel-ids = <0>, <1>, <2>, <3>;
32 hsi-channel-names = "mcsaab-control",
33 "speech-control",
34 "speech-data",
35 "mcsaab-data";
36 hsi-speed-kbps = <55000>;
37 hsi-mode = "frame";
38 hsi-flow = "synchronized";
39 hsi-arb-mode = "round-robin";
40
41 /* more client specific properties */
42 };
43 };
44};
diff --git a/Documentation/devicetree/bindings/hsi/nokia-modem.txt b/Documentation/devicetree/bindings/hsi/nokia-modem.txt
new file mode 100644
index 000000000000..8a979780452b
--- /dev/null
+++ b/Documentation/devicetree/bindings/hsi/nokia-modem.txt
@@ -0,0 +1,57 @@
1Nokia modem client bindings
2
3The Nokia modem HSI client follows the common HSI client binding
4and inherits all required properties. The following additional
5properties are needed by the Nokia modem HSI client:
6
7Required properties:
8- compatible: Should be one of
9 "nokia,n900-modem"
10- hsi-channel-names: Should contain the following strings
11 "mcsaab-control"
12 "speech-control"
13 "speech-data"
14 "mcsaab-data"
15- gpios: Should provide a GPIO handler for each GPIO listed in
16 gpio-names
17- gpio-names: Should contain the following strings
18 "cmt_apeslpx"
19 "cmt_rst_rq"
20 "cmt_en"
21 "cmt_rst"
22 "cmt_bsi"
23- interrupts: Should be IRQ handle for modem's reset indication
24
25Example:
26
27&ssi_port {
28 modem: hsi-client {
29 compatible = "nokia,n900-modem";
30
31 pinctrl-names = "default";
32 pinctrl-0 = <&modem_pins>;
33
34 hsi-channel-ids = <0>, <1>, <2>, <3>;
35 hsi-channel-names = "mcsaab-control",
36 "speech-control",
37 "speech-data",
38 "mcsaab-data";
39 hsi-speed-kbps = <55000>;
40 hsi-mode = "frame";
41 hsi-flow = "synchronized";
42 hsi-arb-mode = "round-robin";
43
44 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
45
46 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
47 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
48 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
49 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
50 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
51 gpio-names = "cmt_apeslpx",
52 "cmt_rst_rq",
53 "cmt_en",
54 "cmt_rst",
55 "cmt_bsi";
56 };
57};
diff --git a/Documentation/devicetree/bindings/hsi/omap-ssi.txt b/Documentation/devicetree/bindings/hsi/omap-ssi.txt
new file mode 100644
index 000000000000..f26625e42693
--- /dev/null
+++ b/Documentation/devicetree/bindings/hsi/omap-ssi.txt
@@ -0,0 +1,97 @@
1OMAP SSI controller bindings
2
3OMAP Synchronous Serial Interface (SSI) controller implements a legacy
4variant of MIPI's High Speed Synchronous Serial Interface (HSI).
5
6Required properties:
7- compatible: Should include "ti,omap3-ssi".
8- reg-names: Contains the values "sys" and "gdd" (in this order).
9- reg: Contains a matching register specifier for each entry
10 in reg-names.
11- interrupt-names: Contains the value "gdd_mpu".
12- interrupts: Contains matching interrupt information for each entry
13 in interrupt-names.
14- ranges: Represents the bus address mapping between the main
15 controller node and the child nodes below.
16- clock-names: Must include the following entries:
17 "ssi_ssr_fck": The OMAP clock of that name
18 "ssi_sst_fck": The OMAP clock of that name
19 "ssi_ick": The OMAP clock of that name
20- clocks: Contains a matching clock specifier for each entry in
21 clock-names.
22- #address-cells: Should be set to <1>
23- #size-cells: Should be set to <1>
24
25Each port is represented as a sub-node of the ti,omap3-ssi device.
26
27Required Port sub-node properties:
28- compatible: Should be set to the following value
29 ti,omap3-ssi-port (applicable to OMAP34xx devices)
30- reg-names: Contains the values "tx" and "rx" (in this order).
31- reg: Contains a matching register specifier for each entry
32 in reg-names.
33- interrupt-parent Should be a phandle for the interrupt controller
34- interrupts: Should contain interrupt specifiers for mpu interrupts
35 0 and 1 (in this order).
36- ti,ssi-cawake-gpio: Defines which GPIO pin is used to signify CAWAKE
37 events for the port. This is an optional board-specific
38 property. If it's missing the port will not be
39 enabled.
40
41Example for Nokia N900:
42
43ssi-controller@48058000 {
44 compatible = "ti,omap3-ssi";
45
46 /* needed until hwmod is updated to use the compatible string */
47 ti,hwmods = "ssi";
48
49 reg = <0x48058000 0x1000>,
50 <0x48059000 0x1000>;
51 reg-names = "sys",