Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/mips/ingenic moar registers



details:   https://anonhg.NetBSD.org/src/rev/00e113e86edc
branches:  trunk
changeset: 337955:00e113e86edc
user:      macallan <macallan%NetBSD.org@localhost>
date:      Mon May 04 12:16:24 2015 +0000

description:
moar registers
( clock and gpio related )

diffstat:

 sys/arch/mips/ingenic/ingenic_regs.h |  38 +++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diffs (66 lines):

diff -r 186397531535 -r 00e113e86edc sys/arch/mips/ingenic/ingenic_regs.h
--- a/sys/arch/mips/ingenic/ingenic_regs.h      Mon May 04 10:57:17 2015 +0000
+++ b/sys/arch/mips/ingenic/ingenic_regs.h      Mon May 04 12:16:24 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ingenic_regs.h,v 1.16 2015/04/28 15:05:45 macallan Exp $ */
+/*     $NetBSD: ingenic_regs.h,v 1.17 2015/05/04 12:16:24 macallan Exp $ */
 
 /*-
  * Copyright (c) 2014 Michael Lorenz
@@ -170,6 +170,8 @@
 #define JZ_CPCCR       0x10000000      /* Clock Control Register */
        #define JZ_PDIV_M       0x000f0000      /* PCLK divider mask */
        #define JZ_PDIV_S       16              /* PCLK divider shift */
+       #define JZ_CDIV_M       0x0000000f      /* CPU clock divider mask */
+       #define JZ_CDIV_S       0               /* CPU clock divider shift */
 #define JZ_CPMPCR      0x00000014      /* MPLL */
        #define JZ_PLLM_S       19              /* PLL multiplier shift */
        #define JZ_PLLM_M       0xfff80000      /* PLL multiplier mask */
@@ -292,6 +294,14 @@
        #define PCR_TXRISETUNE1 0x00000001      /* rise/fall wave adj. */
 
 #define JZ_UHCCDR      0x1000006c      /* UHC Clock Divider Register */
+       #define UHCCDR_SCLK_A   0x00000000
+       #define UHCCDR_MPLL     0x40000000
+       #define UHCCDR_EPLL     0x80000000
+       #define UHCCDR_OTG_PHY  0xc0000000
+       #define UHCCDR_CE       0x20000000
+       #define UHCCDR_BUSY     0x10000000
+       #define UHCCDR_STOP     0x08000000
+       #define UHCCDR_DIV_M    0x000000ff
 #define JZ_SPCR0       0x100000b8      /* SRAM Power Control Registers */
 #define JZ_SPCR1       0x100000bc
 #define JZ_SRBC                0x100000c4      /* Soft Reset & Bus Control */
@@ -477,6 +487,32 @@
        writereg(reg + JZ_GPIO_MASKC, mask);    /* enable it */
 }
 
+static inline void
+gpio_as_intr_level_low(uint32_t g, int pin)
+{
+       uint32_t mask = 1 << pin;
+       uint32_t reg = JZ_GPIO_A_BASE + (g << 8);
+
+       writereg(reg + JZ_GPIO_MASKS, mask);    /* mask it */
+       writereg(reg + JZ_GPIO_INTS, mask);     /* use as interrupt */
+       writereg(reg + JZ_GPIO_PAT1C, mask);    /* level trigger */
+       writereg(reg + JZ_GPIO_PAT0C, mask);    /* trigger on low */
+       writereg(reg + JZ_GPIO_FLAGC, mask);    /* clear it */
+       writereg(reg + JZ_GPIO_MASKC, mask);    /* enable it */
+}
+
+static inline void
+gpio_as_input(uint32_t g, int pin)
+{
+       uint32_t mask = 1 << pin;
+       uint32_t reg = JZ_GPIO_A_BASE + (g << 8);
+
+       writereg(reg + JZ_GPIO_MASKS, mask);    /* mask it */
+       writereg(reg + JZ_GPIO_INTC, mask);     /* not an interrupt */
+       writereg(reg + JZ_GPIO_PAT1S, mask);    /* use as input */
+       writereg(reg + JZ_GPIO_FLAGC, mask);    /* clear it just in case */
+}
+
 /* I2C / SMBus */
 #define JZ_SMB0_BASE   0x10050000
 #define JZ_SMB1_BASE   0x10051000



Home | Main Index | Thread Index | Old Index