L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained
F: arch/arm/boot/dts/uniphier*
+ F: arch/arm/include/asm/hardware/cache-uniphier.h
F: arch/arm/mach-uniphier/
+ F: arch/arm/mm/cache-uniphier.c
+F: drivers/i2c/busses/i2c-uniphier*
F: drivers/pinctrl/uniphier/
F: drivers/tty/serial/8250/8250_uniphier.c
N: uniphier
*/
#include <linux/init.h>
#include <asm/mach/arch.h>
- clocksource_of_init();
+ #include <linux/of.h>
+ #include <linux/clk-provider.h>
+ #include <linux/clocksource.h>
+
+
+ #define GPT6_CON_MT65xx 0x10008060
+ #define GPT_ENABLE 0x31
+
+ static void __init mediatek_timer_init(void)
+ {
+ void __iomem *gpt_base;
+
+ if (of_machine_is_compatible("mediatek,mt6589") ||
+ of_machine_is_compatible("mediatek,mt8135") ||
+ of_machine_is_compatible("mediatek,mt8127")) {
+ /* turn on GPT6 which ungates arch timer clocks */
+ gpt_base = ioremap(GPT6_CON_MT65xx, 0x04);
+
+ /* enable clock and set to free-run */
+ writel(GPT_ENABLE, gpt_base);
+ iounmap(gpt_base);
+ }
+
+ of_clk_init(NULL);
++ clocksource_probe();
+ };
static const char * const mediatek_board_dt_compat[] = {
"mediatek,mt6589",
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
- #include <linux/device.h>
- #include <linux/i2c.h>
- #include <linux/leds.h>
- #include <linux/spi/spi.h>
- #include <linux/usb/atmel_usba_udc.h>
- #include <linux/atmel-mci.h>
- #include <sound/atmel-ac97c.h>
#include <linux/serial.h>
- #include <linux/platform_data/macb.h>
-/*
- * at91: 6 USARTs and one DBGU port (SAM9260)
- * avr32: 4
- */
-#define ATMEL_MAX_UART 7
-
- /* USB Device */
-struct at91_udc_data {
- int vbus_pin; /* high == host powering us */
- u8 vbus_active_low; /* vbus polarity */
- u8 vbus_polled; /* Use polling, not interrupt */
- int pullup_pin; /* active == D+ pulled up */
- u8 pullup_active_low; /* true == pullup_pin is active low */
-};
-
/* Compact Flash */
struct at91_cf_data {
int irq_pin; /* I/O IRQ */