/* * Copyright (c) 2012, ETH Zurich. All rights reserved. * * This file is distributed under the terms in the attached LICENSE file. * If you do not find this file, copies can be found by writing to: * ETH Zurich D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich, * Attn: Systems Group. */ /* * omap44xx_gpio.dev * * DESCRIPTION: OMAP44xx General-Purpose I/O blocks. The 4460 has 6 * of these. * * This is derived from: * * OMAP4460 Multimedia Device Silicon Revision 1.x Technical Reference * Manual Version Q, in particular Section 25.6 * */ device omap44xx_gpio msbfirst ( addr base ) "OMAP44xx Gen. Purpose I/O" { register revision ro addr(base, 0x0000) "IP revision number" type(uint32); constants idle_m width(2) "Idle mode" { im_force = 0x0 "Force idle"; im_none = 0x1 "No idle"; im_smart = 0x2 "Smart idle"; im_smartw = 0x3 "Smart idle wakeup"; }; register sysconfig rw addr(base, 0x0010) "System configuration" { _ 27; idlemode 2 type(idle_m) "Idle mode"; enawakeup 1 "Wake-up enable"; softreset 1 "Software reset"; autoidle 1 "OCP clock gating control"; }; register irqstatus_raw_0 rw addr(base, 0x0024) "Per-event raw interrupt status vector (1st line)" type(uint32); register irqstatus_raw_1 rw addr(base, 0x0028) "Per-event raw interrupt status vector (2nd line)" type(uint32); register irqstatus_0 rw addr(base, 0x002C) "Per-event interrupt status vector (1st line)" type(uint32); register irqstatus_1 rw addr(base, 0x0030) "Per-event interrupt status vector (2nd line)" type(uint32); register irqstatus_set_0 rw addr(base, 0x0034) "Interrupt enable set vector (1st line)" type(uint32); register irqstatus_set_1 rw addr(base, 0x0038) "Interrupt enable set vector (2nd line)" type(uint32); register irqstatus_clr_0 rw addr(base, 0x003C) "Interrupt enable clear vector (1st line)" type(uint32); register irqstatus_clr_1 rw addr(base, 0x0040) "Interrupt enable clear vector (1st line)" type(uint32); register irqwaken_0 rw addr(base, 0x0044) "Per-event wakeup enable set vector (1st line)" type(uint32); register irqwaken_1 rw addr(base, 0x0048) "Per-event wakeup enable set vector (2nd line)" type(uint32); register sysstatus ro addr(base, 0x0114) "System status" { _ 31; resetdone 1 "Reset is complete"; }; register irqstatus1 rw addr(base, 0x0118) "Interrupt status (legacy) for 1st line" type(uint32); register irqenable1 rw addr(base, 0x011C) "Interrupt enable (legacy) for 1st line" type(uint32); register wakeupenable rw addr(base, 0x0120) "Wake-up enable (legacy) for 1st line" type(uint32); register irqstatus2 rw addr(base, 0x0128) "Interrupt status (legacy) for 2nd line" type(uint32); register irqenable2 rw addr(base, 0x012C) "Interrupt enable (legacy) for 2nd line" type(uint32); register ctrl rw addr(base, 0x0130) "Control" { _ 29; gatingratio 2 "Clock gating ratio (1<