11.7Sdyoung/* $NetBSD: lpt_elb.c,v 1.7 2011/07/01 19:02:32 dyoung Exp $ */ 21.1Shannken 31.1Shannken/*- 41.1Shannken * Copyright (c) 2003 The NetBSD Foundation, Inc. 51.1Shannken * All rights reserved. 61.1Shannken * 71.1Shannken * This code is derived from software contributed to The NetBSD Foundation 81.1Shannken * by Juergen Hannken-Illjes. 91.1Shannken * 101.1Shannken * Redistribution and use in source and binary forms, with or without 111.1Shannken * modification, are permitted provided that the following conditions 121.1Shannken * are met: 131.1Shannken * 1. Redistributions of source code must retain the above copyright 141.1Shannken * notice, this list of conditions and the following disclaimer. 151.1Shannken * 2. Redistributions in binary form must reproduce the above copyright 161.1Shannken * notice, this list of conditions and the following disclaimer in the 171.1Shannken * documentation and/or other materials provided with the distribution. 181.1Shannken * 191.1Shannken * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 201.1Shannken * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 211.1Shannken * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 221.1Shannken * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 231.1Shannken * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 241.1Shannken * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 251.1Shannken * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 261.1Shannken * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 271.1Shannken * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 281.1Shannken * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 291.1Shannken * POSSIBILITY OF SUCH DAMAGE. 301.1Shannken */ 311.2Slukem 321.2Slukem#include <sys/cdefs.h> 331.7Sdyoung__KERNEL_RCSID(0, "$NetBSD: lpt_elb.c,v 1.7 2011/07/01 19:02:32 dyoung Exp $"); 341.1Shannken 351.1Shannken#include <sys/param.h> 361.1Shannken#include <sys/conf.h> 371.1Shannken#include <sys/device.h> 381.1Shannken#include <sys/systm.h> 391.1Shannken#include <sys/tty.h> 401.1Shannken 411.7Sdyoung#include <sys/bus.h> 421.1Shannken 431.1Shannken#include <dev/ic/lptreg.h> 441.1Shannken#include <dev/ic/lptvar.h> 451.1Shannken 461.1Shannken#include <evbppc/explora/dev/elbvar.h> 471.1Shannken 481.5Scubestatic int lpt_elb_probe(device_t, cfdata_t , void *); 491.5Scubestatic void lpt_elb_attach(device_t, device_t, void *); 501.1Shannken 511.5ScubeCFATTACH_DECL_NEW(lpt_elb, sizeof(struct lpt_softc), 521.1Shannken lpt_elb_probe, lpt_elb_attach, NULL, NULL); 531.1Shannken 541.1Shannkenint 551.5Scubelpt_elb_probe(device_t parent, cfdata_t cf, void *aux) 561.1Shannken{ 571.1Shannken struct elb_attach_args *oaa = aux; 581.1Shannken 591.1Shannken if (strcmp(oaa->elb_name, cf->cf_name) != 0) 601.1Shannken return 0; 611.1Shannken 621.1Shannken return (1); 631.1Shannken} 641.1Shannken 651.1Shannkenvoid 661.5Scubelpt_elb_attach(device_t parent, device_t self, void *aux) 671.1Shannken{ 681.5Scube struct lpt_softc *sc = device_private(self); 691.1Shannken struct elb_attach_args *eaa = aux; 701.1Shannken 711.5Scube sc->sc_dev = self; 721.1Shannken sc->sc_iot = eaa->elb_bt; 731.4Shannken bus_space_map(sc->sc_iot, 741.4Shannken _BUS_SPACE_UNSTRIDE(sc->sc_iot, eaa->elb_base), LPT_NPORTS, 751.4Shannken 0, &sc->sc_ioh); 761.1Shannken 771.5Scube aprint_normal("\n"); 781.1Shannken 791.1Shannken lpt_attach_subr(sc); 801.1Shannken} 81