+
+static void __iomem *k1879_sctl_base(void)
+{
+ return (void __iomem *)RCM_K1879_SCTL_VIRT_BASE;
+}
+
+static void k1879_level_irq_i2c0_fixup(unsigned int irq, struct irq_desc *desc)
+{
+ writel(1, k1879_mif_base() + RCM_K1879_MIF_I2C_INT_STAT);
+ handle_level_irq(irq, desc);
+}
+
+static void k1879_level_irq_i2c1_fixup(unsigned int irq, struct irq_desc *desc)
+{
+ writel(1 << 0, k1879_sctl_base() + RCM_K1879_SCTL_INT_P_OUT);
+ handle_level_irq(irq, desc);
+}
+
+static void k1879_level_irq_i2c2_fixup(unsigned int irq, struct irq_desc *desc)
+{
+ writel(1 << 1, k1879_sctl_base() + RCM_K1879_SCTL_INT_P_OUT);
+ handle_level_irq(irq, desc);
+}
+
+static void k1879_level_irq_i2c3_fixup(unsigned int irq, struct irq_desc *desc)
+{
+ writel(1 << 2, k1879_sctl_base() + RCM_K1879_SCTL_INT_P_OUT);
+ handle_level_irq(irq, desc);
+}
What are all these for? They probably belong somewhere else.
diff --git a/arch/arm/mach-rcm-k1879xb1/cpuidle.c b/arch/arm/mach-rcm-k1879xb1/cpuidle.c
new file mode 100644
index 0000000..7c621b6
--- /dev/null
+++ b/arch/arm/mach-rcm-k1879xb1/cpuidle.c
This should be a separate patch and located in drivers/cpuidle/