diff options
author | Olof Johansson <olof@lixom.net> | 2018-07-26 03:12:56 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2018-07-26 03:12:56 -0400 |
commit | 1ca8c0a763418d7f15f5d1d13c3005b6d3a083db (patch) | |
tree | 0072c1d2c7c9986fac133d2dcff096be9810e273 | |
parent | 92f06c384b4950d1fc9e7177dd722a45c28a07f9 (diff) | |
parent | 4625210899095195600062ff8542f37a1c9f5dd4 (diff) |
Merge tag 'soc-fsl-for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into next/drivers
Various updates to soc/fsl for 4.19
Moves DPAA2 DPIO driver from staging to fsl/soc
Adds multiple-pin support to QE gpio driver
* tag 'soc-fsl-for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux:
soc: fsl: cleanup Kconfig menu
soc: fsl: dpio: Convert DPIO documentation to .rst
staging: fsl-mc: Remove remaining files
staging: fsl-mc: Move DPIO from staging to drivers/soc/fsl
staging: fsl-dpaa2: eth: move generic FD defines to DPIO
soc: fsl: qe: gpio: Add qe_gpio_set_multiple
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | Documentation/networking/dpaa2/dpio-driver.rst (renamed from drivers/staging/fsl-mc/bus/dpio/dpio-driver.txt) | 29 | ||||
-rw-r--r-- | Documentation/networking/dpaa2/index.rst | 1 | ||||
-rw-r--r-- | MAINTAINERS | 2 | ||||
-rw-r--r-- | drivers/crypto/caam/sg_sw_qm2.h | 2 | ||||
-rw-r--r-- | drivers/crypto/caam/sg_sw_sec4.h | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/Kconfig | 15 | ||||
-rw-r--r-- | drivers/soc/fsl/Makefile | 1 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/Makefile (renamed from drivers/staging/fsl-mc/bus/dpio/Makefile) | 0 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/dpio-cmd.h (renamed from drivers/staging/fsl-mc/bus/dpio/dpio-cmd.h) | 0 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/dpio-driver.c (renamed from drivers/staging/fsl-mc/bus/dpio/dpio-driver.c) | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/dpio-service.c (renamed from drivers/staging/fsl-mc/bus/dpio/dpio-service.c) | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/dpio.c (renamed from drivers/staging/fsl-mc/bus/dpio/dpio.c) | 0 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/dpio.h (renamed from drivers/staging/fsl-mc/bus/dpio/dpio.h) | 0 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/qbman-portal.c (renamed from drivers/staging/fsl-mc/bus/dpio/qbman-portal.c) | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/qbman-portal.h (renamed from drivers/staging/fsl-mc/bus/dpio/qbman-portal.h) | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/qbman/Kconfig | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/qe/Kconfig | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/qe/gpio.c | 28 | ||||
-rw-r--r-- | drivers/staging/Kconfig | 2 | ||||
-rw-r--r-- | drivers/staging/Makefile | 1 | ||||
-rw-r--r-- | drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | 4 | ||||
-rw-r--r-- | drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h | 22 | ||||
-rw-r--r-- | drivers/staging/fsl-mc/Kconfig | 2 | ||||
-rw-r--r-- | drivers/staging/fsl-mc/Makefile | 3 | ||||
-rw-r--r-- | drivers/staging/fsl-mc/bus/Kconfig | 16 | ||||
-rw-r--r-- | drivers/staging/fsl-mc/bus/Makefile | 9 | ||||
-rw-r--r-- | include/soc/fsl/dpaa2-fd.h (renamed from drivers/staging/fsl-mc/include/dpaa2-fd.h) | 12 | ||||
-rw-r--r-- | include/soc/fsl/dpaa2-global.h (renamed from drivers/staging/fsl-mc/include/dpaa2-global.h) | 0 | ||||
-rw-r--r-- | include/soc/fsl/dpaa2-io.h (renamed from drivers/staging/fsl-mc/include/dpaa2-io.h) | 0 |
29 files changed, 100 insertions, 63 deletions
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.txt b/Documentation/networking/dpaa2/dpio-driver.rst index 72ba9da3d179..13588104161b 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.txt +++ b/Documentation/networking/dpaa2/dpio-driver.rst | |||
@@ -1,7 +1,15 @@ | |||
1 | Copyright 2016 NXP | 1 | .. include:: <isonum.txt> |
2 | |||
3 | DPAA2 DPIO (Data Path I/O) Overview | ||
4 | =================================== | ||
5 | |||
6 | :Copyright: |copy| 2016-2018 NXP | ||
7 | |||
8 | This document provides an overview of the Freescale DPAA2 DPIO | ||
9 | drivers | ||
2 | 10 | ||
3 | Introduction | 11 | Introduction |
4 | ------------ | 12 | ============ |
5 | 13 | ||
6 | A DPAA2 DPIO (Data Path I/O) is a hardware object that provides | 14 | A DPAA2 DPIO (Data Path I/O) is a hardware object that provides |
7 | interfaces to enqueue and dequeue frames to/from network interfaces | 15 | interfaces to enqueue and dequeue frames to/from network interfaces |
@@ -27,8 +35,11 @@ provides services that: | |||
27 | 35 | ||
28 | The Linux DPIO driver consists of 3 primary components-- | 36 | The Linux DPIO driver consists of 3 primary components-- |
29 | DPIO object driver-- fsl-mc driver that manages the DPIO object | 37 | DPIO object driver-- fsl-mc driver that manages the DPIO object |
38 | |||
30 | DPIO service-- provides APIs to other Linux drivers for services | 39 | DPIO service-- provides APIs to other Linux drivers for services |
40 | |||
31 | QBman portal interface-- sends portal commands, gets responses | 41 | QBman portal interface-- sends portal commands, gets responses |
42 | :: | ||
32 | 43 | ||
33 | fsl-mc other | 44 | fsl-mc other |
34 | bus drivers | 45 | bus drivers |
@@ -45,8 +56,9 @@ The Linux DPIO driver consists of 3 primary components-- | |||
45 | | | 56 | | |
46 | hardware | 57 | hardware |
47 | 58 | ||
59 | |||
48 | The diagram below shows how the DPIO driver components fit with the other | 60 | The diagram below shows how the DPIO driver components fit with the other |
49 | DPAA2 Linux driver components: | 61 | DPAA2 Linux driver components:: |
50 | +------------+ | 62 | +------------+ |
51 | | OS Network | | 63 | | OS Network | |
52 | | Stack | | 64 | | Stack | |
@@ -98,20 +110,29 @@ DPIO service (dpio-service.c, dpaa2-io.h) | |||
98 | 110 | ||
99 | Notification handling | 111 | Notification handling |
100 | dpaa2_io_service_register() | 112 | dpaa2_io_service_register() |
113 | |||
101 | dpaa2_io_service_deregister() | 114 | dpaa2_io_service_deregister() |
115 | |||
102 | dpaa2_io_service_rearm() | 116 | dpaa2_io_service_rearm() |
103 | 117 | ||
104 | Queuing | 118 | Queuing |
105 | dpaa2_io_service_pull_fq() | 119 | dpaa2_io_service_pull_fq() |
120 | |||
106 | dpaa2_io_service_pull_channel() | 121 | dpaa2_io_service_pull_channel() |
122 | |||
107 | dpaa2_io_service_enqueue_fq() | 123 | dpaa2_io_service_enqueue_fq() |
124 | |||
108 | dpaa2_io_service_enqueue_qd() | 125 | dpaa2_io_service_enqueue_qd() |
126 | |||
109 | dpaa2_io_store_create() | 127 | dpaa2_io_store_create() |
128 | |||
110 | dpaa2_io_store_destroy() | 129 | dpaa2_io_store_destroy() |
130 | |||
111 | dpaa2_io_store_next() | 131 | dpaa2_io_store_next() |
112 | 132 | ||
113 | Buffer pool management | 133 | Buffer pool management |
114 | dpaa2_io_service_release() | 134 | dpaa2_io_service_release() |
135 | |||
115 | dpaa2_io_service_acquire() | 136 | dpaa2_io_service_acquire() |
116 | 137 | ||
117 | QBman portal interface (qbman-portal.c) | 138 | QBman portal interface (qbman-portal.c) |
@@ -120,7 +141,9 @@ QBman portal interface (qbman-portal.c) | |||
120 | The qbman-portal component provides APIs to do the low level hardware | 141 | The qbman-portal component provides APIs to do the low level hardware |
121 | bit twiddling for operations such as: | 142 | bit twiddling for operations such as: |
122 | -initializing Qman software portals | 143 | -initializing Qman software portals |
144 | |||
123 | -building and sending portal commands | 145 | -building and sending portal commands |
146 | |||
124 | -portal interrupt configuration and processing | 147 | -portal interrupt configuration and processing |
125 | 148 | ||
126 | The qbman-portal APIs are not public to other drivers, and are | 149 | The qbman-portal APIs are not public to other drivers, and are |
diff --git a/Documentation/networking/dpaa2/index.rst b/Documentation/networking/dpaa2/index.rst index 4c6586c87969..10bea113a7bc 100644 --- a/Documentation/networking/dpaa2/index.rst +++ b/Documentation/networking/dpaa2/index.rst | |||
@@ -6,3 +6,4 @@ DPAA2 Documentation | |||
6 | :maxdepth: 1 | 6 | :maxdepth: 1 |
7 | 7 | ||
8 | overview | 8 | overview |
9 | dpio-driver | ||
diff --git a/MAINTAINERS b/MAINTAINERS index 07d1576fc766..24fbe6583b02 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -4418,7 +4418,7 @@ DPAA2 DATAPATH I/O (DPIO) DRIVER | |||
4418 | M: Roy Pledge <Roy.Pledge@nxp.com> | 4418 | M: Roy Pledge <Roy.Pledge@nxp.com> |
4419 | L: linux-kernel@vger.kernel.org | 4419 | L: linux-kernel@vger.kernel.org |
4420 | S: Maintained | 4420 | S: Maintained |
4421 | F: drivers/staging/fsl-mc/bus/dpio | 4421 | F: drivers/soc/fsl/dpio |
4422 | 4422 | ||
4423 | DPAA2 ETHERNET DRIVER | 4423 | DPAA2 ETHERNET DRIVER |
4424 | M: Ioana Radulescu <ruxandra.radulescu@nxp.com> | 4424 | M: Ioana Radulescu <ruxandra.radulescu@nxp.com> |
diff --git a/drivers/crypto/caam/sg_sw_qm2.h b/drivers/crypto/caam/sg_sw_qm2.h index 31b440757146..b5b4c12179df 100644 --- a/drivers/crypto/caam/sg_sw_qm2.h +++ b/drivers/crypto/caam/sg_sw_qm2.h | |||
@@ -35,7 +35,7 @@ | |||
35 | #ifndef _SG_SW_QM2_H_ | 35 | #ifndef _SG_SW_QM2_H_ |
36 | #define _SG_SW_QM2_H_ | 36 | #define _SG_SW_QM2_H_ |
37 | 37 | ||
38 | #include "../../../drivers/staging/fsl-mc/include/dpaa2-fd.h" | 38 | #include <soc/fsl/dpaa2-fd.h> |
39 | 39 | ||
40 | static inline void dma_to_qm_sg_one(struct dpaa2_sg_entry *qm_sg_ptr, | 40 | static inline void dma_to_qm_sg_one(struct dpaa2_sg_entry *qm_sg_ptr, |
41 | dma_addr_t dma, u32 len, u16 offset) | 41 | dma_addr_t dma, u32 len, u16 offset) |
diff --git a/drivers/crypto/caam/sg_sw_sec4.h b/drivers/crypto/caam/sg_sw_sec4.h index e586ffab8358..dbfa9fce33e0 100644 --- a/drivers/crypto/caam/sg_sw_sec4.h +++ b/drivers/crypto/caam/sg_sw_sec4.h | |||
@@ -12,7 +12,7 @@ | |||
12 | #include "ctrl.h" | 12 | #include "ctrl.h" |
13 | #include "regs.h" | 13 | #include "regs.h" |
14 | #include "sg_sw_qm2.h" | 14 | #include "sg_sw_qm2.h" |
15 | #include "../../../drivers/staging/fsl-mc/include/dpaa2-fd.h" | 15 | #include <soc/fsl/dpaa2-fd.h> |
16 | 16 | ||
17 | struct sec4_sg_entry { | 17 | struct sec4_sg_entry { |
18 | u64 ptr; | 18 | u64 ptr; |
diff --git a/drivers/soc/fsl/Kconfig b/drivers/soc/fsl/Kconfig index 7a9fb9baa66d..8f80e8bbf29e 100644 --- a/drivers/soc/fsl/Kconfig +++ b/drivers/soc/fsl/Kconfig | |||
@@ -1,7 +1,9 @@ | |||
1 | # | 1 | # |
2 | # Freescale SOC drivers | 2 | # NXP/Freescale QorIQ series SOC drivers |
3 | # | 3 | # |
4 | 4 | ||
5 | menu "NXP/Freescale QorIQ SoC drivers" | ||
6 | |||
5 | source "drivers/soc/fsl/qbman/Kconfig" | 7 | source "drivers/soc/fsl/qbman/Kconfig" |
6 | source "drivers/soc/fsl/qe/Kconfig" | 8 | source "drivers/soc/fsl/qe/Kconfig" |
7 | 9 | ||
@@ -16,3 +18,14 @@ config FSL_GUTS | |||
16 | Initially only reading SVR and registering soc device are supported. | 18 | Initially only reading SVR and registering soc device are supported. |
17 | Other guts accesses, such as reading RCW, should eventually be moved | 19 | Other guts accesses, such as reading RCW, should eventually be moved |
18 | into this driver as well. | 20 | into this driver as well. |
21 | |||
22 | config FSL_MC_DPIO | ||
23 | tristate "QorIQ DPAA2 DPIO driver" | ||
24 | depends on FSL_MC_BUS | ||
25 | help | ||
26 | Driver for the DPAA2 DPIO object. A DPIO provides queue and | ||
27 | buffer management facilities for software to interact with | ||
28 | other DPAA2 objects. This driver does not expose the DPIO | ||
29 | objects individually, but groups them under a service layer | ||
30 | API. | ||
31 | endmenu | ||
diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile index 44b3bebef24a..803ef1bfb5ff 100644 --- a/drivers/soc/fsl/Makefile +++ b/drivers/soc/fsl/Makefile | |||
@@ -6,3 +6,4 @@ obj-$(CONFIG_FSL_DPAA) += qbman/ | |||
6 | obj-$(CONFIG_QUICC_ENGINE) += qe/ | 6 | obj-$(CONFIG_QUICC_ENGINE) += qe/ |
7 | obj-$(CONFIG_CPM) += qe/ | 7 | obj-$(CONFIG_CPM) += qe/ |
8 | obj-$(CONFIG_FSL_GUTS) += guts.o | 8 | obj-$(CONFIG_FSL_GUTS) += guts.o |
9 | obj-$(CONFIG_FSL_MC_DPIO) += dpio/ | ||
diff --git a/drivers/staging/fsl-mc/bus/dpio/Makefile b/drivers/soc/fsl/dpio/Makefile index b9ff24c76582..b9ff24c76582 100644 --- a/drivers/staging/fsl-mc/bus/dpio/Makefile +++ b/drivers/soc/fsl/dpio/Makefile | |||
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-cmd.h b/drivers/soc/fsl/dpio/dpio-cmd.h index ab8f82ee7ee5..ab8f82ee7ee5 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio-cmd.h +++ b/drivers/soc/fsl/dpio/dpio-cmd.h | |||
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c b/drivers/soc/fsl/dpio/dpio-driver.c index 11a90a90d827..b60b77bfaffa 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c +++ b/drivers/soc/fsl/dpio/dpio-driver.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | 17 | ||
18 | #include <linux/fsl/mc.h> | 18 | #include <linux/fsl/mc.h> |
19 | #include "../../include/dpaa2-io.h" | 19 | #include <soc/fsl/dpaa2-io.h> |
20 | 20 | ||
21 | #include "qbman-portal.h" | 21 | #include "qbman-portal.h" |
22 | #include "dpio.h" | 22 | #include "dpio.h" |
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c b/drivers/soc/fsl/dpio/dpio-service.c index 14ed2beb7432..9b17f72349ed 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio-service.c +++ b/drivers/soc/fsl/dpio/dpio-service.c | |||
@@ -6,7 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
8 | #include <linux/fsl/mc.h> | 8 | #include <linux/fsl/mc.h> |
9 | #include "../../include/dpaa2-io.h" | 9 | #include <soc/fsl/dpaa2-io.h> |
10 | #include <linux/init.h> | 10 | #include <linux/init.h> |
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio.c b/drivers/soc/fsl/dpio/dpio.c index ff37c80e11a0..ff37c80e11a0 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio.c +++ b/drivers/soc/fsl/dpio/dpio.c | |||
diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio.h b/drivers/soc/fsl/dpio/dpio.h index 49194c8e45f1..49194c8e45f1 100644 --- a/drivers/staging/fsl-mc/bus/dpio/dpio.h +++ b/drivers/soc/fsl/dpio/dpio.h | |||
diff --git a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c b/drivers/soc/fsl/dpio/qbman-portal.c index 116fafb28640..cf1d448ea468 100644 --- a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c +++ b/drivers/soc/fsl/dpio/qbman-portal.c | |||
@@ -8,7 +8,7 @@ | |||
8 | #include <asm/cacheflush.h> | 8 | #include <asm/cacheflush.h> |
9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
11 | #include "../../include/dpaa2-global.h" | 11 | #include <soc/fsl/dpaa2-global.h> |
12 | 12 | ||
13 | #include "qbman-portal.h" | 13 | #include "qbman-portal.h" |
14 | 14 | ||
diff --git a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.h b/drivers/soc/fsl/dpio/qbman-portal.h index 69db3c818742..89d1dd9969b6 100644 --- a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.h +++ b/drivers/soc/fsl/dpio/qbman-portal.h | |||
@@ -7,7 +7,7 @@ | |||
7 | #ifndef __FSL_QBMAN_PORTAL_H | 7 | #ifndef __FSL_QBMAN_PORTAL_H |
8 | #define __FSL_QBMAN_PORTAL_H | 8 | #define __FSL_QBMAN_PORTAL_H |
9 | 9 | ||
10 | #include "../../include/dpaa2-fd.h" | 10 | #include <soc/fsl/dpaa2-fd.h> |
11 | 11 | ||
12 | struct dpaa2_dq; | 12 | struct dpaa2_dq; |
13 | struct qbman_swp; | 13 | struct qbman_swp; |
diff --git a/drivers/soc/fsl/qbman/Kconfig b/drivers/soc/fsl/qbman/Kconfig index fb4e6bf0a0c4..d570cb5fd381 100644 --- a/drivers/soc/fsl/qbman/Kconfig +++ b/drivers/soc/fsl/qbman/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | menuconfig FSL_DPAA | 1 | menuconfig FSL_DPAA |
2 | bool "Freescale DPAA 1.x support" | 2 | bool "QorIQ DPAA1 framework support" |
3 | depends on (FSL_SOC_BOOKE || ARCH_LAYERSCAPE) | 3 | depends on (FSL_SOC_BOOKE || ARCH_LAYERSCAPE) |
4 | select GENERIC_ALLOCATOR | 4 | select GENERIC_ALLOCATOR |
5 | help | 5 | help |
diff --git a/drivers/soc/fsl/qe/Kconfig b/drivers/soc/fsl/qe/Kconfig index 73a2e08b47ef..fabba17e9d65 100644 --- a/drivers/soc/fsl/qe/Kconfig +++ b/drivers/soc/fsl/qe/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | config QUICC_ENGINE | 5 | config QUICC_ENGINE |
6 | bool "Freescale QUICC Engine (QE) Support" | 6 | bool "QUICC Engine (QE) framework support" |
7 | depends on FSL_SOC && PPC32 | 7 | depends on FSL_SOC && PPC32 |
8 | select GENERIC_ALLOCATOR | 8 | select GENERIC_ALLOCATOR |
9 | select CRC32 | 9 | select CRC32 |
diff --git a/drivers/soc/fsl/qe/gpio.c b/drivers/soc/fsl/qe/gpio.c index 3b27075c21a7..819bed0f5667 100644 --- a/drivers/soc/fsl/qe/gpio.c +++ b/drivers/soc/fsl/qe/gpio.c | |||
@@ -83,6 +83,33 @@ static void qe_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) | |||
83 | spin_unlock_irqrestore(&qe_gc->lock, flags); | 83 | spin_unlock_irqrestore(&qe_gc->lock, flags); |
84 | } | 84 | } |
85 | 85 | ||
86 | static void qe_gpio_set_multiple(struct gpio_chip *gc, | ||
87 | unsigned long *mask, unsigned long *bits) | ||
88 | { | ||
89 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
90 | struct qe_gpio_chip *qe_gc = gpiochip_get_data(gc); | ||
91 | struct qe_pio_regs __iomem *regs = mm_gc->regs; | ||
92 | unsigned long flags; | ||
93 | int i; | ||
94 | |||
95 | spin_lock_irqsave(&qe_gc->lock, flags); | ||
96 | |||
97 | for (i = 0; i < gc->ngpio; i++) { | ||
98 | if (*mask == 0) | ||
99 | break; | ||
100 | if (__test_and_clear_bit(i, mask)) { | ||
101 | if (test_bit(i, bits)) | ||
102 | qe_gc->cpdata |= (1U << (QE_PIO_PINS - 1 - i)); | ||
103 | else | ||
104 | qe_gc->cpdata &= ~(1U << (QE_PIO_PINS - 1 - i)); | ||
105 | } | ||
106 | } | ||
107 | |||
108 | out_be32(®s->cpdata, qe_gc->cpdata); | ||
109 | |||
110 | spin_unlock_irqrestore(&qe_gc->lock, flags); | ||
111 | } | ||
112 | |||
86 | static int qe_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) | 113 | static int qe_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) |
87 | { | 114 | { |
88 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | 115 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); |
@@ -298,6 +325,7 @@ static int __init qe_add_gpiochips(void) | |||
298 | gc->direction_output = qe_gpio_dir_out; | 325 | gc->direction_output = qe_gpio_dir_out; |
299 | gc->get = qe_gpio_get; | 326 | gc->get = qe_gpio_get; |
300 | gc->set = qe_gpio_set; | 327 | gc->set = qe_gpio_set; |
328 | gc->set_multiple = qe_gpio_set_multiple; | ||
301 | 329 | ||
302 | ret = of_mm_gpiochip_add_data(np, mm_gc, qe_gc); | 330 | ret = of_mm_gpiochip_add_data(np, mm_gc, qe_gc); |
303 | if (ret) | 331 | if (ret) |
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 75a480497d22..47b61c351838 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig | |||
@@ -92,8 +92,6 @@ source "drivers/staging/clocking-wizard/Kconfig" | |||
92 | 92 | ||
93 | source "drivers/staging/fbtft/Kconfig" | 93 | source "drivers/staging/fbtft/Kconfig" |
94 | 94 | ||
95 | source "drivers/staging/fsl-mc/Kconfig" | ||
96 | |||
97 | source "drivers/staging/fsl-dpaa2/Kconfig" | 95 | source "drivers/staging/fsl-dpaa2/Kconfig" |
98 | 96 | ||
99 | source "drivers/staging/wilc1000/Kconfig" | 97 | source "drivers/staging/wilc1000/Kconfig" |
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index e84959a8a684..bfef8f230e16 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile | |||
@@ -37,7 +37,6 @@ obj-$(CONFIG_CRYPTO_SKEIN) += skein/ | |||
37 | obj-$(CONFIG_UNISYSSPAR) += unisys/ | 37 | obj-$(CONFIG_UNISYSSPAR) += unisys/ |
38 | obj-$(CONFIG_COMMON_CLK_XLNX_CLKWZRD) += clocking-wizard/ | 38 | obj-$(CONFIG_COMMON_CLK_XLNX_CLKWZRD) += clocking-wizard/ |
39 | obj-$(CONFIG_FB_TFT) += fbtft/ | 39 | obj-$(CONFIG_FB_TFT) += fbtft/ |
40 | obj-$(CONFIG_FSL_MC_BUS) += fsl-mc/ | ||
41 | obj-$(CONFIG_FSL_DPAA2) += fsl-dpaa2/ | 40 | obj-$(CONFIG_FSL_DPAA2) += fsl-dpaa2/ |
42 | obj-$(CONFIG_WILC1000) += wilc1000/ | 41 | obj-$(CONFIG_WILC1000) += wilc1000/ |
43 | obj-$(CONFIG_MOST) += most/ | 42 | obj-$(CONFIG_MOST) += most/ |
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c index 396371728aa1..d5f0ac5c2d1f 100644 --- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c +++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | |||
@@ -455,7 +455,7 @@ static int build_sg_fd(struct dpaa2_eth_priv *priv, | |||
455 | dpaa2_fd_set_format(fd, dpaa2_fd_sg); | 455 | dpaa2_fd_set_format(fd, dpaa2_fd_sg); |
456 | dpaa2_fd_set_addr(fd, addr); | 456 | dpaa2_fd_set_addr(fd, addr); |
457 | dpaa2_fd_set_len(fd, skb->len); | 457 | dpaa2_fd_set_len(fd, skb->len); |
458 | dpaa2_fd_set_ctrl(fd, DPAA2_FD_CTRL_PTA | DPAA2_FD_CTRL_PTV1); | 458 | dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1); |
459 | 459 | ||
460 | if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) | 460 | if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) |
461 | enable_tx_tstamp(fd, sgt_buf); | 461 | enable_tx_tstamp(fd, sgt_buf); |
@@ -508,7 +508,7 @@ static int build_single_fd(struct dpaa2_eth_priv *priv, | |||
508 | dpaa2_fd_set_offset(fd, (u16)(skb->data - buffer_start)); | 508 | dpaa2_fd_set_offset(fd, (u16)(skb->data - buffer_start)); |
509 | dpaa2_fd_set_len(fd, skb->len); | 509 | dpaa2_fd_set_len(fd, skb->len); |
510 | dpaa2_fd_set_format(fd, dpaa2_fd_single); | 510 | dpaa2_fd_set_format(fd, dpaa2_fd_single); |
511 | dpaa2_fd_set_ctrl(fd, DPAA2_FD_CTRL_PTA | DPAA2_FD_CTRL_PTV1); | 511 | dpaa2_fd_set_ctrl(fd, FD_CTRL_PTA | FD_CTRL_PTV1); |
512 | 512 | ||
513 | if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) | 513 | if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) |
514 | enable_tx_tstamp(fd, buffer_start); | 514 | enable_tx_tstamp(fd, buffer_start); |
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h index 905a4e6be8fa..f2917b55b85a 100644 --- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h +++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.h | |||
@@ -37,8 +37,8 @@ | |||
37 | #include <linux/if_vlan.h> | 37 | #include <linux/if_vlan.h> |
38 | #include <linux/fsl/mc.h> | 38 | #include <linux/fsl/mc.h> |
39 | 39 | ||
40 | #include "../../fsl-mc/include/dpaa2-io.h" | 40 | #include <soc/fsl/dpaa2-io.h> |
41 | #include "../../fsl-mc/include/dpaa2-fd.h" | 41 | #include <soc/fsl/dpaa2-fd.h> |
42 | #include "dpni.h" | 42 | #include "dpni.h" |
43 | #include "dpni-cmd.h" | 43 | #include "dpni-cmd.h" |
44 | 44 | ||
@@ -124,21 +124,13 @@ struct dpaa2_eth_swa { | |||
124 | #define DPAA2_FD_FRC_FAICFDV 0x0400 | 124 | #define DPAA2_FD_FRC_FAICFDV 0x0400 |
125 | 125 | ||
126 | /* Error bits in FD CTRL */ | 126 | /* Error bits in FD CTRL */ |
127 | #define DPAA2_FD_CTRL_UFD 0x00000004 | 127 | #define DPAA2_FD_RX_ERR_MASK (FD_CTRL_SBE | FD_CTRL_FAERR) |
128 | #define DPAA2_FD_CTRL_SBE 0x00000008 | 128 | #define DPAA2_FD_TX_ERR_MASK (FD_CTRL_UFD | \ |
129 | #define DPAA2_FD_CTRL_FSE 0x00000020 | 129 | FD_CTRL_SBE | \ |
130 | #define DPAA2_FD_CTRL_FAERR 0x00000040 | 130 | FD_CTRL_FSE | \ |
131 | 131 | FD_CTRL_FAERR) | |
132 | #define DPAA2_FD_RX_ERR_MASK (DPAA2_FD_CTRL_SBE | \ | ||
133 | DPAA2_FD_CTRL_FAERR) | ||
134 | #define DPAA2_FD_TX_ERR_MASK (DPAA2_FD_CTRL_UFD | \ | ||
135 | DPAA2_FD_CTRL_SBE | \ | ||
136 | DPAA2_FD_CTRL_FSE | \ | ||
137 | DPAA2_FD_CTRL_FAERR) | ||
138 | 132 | ||
139 | /* Annotation bits in FD CTRL */ | 133 | /* Annotation bits in FD CTRL */ |
140 | #define DPAA2_FD_CTRL_PTA 0x00800000 | ||
141 | #define DPAA2_FD_CTRL_PTV1 0x00400000 | ||
142 | #define DPAA2_FD_CTRL_ASAL 0x00020000 /* ASAL = 128B */ | 134 | #define DPAA2_FD_CTRL_ASAL 0x00020000 /* ASAL = 128B */ |
143 | 135 | ||
144 | /* Frame annotation status */ | 136 | /* Frame annotation status */ |
diff --git a/drivers/staging/fsl-mc/Kconfig b/drivers/staging/fsl-mc/Kconfig deleted file mode 100644 index 3002229bec1b..000000000000 --- a/drivers/staging/fsl-mc/Kconfig +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
2 | source "drivers/staging/fsl-mc/bus/Kconfig" | ||
diff --git a/drivers/staging/fsl-mc/Makefile b/drivers/staging/fsl-mc/Makefile deleted file mode 100644 index 14683889dabd..000000000000 --- a/drivers/staging/fsl-mc/Makefile +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
2 | # Freescale Management Complex (MC) bus drivers | ||
3 | obj-$(CONFIG_FSL_MC_BUS) += bus/ | ||
diff --git a/drivers/staging/fsl-mc/bus/Kconfig b/drivers/staging/fsl-mc/bus/Kconfig deleted file mode 100644 index 342453035269..000000000000 --- a/drivers/staging/fsl-mc/bus/Kconfig +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
2 | # | ||
3 | # DPAA2 fsl-mc bus | ||
4 | # | ||
5 | # Copyright (C) 2014-2016 Freescale Semiconductor, Inc. | ||
6 | # | ||
7 | |||
8 | config FSL_MC_DPIO | ||
9 | tristate "QorIQ DPAA2 DPIO driver" | ||
10 | depends on FSL_MC_BUS | ||
11 | help | ||
12 | Driver for the DPAA2 DPIO object. A DPIO provides queue and | ||
13 | buffer management facilities for software to interact with | ||
14 | other DPAA2 objects. This driver does not expose the DPIO | ||
15 | objects individually, but groups them under a service layer | ||
16 | API. | ||
diff --git a/drivers/staging/fsl-mc/bus/Makefile b/drivers/staging/fsl-mc/bus/Makefile deleted file mode 100644 index 21d8ebc8ce21..000000000000 --- a/drivers/staging/fsl-mc/bus/Makefile +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
2 | # | ||
3 | # Freescale Management Complex (MC) bus drivers | ||
4 | # | ||
5 | # Copyright (C) 2014 Freescale Semiconductor, Inc. | ||
6 | # | ||
7 | |||
8 | # MC DPIO driver | ||
9 | obj-$(CONFIG_FSL_MC_DPIO) += dpio/ | ||
diff --git a/drivers/staging/fsl-mc/include/dpaa2-fd.h b/include/soc/fsl/dpaa2-fd.h index b55b89ba4eda..2576abaa7779 100644 --- a/drivers/staging/fsl-mc/include/dpaa2-fd.h +++ b/include/soc/fsl/dpaa2-fd.h | |||
@@ -67,6 +67,18 @@ struct dpaa2_fd { | |||
67 | #define SG_FINAL_FLAG_MASK 0x1 | 67 | #define SG_FINAL_FLAG_MASK 0x1 |
68 | #define SG_FINAL_FLAG_SHIFT 15 | 68 | #define SG_FINAL_FLAG_SHIFT 15 |
69 | 69 | ||
70 | /* Error bits in FD CTRL */ | ||
71 | #define FD_CTRL_ERR_MASK 0x000000FF | ||
72 | #define FD_CTRL_UFD 0x00000004 | ||
73 | #define FD_CTRL_SBE 0x00000008 | ||
74 | #define FD_CTRL_FLC 0x00000010 | ||
75 | #define FD_CTRL_FSE 0x00000020 | ||
76 | #define FD_CTRL_FAERR 0x00000040 | ||
77 | |||
78 | /* Annotation bits in FD CTRL */ | ||
79 | #define FD_CTRL_PTA 0x00800000 | ||
80 | #define FD_CTRL_PTV1 0x00400000 | ||
81 | |||
70 | enum dpaa2_fd_format { | 82 | enum dpaa2_fd_format { |
71 | dpaa2_fd_single = 0, | 83 | dpaa2_fd_single = 0, |
72 | dpaa2_fd_list, | 84 | dpaa2_fd_list, |
diff --git a/drivers/staging/fsl-mc/include/dpaa2-global.h b/include/soc/fsl/dpaa2-global.h index 9bc0713346a8..9bc0713346a8 100644 --- a/drivers/staging/fsl-mc/include/dpaa2-global.h +++ b/include/soc/fsl/dpaa2-global.h | |||
diff --git a/drivers/staging/fsl-mc/include/dpaa2-io.h b/include/soc/fsl/dpaa2-io.h index ab51e40d11db..ab51e40d11db 100644 --- a/drivers/staging/fsl-mc/include/dpaa2-io.h +++ b/include/soc/fsl/dpaa2-io.h | |||