1211201Stakawata/* 2211201Stakawata * Copyright (c) 2008, 2009 Michael Shalayeff 3211201Stakawata * Copyright (c) 2009, 2010 Hans-Joerg Hoexer 4211201Stakawata * All rights reserved. 5211201Stakawata * 6211201Stakawata * Permission to use, copy, modify, and distribute this software for any 7211201Stakawata * purpose with or without fee is hereby granted, provided that the above 8211201Stakawata * copyright notice and this permission notice appear in all copies. 9211201Stakawata * 10211201Stakawata * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11211201Stakawata * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12211201Stakawata * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13211201Stakawata * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14211201Stakawata * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN 15211201Stakawata * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 16211201Stakawata * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17211201Stakawata * 18211201Stakawata * $FreeBSD$ 19211201Stakawata */ 20211201Stakawata 21211201Stakawata#ifndef _TPMVAR_H 22211201Stakawata#define _TPMVAR_H 23211201Stakawata 24211201Stakawatastruct tpm_softc { 25211201Stakawata#ifndef __FreeBSD__ 26211201Stakawata struct device sc_dev; 27211201Stakawata#endif 28211201Stakawata void *sc_ih; 29211201Stakawata 30211201Stakawata int (*sc_init)(struct tpm_softc *, int, const char *); 31211201Stakawata int (*sc_start)(struct tpm_softc *, int); 32211201Stakawata int (*sc_read)(struct tpm_softc *, void *, int, size_t *, int); 33211201Stakawata int (*sc_write)(struct tpm_softc *, void *, int); 34211201Stakawata int (*sc_end)(struct tpm_softc *, int, int); 35211201Stakawata 36211201Stakawata bus_space_tag_t sc_bt, sc_batm; 37211201Stakawata bus_space_handle_t sc_bh, sc_bahm; 38211201Stakawata 39211201Stakawata u_int32_t sc_devid; 40211201Stakawata u_int32_t sc_rev; 41211201Stakawata u_int32_t sc_stat; 42211201Stakawata u_int32_t sc_capabilities; 43211201Stakawata 44211201Stakawata int sc_flags; 45211201Stakawata#define TPM_OPEN 0x0001 46211201Stakawata 47211201Stakawata int sc_vector; 48211201Stakawata#ifdef __FreeBSD__ 49211201Stakawata void *intr_cookie; 50211201Stakawata int mem_rid, irq_rid; 51211201Stakawata struct resource *mem_res, *irq_res; 52211201Stakawata struct cdev *sc_cdev; 53211201Stakawata#endif 54211201Stakawata 55211201Stakawata#ifndef __FreeBSD__ 56211201Stakawata void *sc_powerhook; 57211201Stakawata#endif 58211201Stakawata int sc_suspend; 59211201Stakawata}; 60211201Stakawata 61211201Stakawataint tpm_tis12_probe(bus_space_tag_t iot, bus_space_handle_t ioh); 62211201Stakawataint tpm_attach(device_t dev); 63211201Stakawataint tpm_detach(device_t dev); 64211201Stakawataint tpm_suspend(device_t dev); 65211201Stakawataint tpm_resume(device_t dev); 66211201Stakawata#endif 67