summaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxs
diff options
context:
space:
mode:
authorZhou Jingyu <b02241@freescale.com>2010-03-11 10:08:32 +0800
committerAlejandro Gonzalez <alex.gonzalez@digi.com>2010-05-25 11:17:21 +0200
commit262ad3d751730da9801fdf450c108d57bbe107fd (patch)
treea2fe61f38151cdc65859df262b1a7c68dae15a34 /arch/arm/plat-mxs
parentb75491caed15403f20612902bb9ed6b6782178fe (diff)
ENGR00121496: mx23 battery driver restructure
mx23 battery driver restructure Signed-off-by: Zhou Jingyu <Jingyu.Zhou@freescale.com> Signed-off-by: Alejandro Gonzalez <alex.gonzalez@digi.com>
Diffstat (limited to 'arch/arm/plat-mxs')
-rw-r--r--arch/arm/plat-mxs/Makefile3
-rw-r--r--arch/arm/plat-mxs/icoll.c27
-rw-r--r--arch/arm/plat-mxs/include/mach/ddi_bc.h1
-rw-r--r--arch/arm/plat-mxs/include/mach/irqs.h5
-rw-r--r--arch/arm/plat-mxs/usb_common.c12
5 files changed, 44 insertions, 4 deletions
diff --git a/arch/arm/plat-mxs/Makefile b/arch/arm/plat-mxs/Makefile
index fa25e5e51a49..95b4c05415e5 100644
--- a/arch/arm/plat-mxs/Makefile
+++ b/arch/arm/plat-mxs/Makefile
@@ -11,7 +11,8 @@ obj-$(CONFIG_GENERIC_GPIO) += gpio.o
obj-$(CONFIG_MXS_ICOLL) += icoll.o
obj-$(CONFIG_MXS_DMA_ENGINE) += dmaengine.o dma-apbh.o dma-apbx.o
-obj-$(CONFIG_ARCH_MX28) += usb_common.o utmixc.o
+obj-$(CONFIG_ARCH_MX28) += utmixc.o
+obj-$(CONFIG_ARCH_MXS) += usb_common.o
obj-$(CONFIG_MXS_LRADC) += lradc.o
# Power Management
diff --git a/arch/arm/plat-mxs/icoll.c b/arch/arm/plat-mxs/icoll.c
index ef05e63d3dd1..bb4e4c12cb23 100644
--- a/arch/arm/plat-mxs/icoll.c
+++ b/arch/arm/plat-mxs/icoll.c
@@ -23,6 +23,7 @@
#include <mach/hardware.h>
#include <mach/device.h>
+#include <mach/irqs.h>
#include "regs-icoll.h"
@@ -106,3 +107,29 @@ void __init avic_init_irq(void __iomem *base, int nr_irqs)
/* Barrier */
(void)__raw_readl(g_icoll_base + HW_ICOLL_STAT);
}
+
+void mxs_set_irq_fiq(unsigned int irq, unsigned int type)
+{
+ if (type == 0)
+ __raw_writel(BM_ICOLL_INTERRUPTn_ENFIQ,
+ g_icoll_base +
+ HW_ICOLL_INTERRUPTn_CLR(irq));
+ else
+ __raw_writel(BM_ICOLL_INTERRUPTn_ENFIQ,
+ g_icoll_base +
+ HW_ICOLL_INTERRUPTn_SET(irq));
+}
+EXPORT_SYMBOL(mxs_set_irq_fiq);
+
+void mxs_enable_fiq_functionality(int enable)
+{
+ if (enable)
+ __raw_writel(BM_ICOLL_CTRL_FIQ_FINAL_ENABLE,
+ g_icoll_base + HW_ICOLL_CTRL_SET);
+ else
+ __raw_writel(BM_ICOLL_CTRL_FIQ_FINAL_ENABLE,
+ g_icoll_base + HW_ICOLL_CTRL_CLR);
+
+}
+EXPORT_SYMBOL(mxs_enable_fiq_functionality);
+
diff --git a/arch/arm/plat-mxs/include/mach/ddi_bc.h b/arch/arm/plat-mxs/include/mach/ddi_bc.h
index ceeed0c6ec46..21ca9217cdaa 100644
--- a/arch/arm/plat-mxs/include/mach/ddi_bc.h
+++ b/arch/arm/plat-mxs/include/mach/ddi_bc.h
@@ -708,6 +708,7 @@ ddi_bc_Status_t ddi_bc_ForceChargingToStart(void);
void fsl_enable_usb_plugindetect(void);
int fsl_is_usb_plugged(void);
+
/* End of file */
#endif /* _DDI_BC_H */
diff --git a/arch/arm/plat-mxs/include/mach/irqs.h b/arch/arm/plat-mxs/include/mach/irqs.h
index f2de0d22ad41..62165e12a60c 100644
--- a/arch/arm/plat-mxs/include/mach/irqs.h
+++ b/arch/arm/plat-mxs/include/mach/irqs.h
@@ -35,5 +35,10 @@ struct irq_ic_info {
#define __irq_ic_info_attr __attribute__((__section__(".irq_ic_info.array")))
extern struct irq_ic_info *current_irq_ic_info;
+
+void mxs_set_irq_fiq(unsigned int irq, unsigned int type);
+void mxs_enable_fiq_functionality(int enable);
+
#endif
+
#endif /* __ASM_ARCH_SYSTEM_H__ */
diff --git a/arch/arm/plat-mxs/usb_common.c b/arch/arm/plat-mxs/usb_common.c
index 0bc12d4f615d..b6f556866a52 100644
--- a/arch/arm/plat-mxs/usb_common.c
+++ b/arch/arm/plat-mxs/usb_common.c
@@ -44,9 +44,11 @@
#include <linux/usb/otg.h>
#include <linux/usb/fsl_xcvr.h>
#include <mach/arc_otg.h>
+#include <mach/hardware.h>
#include <linux/io.h>
#include "regs-usbphy.h"
+#ifdef CONFIG_ARCH_MX28
#define MXC_NUMBER_USB_TRANSCEIVER 6
struct fsl_xcvr_ops *g_xc_ops[MXC_NUMBER_USB_TRANSCEIVER] = { NULL };
@@ -376,15 +378,19 @@ int usb_host_wakeup_irq(struct device *wkup_dev)
return 0;
}
EXPORT_SYMBOL(usb_host_wakeup_irq);
-
+#endif
void usb_host_set_wakeup(struct device *wkup_dev, bool para)
{
}
EXPORT_SYMBOL(usb_host_set_wakeup);
+#ifdef CONFIG_ARCH_MX28
+#define USBPHY_PHYS_ADDR USBPHY0_PHYS_ADDR
+#endif
+
int fsl_is_usb_plugged(void)
{
- return __raw_readl(REGS_USBPHY_BASE + HW_USBPHY_STATUS) & \
+ return __raw_readl(IO_ADDRESS(USBPHY_PHYS_ADDR) + HW_USBPHY_STATUS) & \
BM_USBPHY_STATUS_DEVPLUGIN_STATUS;
}
EXPORT_SYMBOL(fsl_is_usb_plugged);
@@ -392,7 +398,7 @@ EXPORT_SYMBOL(fsl_is_usb_plugged);
void fsl_enable_usb_plugindetect(void)
{
__raw_writel(BM_USBPHY_CTRL_ENDEVPLUGINDETECT,
- REGS_USBPHY_BASE + HW_USBPHY_CTRL_SET);
+ IO_ADDRESS(USBPHY_PHYS_ADDR) + HW_USBPHY_CTRL_SET);
}
EXPORT_SYMBOL(fsl_enable_usb_plugindetect);