parent
3a128b33dc
commit
c09d499033
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pxa2x0.c,v 1.18 2009/08/09 06:12:33 kiyohara Exp $ */
|
||||
/* $NetBSD: pxa2x0.c,v 1.19 2011/06/09 17:29:42 nonaka Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2002, 2005 Genetec Corporation. All rights reserved.
|
||||
|
@ -99,7 +99,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: pxa2x0.c,v 1.18 2009/08/09 06:12:33 kiyohara Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: pxa2x0.c,v 1.19 2011/06/09 17:29:42 nonaka Exp $");
|
||||
|
||||
#include "pxaintc.h"
|
||||
#include "pxagpio.h"
|
||||
|
@ -126,7 +126,7 @@ __KERNEL_RCSID(0, "$NetBSD: pxa2x0.c,v 1.18 2009/08/09 06:12:33 kiyohara Exp $")
|
|||
#include <arm/xscale/xscalereg.h>
|
||||
|
||||
struct pxaip_softc {
|
||||
struct device sc_dev;
|
||||
device_t sc_dev;
|
||||
bus_space_tag_t sc_bust;
|
||||
bus_dma_tag_t sc_dmat;
|
||||
bus_space_handle_t sc_bush_clk;
|
||||
|
@ -134,10 +134,9 @@ struct pxaip_softc {
|
|||
};
|
||||
|
||||
/* prototypes */
|
||||
static int pxaip_match(struct device *, struct cfdata *, void *);
|
||||
static void pxaip_attach(struct device *, struct device *, void *);
|
||||
static int pxaip_search(struct device *, struct cfdata *,
|
||||
const int *, void *);
|
||||
static int pxaip_match(device_t, cfdata_t, void *);
|
||||
static void pxaip_attach(device_t, device_t, void *);
|
||||
static int pxaip_search(device_t, cfdata_t, const int *, void *);
|
||||
static void pxaip_attach_critical(struct pxaip_softc *);
|
||||
static int pxaip_print(void *, const char *);
|
||||
|
||||
|
@ -154,7 +153,7 @@ static int pxaip_measure_cpuclock(struct pxaip_softc *);
|
|||
#endif
|
||||
|
||||
/* attach structures */
|
||||
CFATTACH_DECL(pxaip, sizeof(struct pxaip_softc),
|
||||
CFATTACH_DECL_NEW(pxaip, sizeof(struct pxaip_softc),
|
||||
pxaip_match, pxaip_attach, NULL, NULL);
|
||||
|
||||
static struct pxaip_softc *pxaip_sc;
|
||||
|
@ -166,7 +165,7 @@ static vaddr_t pxaclkman_regs;
|
|||
(*((volatile uint32_t *)(pxaclkman_regs + (reg))))
|
||||
|
||||
static int
|
||||
pxaip_match(struct device *parent, struct cfdata *match, void *aux)
|
||||
pxaip_match(device_t parent, cfdata_t match, void *aux)
|
||||
{
|
||||
|
||||
#if !defined(CPU_XSCALE_PXA270)
|
||||
|
@ -190,16 +189,17 @@ pxaip_match(struct device *parent, struct cfdata *match, void *aux)
|
|||
}
|
||||
|
||||
static void
|
||||
pxaip_attach(struct device *parent, struct device *self, void *aux)
|
||||
pxaip_attach(device_t parent, device_t self, void *aux)
|
||||
{
|
||||
struct pxaip_softc *sc = (struct pxaip_softc *)self;
|
||||
struct pxaip_softc *sc = device_private(self);
|
||||
int cpuclock;
|
||||
|
||||
pxaip_sc = sc;
|
||||
sc->sc_dev = self;
|
||||
sc->sc_bust = &pxa2x0_bs_tag;
|
||||
sc->sc_dmat = &pxa2x0_bus_dma_tag;
|
||||
|
||||
aprint_normal(": PXA2x0 Onchip Peripheral Bus\n");
|
||||
aprint_normal(": Onchip Peripheral Bus\n");
|
||||
|
||||
if (bus_space_map(sc->sc_bust, PXA2X0_CLKMAN_BASE, PXA2X0_CLKMAN_SIZE,
|
||||
0, &sc->sc_bush_clk))
|
||||
|
@ -234,8 +234,7 @@ pxaip_attach(struct device *parent, struct device *self, void *aux)
|
|||
}
|
||||
|
||||
static int
|
||||
pxaip_search(struct device *parent, struct cfdata *cf,
|
||||
const int *ldesc, void *aux)
|
||||
pxaip_search(device_t parent, cfdata_t cf, const int *ldesc, void *aux)
|
||||
{
|
||||
struct pxaip_softc *sc = aux;
|
||||
struct pxaip_attach_args aa;
|
||||
|
@ -265,7 +264,7 @@ pxaip_attach_critical(struct pxaip_softc *sc)
|
|||
aa.pxa_addr = PXA2X0_INTCTL_BASE;
|
||||
aa.pxa_size = PXA2X0_INTCTL_SIZE;
|
||||
aa.pxa_intr = PXAIPCF_INTR_DEFAULT;
|
||||
if (config_found(&sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
if (config_found(sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
panic("pxaip_attach_critical: failed to attach INTC!");
|
||||
|
||||
#if NPXAGPIO > 0
|
||||
|
@ -275,7 +274,7 @@ pxaip_attach_critical(struct pxaip_softc *sc)
|
|||
aa.pxa_addr = PXA2X0_GPIO_BASE;
|
||||
aa.pxa_size = PXA2X0_GPIO_SIZE;
|
||||
aa.pxa_intr = PXAIPCF_INTR_DEFAULT;
|
||||
if (config_found(&sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
if (config_found(sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
panic("pxaip_attach_critical: failed to attach GPIO!");
|
||||
#endif
|
||||
|
||||
|
@ -286,7 +285,7 @@ pxaip_attach_critical(struct pxaip_softc *sc)
|
|||
aa.pxa_addr = PXA2X0_DMAC_BASE;
|
||||
aa.pxa_size = PXA2X0_DMAC_SIZE;
|
||||
aa.pxa_intr = PXA2X0_INT_DMA;
|
||||
if (config_found(&sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
if (config_found(sc->sc_dev, &aa, pxaip_print) == NULL)
|
||||
panic("pxaip_attach_critical: failed to attach DMAC!");
|
||||
#endif
|
||||
}
|
||||
|
@ -294,7 +293,7 @@ pxaip_attach_critical(struct pxaip_softc *sc)
|
|||
static int
|
||||
pxaip_print(void *aux, const char *name)
|
||||
{
|
||||
struct pxaip_attach_args *sa = (struct pxaip_attach_args*)aux;
|
||||
struct pxaip_attach_args *sa = (struct pxaip_attach_args *)aux;
|
||||
|
||||
if (sa->pxa_addr != PXAIPCF_ADDR_DEFAULT) {
|
||||
aprint_normal(" addr 0x%lx", sa->pxa_addr);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pxa2x0_ac97.c,v 1.7 2007/10/17 19:53:44 garbled Exp $ */
|
||||
/* $NetBSD: pxa2x0_ac97.c,v 1.8 2011/06/09 17:29:42 nonaka Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003, 2005 Wasabi Systems, Inc.
|
||||
|
@ -75,7 +75,7 @@ struct acu_dma {
|
|||
#define KERNADDR(ad) ((void *)((ad)->ad_addr))
|
||||
|
||||
struct acu_softc {
|
||||
struct device sc_dev;
|
||||
device_t sc_dev;
|
||||
bus_space_tag_t sc_bust;
|
||||
bus_dma_tag_t sc_dmat;
|
||||
bus_space_handle_t sc_bush;
|
||||
|
@ -113,10 +113,10 @@ struct acu_softc {
|
|||
struct audio_encoding_set *sc_encodings;
|
||||
};
|
||||
|
||||
static int pxaacu_match(struct device *, struct cfdata *, void *);
|
||||
static void pxaacu_attach(struct device *, struct device *, void *);
|
||||
static int pxaacu_match(device_t, cfdata_t, void *);
|
||||
static void pxaacu_attach(device_t, device_t, void *);
|
||||
|
||||
CFATTACH_DECL(pxaacu, sizeof(struct acu_softc),
|
||||
CFATTACH_DECL_NEW(pxaacu, sizeof(struct acu_softc),
|
||||
pxaacu_match, pxaacu_attach, NULL, NULL);
|
||||
|
||||
static int acu_codec_attach(void *, struct ac97_codec_if *);
|
||||
|
@ -230,7 +230,7 @@ acu_wait_gsr(struct acu_softc *sc, u_int32_t bit)
|
|||
}
|
||||
|
||||
static int
|
||||
pxaacu_match(struct device *parent, struct cfdata *cf, void *aux)
|
||||
pxaacu_match(device_t parent, cfdata_t cf, void *aux)
|
||||
{
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
struct pxa2x0_gpioconf *gpioconf;
|
||||
|
@ -256,11 +256,12 @@ pxaacu_match(struct device *parent, struct cfdata *cf, void *aux)
|
|||
}
|
||||
|
||||
static void
|
||||
pxaacu_attach(struct device *parent, struct device *self, void *aux)
|
||||
pxaacu_attach(device_t parent, device_t self, void *aux)
|
||||
{
|
||||
struct acu_softc *sc = (struct acu_softc *)self;
|
||||
struct acu_softc *sc = device_private(self);
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
|
||||
sc->sc_dev = self;
|
||||
sc->sc_bust = pxa->pxa_iot;
|
||||
sc->sc_dmat = pxa->pxa_dmat;
|
||||
|
||||
|
@ -269,7 +270,7 @@ pxaacu_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
if (bus_space_map(sc->sc_bust, pxa->pxa_addr, pxa->pxa_size, 0,
|
||||
&sc->sc_bush)) {
|
||||
aprint_error("%s: Can't map registers!\n", sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "Can't map registers!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -293,8 +294,7 @@ pxaacu_attach(struct device *parent, struct device *self, void *aux)
|
|||
delay(100);
|
||||
pxa2x0_clkman_config(CKEN_AC97, false);
|
||||
bus_space_unmap(sc->sc_bust, sc->sc_bush, pxa->pxa_size);
|
||||
aprint_error("%s: Primary codec not ready\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "Primary codec not ready\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -311,9 +311,8 @@ pxaacu_attach(struct device *parent, struct device *self, void *aux)
|
|||
sc->sc_in_reset = 0;
|
||||
sc->sc_dac_rate = sc->sc_adc_rate = 0;
|
||||
|
||||
if (ac97_attach(&sc->sc_host_if, &sc->sc_dev)) {
|
||||
aprint_error("%s: Failed to attach primary codec\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
if (ac97_attach(&sc->sc_host_if, sc->sc_dev)) {
|
||||
aprint_error_dev(self, "Failed to attach primary codec\n");
|
||||
fail:
|
||||
acu_reg_write(sc, AC97_GCR, 0);
|
||||
delay(100);
|
||||
|
@ -324,14 +323,13 @@ pxaacu_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
if (auconv_create_encodings(acu_formats, ACU_NFORMATS,
|
||||
&sc->sc_encodings)) {
|
||||
aprint_error("%s: Failed to create encodings\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "Failed to create encodings\n");
|
||||
if (sc->sc_codec_if != NULL)
|
||||
(sc->sc_codec_if->vtbl->detach)(sc->sc_codec_if);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
sc->sc_audiodev = audio_attach_mi(&acu_hw_if, sc, &sc->sc_dev);
|
||||
sc->sc_audiodev = audio_attach_mi(&acu_hw_if, sc, sc->sc_dev);
|
||||
|
||||
/*
|
||||
* As a work-around for braindamage in the PXA250's AC97 controller
|
||||
|
@ -463,8 +461,8 @@ acu_codec_reset(void *arg)
|
|||
delay(100);
|
||||
|
||||
if (acu_wait_gsr(sc, GSR_PCR)) {
|
||||
printf("%s: acu_codec_reset: failed to ready after reset\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"acu_codec_reset: failed to ready after reset\n");
|
||||
return (ETIMEDOUT);
|
||||
}
|
||||
|
||||
|
@ -488,7 +486,7 @@ acu_intr(void *arg)
|
|||
acu_reg_write(sc, AC97_POCR, 0);
|
||||
reg = acu_reg_read(sc, AC97_POSR);
|
||||
acu_reg_write(sc, AC97_POSR, reg);
|
||||
printf("%s: Tx PCM Fifo underrun\n", sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(sc->sc_dev, "Tx PCM Fifo underrun\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -502,7 +500,7 @@ acu_intr(void *arg)
|
|||
acu_reg_write(sc, AC97_PICR, 0);
|
||||
reg = acu_reg_read(sc, AC97_PISR);
|
||||
acu_reg_write(sc, AC97_PISR, reg);
|
||||
printf("%s: Rx PCM Fifo overrun\n", sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(sc->sc_dev, "Rx PCM Fifo overrun\n");
|
||||
}
|
||||
|
||||
return (1);
|
||||
|
@ -925,9 +923,9 @@ acu_tx_loop_segment(struct dmac_xfer *dx, int status)
|
|||
panic("acu_tx_loop_segment: xfer mismatch!");
|
||||
|
||||
if (status) {
|
||||
printf(
|
||||
"%s: acu_tx_loop_segment: non-zero completion status %d\n",
|
||||
sc->sc_dev.dv_xname, status);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"acu_tx_loop_segment: non-zero completion status %d\n",
|
||||
status);
|
||||
}
|
||||
|
||||
s = splaudio();
|
||||
|
@ -949,9 +947,9 @@ acu_rx_loop_segment(struct dmac_xfer *dx, int status)
|
|||
panic("acu_rx_loop_segment: xfer mismatch!");
|
||||
|
||||
if (status) {
|
||||
printf(
|
||||
"%s: acu_rx_loop_segment: non-zero completion status %d\n",
|
||||
sc->sc_dev.dv_xname, status);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"acu_rx_loop_segment: non-zero completion status %d\n",
|
||||
status);
|
||||
}
|
||||
|
||||
s = splaudio();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pxa2x0_dmac.c,v 1.6 2009/03/16 11:42:31 nonaka Exp $ */
|
||||
/* $NetBSD: pxa2x0_dmac.c,v 1.7 2011/06/09 17:29:42 nonaka Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003, 2005 Wasabi Systems, Inc.
|
||||
|
@ -163,7 +163,7 @@ struct dmac_dmover {
|
|||
#endif
|
||||
|
||||
struct pxadmac_softc {
|
||||
struct device sc_dev;
|
||||
device_t sc_dev;
|
||||
bus_space_tag_t sc_bust;
|
||||
bus_dma_tag_t sc_dmat;
|
||||
bus_space_handle_t sc_bush;
|
||||
|
@ -216,10 +216,10 @@ struct pxadmac_softc {
|
|||
#endif
|
||||
};
|
||||
|
||||
static int pxadmac_match(struct device *, struct cfdata *, void *);
|
||||
static void pxadmac_attach(struct device *, struct device *, void *);
|
||||
static int pxadmac_match(device_t, cfdata_t, void *);
|
||||
static void pxadmac_attach(device_t, device_t, void *);
|
||||
|
||||
CFATTACH_DECL(pxadmac, sizeof(struct pxadmac_softc),
|
||||
CFATTACH_DECL_NEW(pxadmac, sizeof(struct pxadmac_softc),
|
||||
pxadmac_match, pxadmac_attach, NULL, NULL);
|
||||
|
||||
static struct pxadmac_softc *pxadmac_sc;
|
||||
|
@ -278,7 +278,7 @@ dmac_free_channel(struct pxadmac_softc *sc, dmac_priority_t priority,
|
|||
}
|
||||
|
||||
static int
|
||||
pxadmac_match(struct device *parent, struct cfdata *cf, void *aux)
|
||||
pxadmac_match(device_t parent, cfdata_t cf, void *aux)
|
||||
{
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
|
||||
|
@ -292,13 +292,14 @@ pxadmac_match(struct device *parent, struct cfdata *cf, void *aux)
|
|||
}
|
||||
|
||||
static void
|
||||
pxadmac_attach(struct device *parent, struct device *self, void *aux)
|
||||
pxadmac_attach(device_t parent, device_t self, void *aux)
|
||||
{
|
||||
struct pxadmac_softc *sc = (struct pxadmac_softc *)self;
|
||||
struct pxadmac_softc *sc = device_private(self);
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
struct pxa2x0_dma_desc *dd;
|
||||
int i, nsegs;
|
||||
|
||||
sc->sc_dev = self;
|
||||
sc->sc_bust = pxa->pxa_iot;
|
||||
sc->sc_dmat = pxa->pxa_dmat;
|
||||
|
||||
|
@ -306,7 +307,7 @@ pxadmac_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
if (bus_space_map(sc->sc_bust, pxa->pxa_addr, pxa->pxa_size, 0,
|
||||
&sc->sc_bush)) {
|
||||
aprint_error("%s: Can't map registers!\n", sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "Can't map registers!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1186,8 +1187,9 @@ dmac_channel_intr(struct pxadmac_softc *sc, u_int channel)
|
|||
dmac_reg_write(sc, DMAC_DCSR(channel), dcsr & ~DCSR_RUN);
|
||||
|
||||
if ((dxs = sc->sc_active[channel]) == NULL) {
|
||||
printf("%s: Stray DMAC interrupt for unallocated channel %d\n",
|
||||
sc->sc_dev.dv_xname, channel);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"Stray DMAC interrupt for unallocated channel %d\n",
|
||||
channel);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pxa2x0_gpio.c,v 1.13 2009/08/04 12:11:33 kiyohara Exp $ */
|
||||
/* $NetBSD: pxa2x0_gpio.c,v 1.14 2011/06/09 17:29:42 nonaka Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2003 Wasabi Systems, Inc.
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: pxa2x0_gpio.c,v 1.13 2009/08/04 12:11:33 kiyohara Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: pxa2x0_gpio.c,v 1.14 2011/06/09 17:29:42 nonaka Exp $");
|
||||
|
||||
#include "opt_pxa2x0_gpio.h"
|
||||
|
||||
|
@ -65,7 +65,7 @@ struct gpio_irq_handler {
|
|||
};
|
||||
|
||||
struct pxagpio_softc {
|
||||
struct device sc_dev;
|
||||
device_t sc_dev;
|
||||
bus_space_tag_t sc_bust;
|
||||
bus_space_handle_t sc_bush;
|
||||
void *sc_irqcookie[4];
|
||||
|
@ -77,10 +77,10 @@ struct pxagpio_softc {
|
|||
#endif
|
||||
};
|
||||
|
||||
static int pxagpio_match(struct device *, struct cfdata *, void *);
|
||||
static void pxagpio_attach(struct device *, struct device *, void *);
|
||||
static int pxagpio_match(device_t, cfdata_t, void *);
|
||||
static void pxagpio_attach(device_t, device_t, void *);
|
||||
|
||||
CFATTACH_DECL(pxagpio, sizeof(struct pxagpio_softc),
|
||||
CFATTACH_DECL_NEW(pxagpio, sizeof(struct pxagpio_softc),
|
||||
pxagpio_match, pxagpio_attach, NULL, NULL);
|
||||
|
||||
static struct pxagpio_softc *pxagpio_softc;
|
||||
|
@ -120,7 +120,7 @@ pxagpio_reg_write(struct pxagpio_softc *sc, int reg, u_int32_t val)
|
|||
}
|
||||
|
||||
static int
|
||||
pxagpio_match(struct device *parent, struct cfdata *cf, void *aux)
|
||||
pxagpio_match(device_t parent, cfdata_t cf, void *aux)
|
||||
{
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
|
||||
|
@ -133,18 +133,19 @@ pxagpio_match(struct device *parent, struct cfdata *cf, void *aux)
|
|||
}
|
||||
|
||||
static void
|
||||
pxagpio_attach(struct device *parent, struct device *self, void *aux)
|
||||
pxagpio_attach(device_t parent, device_t self, void *aux)
|
||||
{
|
||||
struct pxagpio_softc *sc = (struct pxagpio_softc *)self;
|
||||
struct pxagpio_softc *sc = device_private(self);
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
|
||||
sc->sc_dev = self;
|
||||
sc->sc_bust = pxa->pxa_iot;
|
||||
|
||||
aprint_normal(": GPIO Controller\n");
|
||||
|
||||
if (bus_space_map(sc->sc_bust, pxa->pxa_addr, pxa->pxa_size, 0,
|
||||
&sc->sc_bush)) {
|
||||
aprint_error("%s: Can't map registers!\n", sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "Can't map registers!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -176,8 +177,7 @@ pxagpio_attach(struct device *parent, struct device *self, void *aux)
|
|||
sc->sc_irqcookie[2] = pxa2x0_intr_establish(PXA2X0_INT_GPION, IPL_BIO,
|
||||
gpio_intrN, sc);
|
||||
if (sc->sc_irqcookie[2] == NULL) {
|
||||
aprint_error("%s: failed to hook main GPIO interrupt\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "failed to hook main GPIO interrupt\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
@ -323,8 +323,7 @@ gpio_intr0(void *arg)
|
|||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (sc->sc_handlers[0] == NULL) {
|
||||
printf("%s: stray GPIO#0 edge interrupt\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(sc->sc_dev, "stray GPIO#0 edge interrupt\n");
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
|
@ -342,8 +341,7 @@ gpio_intr1(void *arg)
|
|||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (sc->sc_handlers[1] == NULL) {
|
||||
printf("%s: stray GPIO#1 edge interrupt\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(sc->sc_dev, "stray GPIO#1 edge interrupt\n");
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
|
@ -385,8 +383,9 @@ gpio_dispatch(struct pxagpio_softc *sc, int gpio_base)
|
|||
*/
|
||||
#ifdef DEBUG
|
||||
if ((gedr & sc->sc_mask[bank]) == 0) {
|
||||
printf("%s: stray GPIO interrupt. Bank %d, GEDR 0x%08x, mask 0x%08x\n",
|
||||
sc->sc_dev.dv_xname, bank, gedr, sc->sc_mask[bank]);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"stray GPIO interrupt. Bank %d, GEDR 0x%08x, mask 0x%08x\n",
|
||||
bank, gedr, sc->sc_mask[bank]);
|
||||
return (1); /* XXX: Pretend we dealt with it */
|
||||
}
|
||||
#endif
|
||||
|
@ -405,8 +404,9 @@ gpio_dispatch(struct pxagpio_softc *sc, int gpio_base)
|
|||
gedr &= ~mask;
|
||||
|
||||
if ((gh = *ghp) == NULL) {
|
||||
printf("%s: unhandled GPIO interrupt. GPIO#%d\n",
|
||||
sc->sc_dev.dv_xname, gpio_base + i);
|
||||
aprint_error_dev(sc->sc_dev,
|
||||
"unhandled GPIO interrupt. GPIO#%d\n",
|
||||
gpio_base + i);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pxa2x0_udc.c,v 1.3 2009/08/09 06:24:03 kiyohara Exp $ */
|
||||
/* $NetBSD: pxa2x0_udc.c,v 1.4 2011/06/09 17:29:42 nonaka Exp $ */
|
||||
/* $OpenBSD: pxa27x_udc.c,v 1.5 2005/03/30 14:24:39 dlg Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -31,7 +31,7 @@
|
|||
#include <arm/xscale/pxa2x0_gpio.h>
|
||||
|
||||
struct pxaudc_softc {
|
||||
struct device sc_dev;
|
||||
device_t sc_dev;
|
||||
bus_space_tag_t sc_iot;
|
||||
bus_space_handle_t sc_ioh;
|
||||
bus_size_t sc_size;
|
||||
|
@ -39,18 +39,18 @@ struct pxaudc_softc {
|
|||
void *sc_powerhook;
|
||||
};
|
||||
|
||||
static int pxaudc_match(struct device *, struct cfdata *, void *);
|
||||
static void pxaudc_attach(struct device *, struct device *, void *);
|
||||
static int pxaudc_detach(struct device *, int);
|
||||
static int pxaudc_match(device_t, cfdata_t, void *);
|
||||
static void pxaudc_attach(device_t, device_t, void *);
|
||||
static int pxaudc_detach(device_t, int);
|
||||
|
||||
CFATTACH_DECL(pxaudc, sizeof(struct pxaudc_softc),
|
||||
CFATTACH_DECL_NEW(pxaudc, sizeof(struct pxaudc_softc),
|
||||
pxaudc_match, pxaudc_attach, pxaudc_detach, NULL);
|
||||
|
||||
static void pxaudc_power(int, void *);
|
||||
static void pxaudc_enable(struct pxaudc_softc *);
|
||||
|
||||
static int
|
||||
pxaudc_match(struct device *parent, struct cfdata *cf, void *aux)
|
||||
pxaudc_match(device_t parent, cfdata_t cf, void *aux)
|
||||
{
|
||||
struct pxaip_attach_args *pxa = aux;
|
||||
|
||||
|
@ -62,24 +62,26 @@ pxaudc_match(struct device *parent, struct cfdata *cf, void *aux)
|
|||
}
|
||||
|
||||
static void
|
||||
pxaudc_attach(struct device *parent, struct device *self, void *aux)
|
||||
pxaudc_attach(device_t parent, device_t self, void *aux)
|
||||
{
|
||||
struct pxaudc_softc *sc = (struct pxaudc_softc *)self;
|
||||
struct pxaudc_softc *sc = device_private(self);
|
||||
struct pxaip_attach_args *pxa = (struct pxaip_attach_args *)aux;
|
||||
|
||||
sc->sc_dev = self;
|
||||
sc->sc_iot = pxa->pxa_iot;
|
||||
sc->sc_size = 0;
|
||||
sc->sc_powerhook = NULL;
|
||||
|
||||
aprint_normal(": USB Device Controller\n");
|
||||
aprint_naive("\n");
|
||||
|
||||
if (bus_space_map(sc->sc_iot, pxa->pxa_addr, pxa->pxa_size, 0,
|
||||
&sc->sc_ioh)) {
|
||||
aprint_error(": couldn't map memory space\n");
|
||||
aprint_error_dev(self, "couldn't map memory space\n");
|
||||
return;
|
||||
}
|
||||
sc->sc_size = pxa->pxa_size;
|
||||
|
||||
printf(": PXA2x0 USB Device Controller\n");
|
||||
|
||||
bus_space_barrier(sc->sc_iot, sc->sc_ioh, 0, sc->sc_size,
|
||||
BUS_SPACE_BARRIER_READ|BUS_SPACE_BARRIER_WRITE);
|
||||
|
||||
|
@ -87,18 +89,17 @@ pxaudc_attach(struct device *parent, struct device *self, void *aux)
|
|||
|
||||
pxaudc_enable(sc);
|
||||
|
||||
sc->sc_powerhook = powerhook_establish(sc->sc_dev.dv_xname,
|
||||
sc->sc_powerhook = powerhook_establish(device_xname(self),
|
||||
pxaudc_power, sc);
|
||||
if (sc->sc_powerhook == NULL) {
|
||||
aprint_error("%s: unable to establish powerhook.\n",
|
||||
sc->sc_dev.dv_xname);
|
||||
aprint_error_dev(self, "unable to establish powerhook.\n");
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
pxaudc_detach(struct device *self, int flags)
|
||||
pxaudc_detach(device_t self, int flags)
|
||||
{
|
||||
struct pxaudc_softc *sc = (struct pxaudc_softc *)self;
|
||||
struct pxaudc_softc *sc = device_private(self);
|
||||
|
||||
if (sc->sc_powerhook)
|
||||
powerhook_disestablish(sc->sc_powerhook);
|
||||
|
|
Loading…
Reference in New Issue