#define DBG(x...)
#endif
-static const unsigned short normal_i2c[] = {
- HYM_ADDR , /* HYM8563 address */
- I2C_CLIENT_END
-};
-I2C_CLIENT_INSMOD; /* defines addr_data */
-
static int hym8563_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[], unsigned len)
{
int ret;
#ifndef _DRIVERS_HYM8563_H
#define _DRIVERS_HYM8563_H
-#define HYM_ADDR 0x51
-
#define RTC_CTL1 0x00
#define RTC_CTL2 0x01
#define RTC_SEC 0x02
#define RTC_WEEK 0x06
#define RTC_MON 0x07
#define RTC_YEAR 0x08
-#define RTC_A_MIN 0x09
+#define RTC_A_MIN 0x09
#define RTC_A_HOUR 0x0A
-#define RTC_A_DAY 0x0B
+#define RTC_A_DAY 0x0B
#define RTC_A_WEEK 0x0C
#define RTC_CLKOUT 0x0D
#define RTC_T_CTL 0x0E
/*
- * drivers/serial/rk2818_serial.c - driver for rk2818 RK2818 serial device and console
+ * drivers/serial/rk2818_serial.c - driver for rk2818 serial device and console
*
* Copyright (C) 2010 ROCKCHIP, Inc.
*
*/
+#if defined(CONFIG_SERIAL_RK2818_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#define SUPPORT_SYSRQ
+#endif
#include <linux/hrtimer.h>
#include <linux/module.h>
unsigned int imr;
};
-#if defined(CONFIG_SERIAL_RK2818_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-#define SUPPORT_SYSRQ
-#endif
-
#define UART_TO_RK2818(uart_port) ((struct rk2818_port *) uart_port)
#define RK2818_SERIAL_MAJOR TTY_MAJOR
#define RK2818_SERIAL_MINOR 64
unsigned int ch, flag;
while((rk2818_uart_read(port,UART_USR) & UART_RECEIVE_FIFO_NOT_EMPTY) == UART_RECEIVE_FIFO_NOT_EMPTY)
{
+ u32 lsr = rk2818_uart_read(port, UART_LSR);
ch = rk2818_uart_read(port,UART_RBR);
flag = TTY_NORMAL;
port->icount.rx++;
+ if (lsr & UART_BREAK_INT_BIT) {
+ port->icount.brk++;
+ if (uart_handle_break(port))
+ continue;
+ }
if (uart_handle_sysrq_char(port, ch))
{
continue;
#define UART_TRANSMIT_FIFO_NOT_FULL (1<<1)
#define UART_USR_BUSY (1)
+/*UART_LSR Line Status Register*/
+#define UART_BREAK_INT_BIT (1<<4)/*break Interrupt bit*/
+
#endif /* __DRIVERS_SERIAL_RK2818_SERIAL_H */
| (chip->tmode << SPI_TMOD_OFFSET);
}
message->state = RUNNING_STATE;
-
+
/*
* Adjust transfer mode if necessary. Requires platform dependent
* chipselect mechanism.
struct resource *regs;
struct rk2818_spi *dws;
struct spi_master *master;
- int irq;
+ int irq;
int ret;
gpio_request(RK2818_PIN_PB0, "rk2818_spim");
if (IS_ERR(dws->clock_spim))
return PTR_ERR(dws->clock_spim);
dws->regs = ioremap(regs->start, (regs->end - regs->start) + 1);
- if (!dws->regs)
- goto exit;
+ if (!dws->regs){
+ release_mem_region(regs->start, (regs->end - regs->start) + 1);
+ return -EBUSY;
+ }
dws->irq = irq;
dws->master = master;
dws->type = SSI_MOTO_SPI;