#define __GLAMO_CORE_H
#include <asm/system.h>
-#include <linux/glamo-engine.h>
+#include <linux/mfd/glamo.h>
/* for the time being, we put the on-screen framebuffer into the lowest
* VRAM space. This should make the code easily compatible with the various
#define GLAMO_MMC_BUFFER_SIZE (64 * 1024)
#define GLAMO_FB_SIZE (GLAMO_INTERNAL_RAM_SIZE - GLAMO_MMC_BUFFER_SIZE)
+enum glamo_pll {
+ GLAMO_PLL1,
+ GLAMO_PLL2,
+};
+
struct glamo_core {
int irq;
int irq_works; /* 0 means PCB does not support Glamo IRQ */
struct resource *mem_core;
void __iomem *base;
struct platform_device *pdev;
- struct glamofb_platform_data *pdata;
+ struct glamo_platform_data *pdata;
u_int16_t type;
u_int16_t revision;
spinlock_t lock;
u_int16_t val;
};
-int glamo_run_script(struct glamo_core *glamo,
- struct glamo_script *script, int len, int may_sleep);
+void glamo_engine_div_enable(struct glamo_core *glamo, enum glamo_engine engine);
+void glamo_engine_div_disable(struct glamo_core *glamo, enum glamo_engine engine);
-struct glamo_mci_pdata {
- struct glamo_core * pglamo;
- unsigned int gpio_detect;
- unsigned int gpio_wprotect;
- int (*glamo_can_set_mci_power)(void);
- /* glamo-mci asking if it should use the slow clock to card */
- int (*glamo_mci_use_slow)(void);
- int (*glamo_irq_is_wired)(void);
- void (*mci_suspending)(struct platform_device *dev);
- int (*mci_all_dependencies_resumed)(struct platform_device *dev);
-};
+int glamo_pll_rate(struct glamo_core *glamo, enum glamo_pll pll);
+
+int glamo_run_script(struct glamo_core *glamo,
+ const struct glamo_script *script, int len, int may_sleep);
int glamo_engine_enable(struct glamo_core *glamo, enum glamo_engine engine);
int glamo_engine_disable(struct glamo_core *glamo, enum glamo_engine engine);