2017-10-16 10:48:11 +00:00
|
|
|
From 7992b4384d94c5e1bad998ca3a9a5781caac8e62 Mon Sep 17 00:00:00 2001
|
2017-09-27 07:31:31 +00:00
|
|
|
From: Yangbo Lu <yangbo.lu@nxp.com>
|
|
|
|
Date: Mon, 25 Sep 2017 09:52:26 +0800
|
|
|
|
Subject: [PATCH] config: support layerscape
|
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
This is a integrated patch for layerscape config/makefile support.
|
|
|
|
|
|
|
|
Signed-off-by: Yuantian Tang <andy.tang@nxp.com>
|
|
|
|
Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|
|
|
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|
|
|
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
|
|
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|
|
|
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
|
|
|
|
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|
|
|
---
|
|
|
|
drivers/base/Kconfig | 1 +
|
|
|
|
drivers/crypto/Makefile | 2 +-
|
|
|
|
drivers/net/ethernet/freescale/Kconfig | 4 +-
|
|
|
|
drivers/net/ethernet/freescale/Makefile | 2 +
|
|
|
|
drivers/ptp/Kconfig | 29 ++++++
|
|
|
|
drivers/rtc/Kconfig | 8 ++
|
|
|
|
drivers/rtc/Makefile | 1 +
|
|
|
|
drivers/soc/Kconfig | 3 +-
|
|
|
|
drivers/soc/fsl/Kconfig | 22 +++++
|
|
|
|
drivers/soc/fsl/Kconfig.arm | 16 ++++
|
|
|
|
drivers/soc/fsl/Makefile | 4 +
|
|
|
|
drivers/soc/fsl/layerscape/Kconfig | 10 +++
|
|
|
|
drivers/soc/fsl/layerscape/Makefile | 1 +
|
|
|
|
drivers/soc/fsl/rcpm.c | 154 ++++++++++++++++++++++++++++++++
|
2017-10-16 10:48:11 +00:00
|
|
|
drivers/staging/Kconfig | 6 ++
|
|
|
|
drivers/staging/Makefile | 3 +
|
2017-09-27 07:31:31 +00:00
|
|
|
drivers/staging/fsl-dpaa2/Kconfig | 41 +++++++++
|
|
|
|
drivers/staging/fsl-dpaa2/Makefile | 9 ++
|
2017-10-16 10:48:11 +00:00
|
|
|
18 files changed, 312 insertions(+), 4 deletions(-)
|
2017-09-27 07:31:31 +00:00
|
|
|
create mode 100644 drivers/soc/fsl/Kconfig
|
|
|
|
create mode 100644 drivers/soc/fsl/Kconfig.arm
|
|
|
|
create mode 100644 drivers/soc/fsl/layerscape/Kconfig
|
|
|
|
create mode 100644 drivers/soc/fsl/layerscape/Makefile
|
|
|
|
create mode 100644 drivers/soc/fsl/rcpm.c
|
|
|
|
create mode 100644 drivers/staging/fsl-dpaa2/Kconfig
|
|
|
|
create mode 100644 drivers/staging/fsl-dpaa2/Makefile
|
|
|
|
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
|
|
|
|
index e1c0e2e0..4211a7fd 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/base/Kconfig
|
|
|
|
+++ b/drivers/base/Kconfig
|
|
|
|
@@ -237,6 +237,7 @@ config GENERIC_CPU_AUTOPROBE
|
|
|
|
|
|
|
|
config SOC_BUS
|
|
|
|
bool
|
|
|
|
+ select GLOB
|
|
|
|
|
|
|
|
source "drivers/base/regmap/Kconfig"
|
|
|
|
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
|
|
|
|
index ad7250fa..6d788fd7 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/crypto/Makefile
|
|
|
|
+++ b/drivers/crypto/Makefile
|
2017-10-16 10:48:11 +00:00
|
|
|
@@ -3,7 +3,7 @@ obj-$(CONFIG_CRYPTO_DEV_ATMEL_SHA) += atmel-sha.o
|
2017-09-27 07:31:31 +00:00
|
|
|
obj-$(CONFIG_CRYPTO_DEV_ATMEL_TDES) += atmel-tdes.o
|
|
|
|
obj-$(CONFIG_CRYPTO_DEV_BFIN_CRC) += bfin_crc.o
|
|
|
|
obj-$(CONFIG_CRYPTO_DEV_CCP) += ccp/
|
|
|
|
-obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM) += caam/
|
|
|
|
+obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON) += caam/
|
|
|
|
obj-$(CONFIG_CRYPTO_DEV_GEODE) += geode-aes.o
|
|
|
|
obj-$(CONFIG_CRYPTO_DEV_HIFN_795X) += hifn_795x.o
|
|
|
|
obj-$(CONFIG_CRYPTO_DEV_IMGTEC_HASH) += img-hash.o
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/net/ethernet/freescale/Kconfig b/drivers/net/ethernet/freescale/Kconfig
|
|
|
|
index d1ca45fb..74a2864e 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/net/ethernet/freescale/Kconfig
|
|
|
|
+++ b/drivers/net/ethernet/freescale/Kconfig
|
|
|
|
@@ -5,7 +5,7 @@
|
|
|
|
config NET_VENDOR_FREESCALE
|
|
|
|
bool "Freescale devices"
|
|
|
|
default y
|
|
|
|
- depends on FSL_SOC || QUICC_ENGINE || CPM1 || CPM2 || PPC_MPC512x || \
|
|
|
|
+ depends on FSL_SOC || (QUICC_ENGINE && PPC32) || CPM1 || CPM2 || PPC_MPC512x || \
|
|
|
|
M523x || M527x || M5272 || M528x || M520x || M532x || \
|
|
|
|
ARCH_MXC || ARCH_MXS || (PPC_MPC52xx && PPC_BESTCOMM) || \
|
|
|
|
ARCH_LAYERSCAPE
|
|
|
|
@@ -93,4 +93,6 @@ config GIANFAR
|
|
|
|
and MPC86xx family of chips, the eTSEC on LS1021A and the FEC
|
|
|
|
on the 8540.
|
|
|
|
|
|
|
|
+source "drivers/net/ethernet/freescale/sdk_fman/Kconfig"
|
|
|
|
+source "drivers/net/ethernet/freescale/sdk_dpaa/Kconfig"
|
|
|
|
endif # NET_VENDOR_FREESCALE
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/net/ethernet/freescale/Makefile b/drivers/net/ethernet/freescale/Makefile
|
|
|
|
index cbe21dc7..a5d4405f 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/net/ethernet/freescale/Makefile
|
|
|
|
+++ b/drivers/net/ethernet/freescale/Makefile
|
|
|
|
@@ -21,4 +21,6 @@ gianfar_driver-objs := gianfar.o \
|
|
|
|
obj-$(CONFIG_UCC_GETH) += ucc_geth_driver.o
|
|
|
|
ucc_geth_driver-objs := ucc_geth.o ucc_geth_ethtool.o
|
|
|
|
|
|
|
|
+obj-$(if $(CONFIG_FSL_SDK_FMAN),y) += sdk_fman/
|
|
|
|
+obj-$(if $(CONFIG_FSL_SDK_DPAA_ETH),y) += sdk_dpaa/
|
|
|
|
obj-$(CONFIG_FSL_FMAN) += fman/
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig
|
|
|
|
index ee3de342..4c45beda 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/ptp/Kconfig
|
|
|
|
+++ b/drivers/ptp/Kconfig
|
|
|
|
@@ -39,6 +39,35 @@ config PTP_1588_CLOCK_GIANFAR
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called gianfar_ptp.
|
|
|
|
|
|
|
|
+config PTP_1588_CLOCK_DPAA
|
|
|
|
+ tristate "Freescale DPAA as PTP clock"
|
|
|
|
+ depends on FSL_SDK_DPAA_ETH
|
|
|
|
+ select PTP_1588_CLOCK
|
|
|
|
+ select FSL_DPAA_TS
|
|
|
|
+ default n
|
|
|
|
+ help
|
|
|
|
+ This driver adds support for using the DPAA 1588 timer module
|
|
|
|
+ as a PTP clock. This clock is only useful if your PTP programs are
|
|
|
|
+ getting hardware time stamps on the PTP Ethernet packets
|
|
|
|
+ using the SO_TIMESTAMPING API.
|
|
|
|
+
|
|
|
|
+ To compile this driver as a module, choose M here: the module
|
|
|
|
+ will be called dpaa_ptp.
|
|
|
|
+
|
|
|
|
+config PTP_1588_CLOCK_DPAA2
|
|
|
|
+ tristate "Freescale DPAA2 as PTP clock"
|
|
|
|
+ depends on FSL_DPAA2_ETH
|
|
|
|
+ select PTP_1588_CLOCK
|
|
|
|
+ default y
|
|
|
|
+ help
|
|
|
|
+ This driver adds support for using the DPAA2 1588 timer module
|
|
|
|
+ as a PTP clock. This clock is only useful if your PTP programs are
|
|
|
|
+ getting hardware time stamps on the PTP Ethernet packets
|
|
|
|
+ using the SO_TIMESTAMPING API.
|
|
|
|
+
|
|
|
|
+ To compile this driver as a module, choose M here: the module
|
|
|
|
+ will be called dpaa2-rtc.
|
|
|
|
+
|
|
|
|
config PTP_1588_CLOCK_IXP46X
|
|
|
|
tristate "Intel IXP46x as PTP clock"
|
|
|
|
depends on IXP4XX_ETH
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
|
|
|
|
index 0723c97e..df610dcd 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/rtc/Kconfig
|
|
|
|
+++ b/drivers/rtc/Kconfig
|
|
|
|
@@ -414,6 +414,14 @@ config RTC_DRV_PCF85063
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
|
|
will be called rtc-pcf85063.
|
|
|
|
|
|
|
|
+config RTC_DRV_PCF85263
|
|
|
|
+ tristate "NXP PCF85263"
|
|
|
|
+ help
|
|
|
|
+ If you say yes here you get support for the PCF85263 RTC chip
|
|
|
|
+
|
|
|
|
+ This driver can also be built as a module. If so, the module
|
|
|
|
+ will be called rtc-pcf85263.
|
|
|
|
+
|
|
|
|
config RTC_DRV_PCF8563
|
|
|
|
tristate "Philips PCF8563/Epson RTC8564"
|
|
|
|
help
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
|
|
|
|
index 1ac694a3..7675b8a7 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/rtc/Makefile
|
|
|
|
+++ b/drivers/rtc/Makefile
|
2017-10-16 10:48:11 +00:00
|
|
|
@@ -111,6 +111,7 @@ obj-$(CONFIG_RTC_DRV_PCF2127) += rtc-pcf2127.o
|
2017-09-27 07:31:31 +00:00
|
|
|
obj-$(CONFIG_RTC_DRV_PCF50633) += rtc-pcf50633.o
|
|
|
|
obj-$(CONFIG_RTC_DRV_PCF85063) += rtc-pcf85063.o
|
|
|
|
obj-$(CONFIG_RTC_DRV_PCF8523) += rtc-pcf8523.o
|
|
|
|
+obj-$(CONFIG_RTC_DRV_PCF85263) += rtc-pcf85263.o
|
|
|
|
obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
|
|
|
|
obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
|
|
|
|
obj-$(CONFIG_RTC_DRV_PIC32) += rtc-pic32.o
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
|
|
|
|
index e6e90e80..f31bceb6 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/soc/Kconfig
|
|
|
|
+++ b/drivers/soc/Kconfig
|
|
|
|
@@ -1,8 +1,7 @@
|
|
|
|
menu "SOC (System On Chip) specific Drivers"
|
|
|
|
|
|
|
|
source "drivers/soc/bcm/Kconfig"
|
|
|
|
-source "drivers/soc/fsl/qbman/Kconfig"
|
|
|
|
-source "drivers/soc/fsl/qe/Kconfig"
|
|
|
|
+source "drivers/soc/fsl/Kconfig"
|
|
|
|
source "drivers/soc/mediatek/Kconfig"
|
|
|
|
source "drivers/soc/qcom/Kconfig"
|
|
|
|
source "drivers/soc/rockchip/Kconfig"
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/Kconfig b/drivers/soc/fsl/Kconfig
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..d4cd25f1
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/soc/fsl/Kconfig
|
|
|
|
@@ -0,0 +1,22 @@
|
|
|
|
+#
|
|
|
|
+# Freescale SOC drivers
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+source "drivers/soc/fsl/qbman/Kconfig"
|
|
|
|
+source "drivers/soc/fsl/qe/Kconfig"
|
|
|
|
+source "drivers/soc/fsl/ls2-console/Kconfig"
|
|
|
|
+
|
|
|
|
+config FSL_GUTS
|
|
|
|
+ bool
|
|
|
|
+ select SOC_BUS
|
|
|
|
+ help
|
|
|
|
+ The global utilities block controls power management, I/O device
|
|
|
|
+ enabling, power-onreset(POR) configuration monitoring, alternate
|
|
|
|
+ function selection for multiplexed signals,and clock control.
|
|
|
|
+ This driver is to manage and access global utilities block.
|
|
|
|
+ Initially only reading SVR and registering soc device are supported.
|
|
|
|
+ Other guts accesses, such as reading RCW, should eventually be moved
|
|
|
|
+ into this driver as well.
|
|
|
|
+if ARM || ARM64
|
|
|
|
+source "drivers/soc/fsl/Kconfig.arm"
|
|
|
|
+endif
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/Kconfig.arm b/drivers/soc/fsl/Kconfig.arm
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..106c9b98
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/soc/fsl/Kconfig.arm
|
|
|
|
@@ -0,0 +1,16 @@
|
|
|
|
+#
|
|
|
|
+# Freescale ARM SOC Drivers
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+config LS_SOC_DRIVERS
|
|
|
|
+ bool "Layerscape Soc Drivers"
|
|
|
|
+ depends on ARCH_LAYERSCAPE || SOC_LS1021A
|
|
|
|
+ default n
|
|
|
|
+ help
|
|
|
|
+ Say y here to enable Freescale Layerscape Soc Device Drivers support.
|
|
|
|
+ The Soc Drivers provides the device driver that is a specific block
|
|
|
|
+ or feature on Layerscape platform.
|
|
|
|
+
|
|
|
|
+if LS_SOC_DRIVERS
|
|
|
|
+ source "drivers/soc/fsl/layerscape/Kconfig"
|
|
|
|
+endif
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile
|
|
|
|
index 75e1f533..b8708569 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/soc/fsl/Makefile
|
|
|
|
+++ b/drivers/soc/fsl/Makefile
|
|
|
|
@@ -5,3 +5,7 @@
|
|
|
|
obj-$(CONFIG_FSL_DPAA) += qbman/
|
|
|
|
obj-$(CONFIG_QUICC_ENGINE) += qe/
|
|
|
|
obj-$(CONFIG_CPM) += qe/
|
|
|
|
+obj-$(CONFIG_FSL_GUTS) += guts.o
|
|
|
|
+obj-$(CONFIG_FSL_LS2_CONSOLE) += ls2-console/
|
|
|
|
+obj-$(CONFIG_SUSPEND) += rcpm.o
|
|
|
|
+obj-$(CONFIG_LS_SOC_DRIVERS) += layerscape/
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/layerscape/Kconfig b/drivers/soc/fsl/layerscape/Kconfig
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..e1373aa1
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/soc/fsl/layerscape/Kconfig
|
|
|
|
@@ -0,0 +1,10 @@
|
|
|
|
+#
|
|
|
|
+# Layerscape Soc drivers
|
|
|
|
+#
|
|
|
|
+config FTM_ALARM
|
|
|
|
+ bool "FTM alarm driver"
|
|
|
|
+ default n
|
|
|
|
+ help
|
|
|
|
+ Say y here to enable FTM alarm support. The FTM alarm provides
|
|
|
|
+ alarm functions for wakeup system from deep sleep. There is only
|
|
|
|
+ one FTM can be used in ALARM(FTM 0).
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/layerscape/Makefile b/drivers/soc/fsl/layerscape/Makefile
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..6299aa1d
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/soc/fsl/layerscape/Makefile
|
|
|
|
@@ -0,0 +1 @@
|
|
|
|
+obj-$(CONFIG_FTM_ALARM) += ftm_alarm.o
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/soc/fsl/rcpm.c b/drivers/soc/fsl/rcpm.c
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..a6a31c87
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/soc/fsl/rcpm.c
|
|
|
|
@@ -0,0 +1,154 @@
|
|
|
|
+/*
|
|
|
|
+ * Run Control and Power Management (RCPM) driver
|
|
|
|
+ *
|
|
|
|
+ * Copyright 2016 NXP
|
|
|
|
+ *
|
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
|
|
+ * (at your option) any later version.
|
|
|
|
+ *
|
|
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
+ * GNU General Public License for more details.
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+#define pr_fmt(fmt) "RCPM: %s: " fmt, __func__
|
|
|
|
+
|
|
|
|
+#include <linux/kernel.h>
|
|
|
|
+#include <linux/io.h>
|
|
|
|
+#include <linux/of_platform.h>
|
|
|
|
+#include <linux/of_address.h>
|
|
|
|
+#include <linux/suspend.h>
|
|
|
|
+
|
|
|
|
+/* RCPM register offset */
|
|
|
|
+#define RCPM_IPPDEXPCR0 0x140
|
|
|
|
+
|
|
|
|
+#define RCPM_WAKEUP_CELL_SIZE 2
|
|
|
|
+
|
|
|
|
+struct rcpm_config {
|
|
|
|
+ int ipp_num;
|
|
|
|
+ int ippdexpcr_offset;
|
|
|
|
+ u32 ippdexpcr[2];
|
|
|
|
+ void *rcpm_reg_base;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct rcpm_config *rcpm;
|
|
|
|
+
|
|
|
|
+static inline void rcpm_reg_write(u32 offset, u32 value)
|
|
|
|
+{
|
|
|
|
+ iowrite32be(value, rcpm->rcpm_reg_base + offset);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline u32 rcpm_reg_read(u32 offset)
|
|
|
|
+{
|
|
|
|
+ return ioread32be(rcpm->rcpm_reg_base + offset);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void rcpm_wakeup_fixup(struct device *dev, void *data)
|
|
|
|
+{
|
|
|
|
+ struct device_node *node = dev ? dev->of_node : NULL;
|
|
|
|
+ u32 value[RCPM_WAKEUP_CELL_SIZE];
|
|
|
|
+ int ret, i;
|
|
|
|
+
|
|
|
|
+ if (!dev || !node || !device_may_wakeup(dev))
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Get the values in the "rcpm-wakeup" property.
|
|
|
|
+ * Three values are:
|
|
|
|
+ * The first is a pointer to the RCPM node.
|
|
|
|
+ * The second is the value of the ippdexpcr0 register.
|
|
|
|
+ * The third is the value of the ippdexpcr1 register.
|
|
|
|
+ */
|
|
|
|
+ ret = of_property_read_u32_array(node, "fsl,rcpm-wakeup",
|
|
|
|
+ value, RCPM_WAKEUP_CELL_SIZE);
|
|
|
|
+ if (ret)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ pr_debug("wakeup source: the device %s\n", node->full_name);
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < rcpm->ipp_num; i++)
|
|
|
|
+ rcpm->ippdexpcr[i] |= value[i + 1];
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int rcpm_suspend_prepare(void)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ BUG_ON(!rcpm);
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < rcpm->ipp_num; i++)
|
|
|
|
+ rcpm->ippdexpcr[i] = 0;
|
|
|
|
+
|
|
|
|
+ dpm_for_each_dev(NULL, rcpm_wakeup_fixup);
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < rcpm->ipp_num; i++) {
|
|
|
|
+ rcpm_reg_write(rcpm->ippdexpcr_offset + 4 * i,
|
|
|
|
+ rcpm->ippdexpcr[i]);
|
|
|
|
+ pr_debug("ippdexpcr%d = 0x%x\n", i, rcpm->ippdexpcr[i]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int rcpm_suspend_notifier_call(struct notifier_block *bl,
|
|
|
|
+ unsigned long state,
|
|
|
|
+ void *unused)
|
|
|
|
+{
|
|
|
|
+ switch (state) {
|
|
|
|
+ case PM_SUSPEND_PREPARE:
|
|
|
|
+ rcpm_suspend_prepare();
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return NOTIFY_DONE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct rcpm_config rcpm_default_config = {
|
|
|
|
+ .ipp_num = 1,
|
|
|
|
+ .ippdexpcr_offset = RCPM_IPPDEXPCR0,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct of_device_id rcpm_matches[] = {
|
|
|
|
+ {
|
|
|
|
+ .compatible = "fsl,qoriq-rcpm-2.1",
|
|
|
|
+ .data = &rcpm_default_config,
|
|
|
|
+ },
|
|
|
|
+ {}
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct notifier_block rcpm_suspend_notifier = {
|
|
|
|
+ .notifier_call = rcpm_suspend_notifier_call,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static int __init layerscape_rcpm_init(void)
|
|
|
|
+{
|
|
|
|
+ const struct of_device_id *match;
|
|
|
|
+ struct device_node *np;
|
|
|
|
+
|
|
|
|
+ np = of_find_matching_node_and_match(NULL, rcpm_matches, &match);
|
|
|
|
+ if (!np) {
|
|
|
|
+ pr_err("Can't find the RCPM node.\n");
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (match->data)
|
|
|
|
+ rcpm = (struct rcpm_config *)match->data;
|
|
|
|
+ else
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
|
|
+ rcpm->rcpm_reg_base = of_iomap(np, 0);
|
|
|
|
+ of_node_put(np);
|
|
|
|
+ if (!rcpm->rcpm_reg_base)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
+
|
|
|
|
+ register_pm_notifier(&rcpm_suspend_notifier);
|
|
|
|
+
|
|
|
|
+ pr_info("The RCPM driver initialized.\n");
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+subsys_initcall(layerscape_rcpm_init);
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
|
|
|
|
index 58a7b350..6c69e3bd 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/staging/Kconfig
|
|
|
|
+++ b/drivers/staging/Kconfig
|
|
|
|
@@ -94,6 +94,8 @@ source "drivers/staging/fbtft/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/staging/fsl-mc/Kconfig"
|
|
|
|
|
|
|
|
+source "drivers/staging/fsl-dpaa2/Kconfig"
|
|
|
|
+
|
|
|
|
source "drivers/staging/wilc1000/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/staging/most/Kconfig"
|
2017-10-16 10:48:11 +00:00
|
|
|
@@ -106,4 +108,8 @@ source "drivers/staging/greybus/Kconfig"
|
2017-09-27 07:31:31 +00:00
|
|
|
|
|
|
|
source "drivers/staging/vc04_services/Kconfig"
|
|
|
|
|
|
|
|
+source "drivers/staging/fsl_qbman/Kconfig"
|
2017-10-16 10:48:11 +00:00
|
|
|
+
|
|
|
|
+source "drivers/staging/fsl_ppfe/Kconfig"
|
2017-09-27 07:31:31 +00:00
|
|
|
+
|
|
|
|
endif # STAGING
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
|
|
|
|
index 2fa9745d..ee817a5e 100644
|
2017-09-27 07:31:31 +00:00
|
|
|
--- a/drivers/staging/Makefile
|
|
|
|
+++ b/drivers/staging/Makefile
|
2017-10-16 10:48:11 +00:00
|
|
|
@@ -36,9 +36,12 @@ obj-$(CONFIG_UNISYSSPAR) += unisys/
|
2017-09-27 07:31:31 +00:00
|
|
|
obj-$(CONFIG_COMMON_CLK_XLNX_CLKWZRD) += clocking-wizard/
|
|
|
|
obj-$(CONFIG_FB_TFT) += fbtft/
|
|
|
|
obj-$(CONFIG_FSL_MC_BUS) += fsl-mc/
|
|
|
|
+obj-$(CONFIG_FSL_DPAA2) += fsl-dpaa2/
|
|
|
|
obj-$(CONFIG_WILC1000) += wilc1000/
|
|
|
|
obj-$(CONFIG_MOST) += most/
|
|
|
|
obj-$(CONFIG_ISDN_I4L) += i4l/
|
|
|
|
obj-$(CONFIG_KS7010) += ks7010/
|
|
|
|
obj-$(CONFIG_GREYBUS) += greybus/
|
|
|
|
obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/
|
|
|
|
+obj-$(CONFIG_FSL_SDK_DPA) += fsl_qbman/
|
2017-10-16 10:48:11 +00:00
|
|
|
+obj-$(CONFIG_FSL_PPFE) += fsl_ppfe/
|
|
|
|
diff --git a/drivers/staging/fsl-dpaa2/Kconfig b/drivers/staging/fsl-dpaa2/Kconfig
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..8042d9cc
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/staging/fsl-dpaa2/Kconfig
|
|
|
|
@@ -0,0 +1,41 @@
|
|
|
|
+#
|
|
|
|
+# Freescale DataPath Acceleration Architecture Gen2 (DPAA2) drivers
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+config FSL_DPAA2
|
|
|
|
+ bool "Freescale DPAA2 devices"
|
|
|
|
+ depends on FSL_MC_BUS
|
|
|
|
+ ---help---
|
|
|
|
+ Build drivers for Freescale DataPath Acceleration
|
|
|
|
+ Architecture (DPAA2) family of SoCs.
|
|
|
|
+
|
|
|
|
+config FSL_DPAA2_ETH
|
|
|
|
+ tristate "Freescale DPAA2 Ethernet"
|
|
|
|
+ depends on FSL_DPAA2 && FSL_MC_DPIO
|
|
|
|
+ ---help---
|
|
|
|
+ Ethernet driver for Freescale DPAA2 SoCs, using the
|
|
|
|
+ Freescale MC bus driver
|
|
|
|
+
|
|
|
|
+if FSL_DPAA2_ETH
|
|
|
|
+config FSL_DPAA2_ETH_USE_ERR_QUEUE
|
|
|
|
+ bool "Enable Rx error queue"
|
|
|
|
+ default n
|
|
|
|
+ ---help---
|
|
|
|
+ Allow Rx error frames to be enqueued on an error queue
|
|
|
|
+ and processed by the driver (by default they are dropped
|
|
|
|
+ in hardware).
|
|
|
|
+ This may impact performance, recommended for debugging
|
|
|
|
+ purposes only.
|
|
|
|
+
|
|
|
|
+# QBMAN_DEBUG requires some additional DPIO APIs
|
|
|
|
+config FSL_DPAA2_ETH_DEBUGFS
|
|
|
|
+ depends on DEBUG_FS && FSL_QBMAN_DEBUG
|
|
|
|
+ bool "Enable debugfs support"
|
|
|
|
+ default n
|
|
|
|
+ ---help---
|
|
|
|
+ Enable advanced statistics through debugfs interface.
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+source "drivers/staging/fsl-dpaa2/mac/Kconfig"
|
|
|
|
+source "drivers/staging/fsl-dpaa2/evb/Kconfig"
|
|
|
|
+source "drivers/staging/fsl-dpaa2/ethsw/Kconfig"
|
2017-10-16 10:48:11 +00:00
|
|
|
diff --git a/drivers/staging/fsl-dpaa2/Makefile b/drivers/staging/fsl-dpaa2/Makefile
|
|
|
|
new file mode 100644
|
|
|
|
index 00000000..cbaa8c20
|
2017-09-27 07:31:31 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/drivers/staging/fsl-dpaa2/Makefile
|
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
+#
|
|
|
|
+# Freescale DataPath Acceleration Architecture Gen2 (DPAA2) drivers
|
|
|
|
+#
|
|
|
|
+
|
|
|
|
+obj-$(CONFIG_FSL_DPAA2_ETH) += ethernet/
|
|
|
|
+obj-$(CONFIG_FSL_DPAA2_MAC) += mac/
|
|
|
|
+obj-$(CONFIG_FSL_DPAA2_EVB) += evb/
|
|
|
|
+obj-$(CONFIG_FSL_DPAA2_ETHSW) += ethsw/
|
|
|
|
+obj-$(CONFIG_PTP_1588_CLOCK_DPAA2) += rtc/
|
2017-10-16 10:48:11 +00:00
|
|
|
--
|
|
|
|
2.14.1
|
|
|
|
|