ltq-atm/ltq-ptm: re-enable/fix reset_ppe() functionality for VR9

This patch re-enables the reset_ppe() functionality for VR9 targets by using
the new lantiq rcu subsystem. The reset sequence in the reset_ppe() function
was taken from the ppa datapath driver of lantiq UGW 7.4.1.

Additionally it adds the required reset definitions to the vr9 dtsi file.

It also prepares the reset_ppe() function calls for the other lantiq targets.

This feature is needed to be able to switch between ltq-atm/ltq-ptm driver
in ATM/PTM Auto-Mode at runtime.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This commit is contained in:
Martin Schiller
2018-12-05 08:51:13 +01:00
committed by Hauke Mehrtens
parent eae6cac6a3
commit ff3cfe0848
15 changed files with 183 additions and 65 deletions

View File

@@ -40,6 +40,7 @@
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/ioctl.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
/*
@@ -61,7 +62,7 @@
#define EMA_WRITE_BURST 0x2
#define EMA_READ_BURST 0x2
static inline void reset_ppe(void);
static inline void reset_ppe(struct platform_device *pdev);
#define IFX_PMU_MODULE_PPE_SLL01 BIT(19)
#define IFX_PMU_MODULE_PPE_TC BIT(21)
@@ -70,7 +71,7 @@ static inline void reset_ppe(void);
#define IFX_PMU_MODULE_TPE BIT(13)
#define IFX_PMU_MODULE_DSL_DFE BIT(9)
static inline void reset_ppe(void)
static inline void reset_ppe(struct platform_device *pdev)
{
/*#ifdef MODULE
unsigned int etop_cfg;
@@ -140,7 +141,7 @@ static void danube_fw_ver(unsigned int *major, unsigned int *minor)
*minor = FW_VER_ID->minor;
}
static void danube_init(void)
static void danube_init(struct platform_device *pdev)
{
volatile u32 *p = SB_RAM0_ADDR(0);
unsigned int i;
@@ -152,7 +153,7 @@ static void danube_init(void)
IFX_PMU_MODULE_TPE |
IFX_PMU_MODULE_DSL_DFE);
reset_ppe();
reset_ppe(pdev);
/* init ema */
IFX_REG_W32((EMA_CMD_BUF_LEN << 16) | (EMA_CMD_BASE_ADDR >> 2), EMA_CMDCFG);