From owner-p4-projects@FreeBSD.ORG Thu Jul 27 02:14:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D57FB16A4E2; Thu, 27 Jul 2006 02:14:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9875016A4DE for ; Thu, 27 Jul 2006 02:14:15 +0000 (UTC) (envelope-from kevlo@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4984D43D4C for ; Thu, 27 Jul 2006 02:14:15 +0000 (GMT) (envelope-from kevlo@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6R2EFeG002892 for ; Thu, 27 Jul 2006 02:14:15 GMT (envelope-from kevlo@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6R2EFfc002889 for perforce@freebsd.org; Thu, 27 Jul 2006 02:14:15 GMT (envelope-from kevlo@freebsd.org) Date: Thu, 27 Jul 2006 02:14:15 GMT Message-Id: <200607270214.k6R2EFfc002889@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kevlo@freebsd.org using -f From: Kevin Lo To: Perforce Change Reviews Cc: Subject: PERFORCE change 102515 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jul 2006 02:14:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=102515 Change 102515 by kevlo@kevlo_monet on 2006/07/27 02:13:50 1) GPIO[13] uses to generate the PCI reset. 2) Set active low on the GPIO pin chosen to drive the PCI reset signal. See IXP42x Developer's Manual section 6.12 and Operating Manual for GW2348-4 Network Processor Section 2.4. Affected files ... .. //depot/projects/arm/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 edit Differences ... ==== //depot/projects/arm/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 (text+ko) ==== @@ -60,10 +60,12 @@ /* PCI Reset Assert */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR); + reg &= ~(1U << GPIO_PCI_RESET); GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg & ~(1U << GPIO_PCI_RESET)); /* PCI Clock Disable */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR); + reg &= ~GPCLKR_MUX14; GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg & ~GPCLKR_MUX14); /* @@ -78,6 +80,30 @@ (1U << GPIO_PCI_INTC) | (1U << GPIO_PCI_INTD)); GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOER, reg); + /* + * Set GPIO interrupt type + * PCI_INT_A, PCI_INTB, PCI_INT_C, PCI_INT_D: Active Low + */ + reg = GPIO_CONF_READ_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTA)); + reg &= ~GPIO_TYPE(GPIO_PCI_INTA, GPIO_TYPE_MASK); + reg |= GPIO_TYPE(GPIO_PCI_INTA, GPIO_TYPE_ACT_LOW); + GPIO_CONF_WRITE_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTA), reg); + + reg = GPIO_CONF_READ_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTB)); + reg &= ~GPIO_TYPE(GPIO_PCI_INTB, GPIO_TYPE_MASK); + reg |= GPIO_TYPE(GPIO_PCI_INTB, GPIO_TYPE_ACT_LOW); + GPIO_CONF_WRITE_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTB), reg); + + reg = GPIO_CONF_READ_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTC)); + reg &= ~GPIO_TYPE(GPIO_PCI_INTC, GPIO_TYPE_MASK); + reg |= GPIO_TYPE(GPIO_PCI_INTC, GPIO_TYPE_ACT_LOW); + GPIO_CONF_WRITE_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTC), reg); + + reg = GPIO_CONF_READ_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTD)); + reg &= ~GPIO_TYPE(GPIO_PCI_INTD, GPIO_TYPE_MASK); + reg |= GPIO_TYPE(GPIO_PCI_INTD, GPIO_TYPE_ACT_LOW); + GPIO_CONF_WRITE_4(sc, GPIO_TYPE_REG(GPIO_PCI_INTD), reg); + /* clear ISR */ GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPISR, (1U << GPIO_PCI_INTA) | (1U << GPIO_PCI_INTB) | @@ -91,6 +117,7 @@ /* PCI Clock Enable */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR); + reg |= GPCLKR_MUX14; GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg | GPCLKR_MUX14); /* @@ -100,6 +127,7 @@ DELAY(100); /* PCI Reset deassert */ reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR); + reg |= 1U << GPIO_PCI_RESET; GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg | (1U << GPIO_PCI_RESET)); sc->sc_irq_rman.rm_type = RMAN_ARRAY; sc->sc_irq_rman.rm_descr = "IXP425 PCI IRQs";