|
@@ -0,0 +1,69 @@
|
|
|
+/*
|
|
|
+ * arch/arm/mach-omap2/serial.c
|
|
|
+ *
|
|
|
+ * OMAP2 serial support.
|
|
|
+ *
|
|
|
+ * Copyright (C) 2005-2008 Nokia Corporation
|
|
|
+ * Author: Paul Mundt <paul.mundt@nokia.com>
|
|
|
+ *
|
|
|
+ * Major rework for PM support by Kevin Hilman
|
|
|
+ *
|
|
|
+ * Based off of arch/arm/mach-omap/omap1/serial.c
|
|
|
+ *
|
|
|
+ * Copyright (C) 2009 Texas Instruments
|
|
|
+ * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com
|
|
|
+ *
|
|
|
+ * This file is subject to the terms and conditions of the GNU General Public
|
|
|
+ * License. See the file "COPYING" in the main directory of this archive
|
|
|
+ * for more details.
|
|
|
+ */
|
|
|
+#include <linux/kernel.h>
|
|
|
+#include <linux/init.h>
|
|
|
+#include <linux/clk.h>
|
|
|
+#include <linux/io.h>
|
|
|
+#include <linux/delay.h>
|
|
|
+#include <linux/platform_device.h>
|
|
|
+#include <linux/slab.h>
|
|
|
+#include <linux/pm_runtime.h>
|
|
|
+#include <linux/console.h>
|
|
|
+#include <linux/omap-dma.h>
|
|
|
+#include <linux/platform_data/serial-omap.h>
|
|
|
+
|
|
|
+#include "common.h"
|
|
|
+#include "omap_hwmod.h"
|
|
|
+#include "omap_device.h"
|
|
|
+#include "omap-pm.h"
|
|
|
+#include "soc.h"
|
|
|
+#include "prm2xxx_3xxx.h"
|
|
|
+#include "pm.h"
|
|
|
+#include "cm2xxx_3xxx.h"
|
|
|
+#include "prm-regbits-34xx.h"
|
|
|
+#include "control.h"
|
|
|
+#include "mux.h"
|
|
|
+#include "serial.h"
|
|
|
+
|
|
|
+/*
|
|
|
+ * NOTE: By default the serial auto_suspend timeout is disabled as it causes
|
|
|
+ * lost characters over the serial ports. This means that the UART clocks will
|
|
|
+ * stay on until power/autosuspend_delay is set for the uart from sysfs.
|
|
|
+ * This also causes that any deeper omap sleep states are blocked.
|
|
|
+ */
|
|
|
+#define DEFAULT_AUTOSUSPEND_DELAY -1
|
|
|
+
|
|
|
+#define MAX_UART_HWMOD_NAME_LEN 16
|
|
|
+
|
|
|
+struct omap_uart_state {
|
|
|
+ int num;
|
|
|
+
|
|
|
+ struct list_head node;
|
|
|
+ struct omap_hwmod *oh;
|
|
|
+ struct omap_device_pad default_omap_uart_pads[2];
|
|
|
+};
|
|
|
+
|
|
|
+static LIST_HEAD(uart_list);
|
|
|
+static u8 num_uarts;
|
|
|
+static u8 console_uart_id = -1;
|
|
|
+static u8 no_console_suspend;
|
|
|
+static u8 uart_debug;
|
|
|
+
|
|
|
+#define DEFAULT_RXDMA_POLLRATE 1 /* RX DMA polling rate (us) */
|