1d72fc9dcSClement Deschamps /* 2d72fc9dcSClement Deschamps * Raspberry Pi (BCM2835) GPIO Controller 3d72fc9dcSClement Deschamps * 4d72fc9dcSClement Deschamps * Copyright (c) 2017 Antfield SAS 5d72fc9dcSClement Deschamps * 6d72fc9dcSClement Deschamps * Authors: 7d72fc9dcSClement Deschamps * Clement Deschamps <clement.deschamps@antfield.fr> 8d72fc9dcSClement Deschamps * Luc Michel <luc.michel@antfield.fr> 9d72fc9dcSClement Deschamps * 10d72fc9dcSClement Deschamps * This work is licensed under the terms of the GNU GPL, version 2 or later. 11d72fc9dcSClement Deschamps * See the COPYING file in the top-level directory. 12d72fc9dcSClement Deschamps */ 13d72fc9dcSClement Deschamps 14d72fc9dcSClement Deschamps #ifndef BCM2835_GPIO_H 15d72fc9dcSClement Deschamps #define BCM2835_GPIO_H 16d72fc9dcSClement Deschamps 17d72fc9dcSClement Deschamps #include "hw/sd/sd.h" 18ec150c7eSMarkus Armbruster #include "hw/sysbus.h" 19db1015e9SEduardo Habkost #include "qom/object.h" 20d72fc9dcSClement Deschamps 21db1015e9SEduardo Habkost struct BCM2835GpioState { 22d72fc9dcSClement Deschamps SysBusDevice parent_obj; 23d72fc9dcSClement Deschamps 24d72fc9dcSClement Deschamps MemoryRegion iomem; 25d72fc9dcSClement Deschamps 26d72fc9dcSClement Deschamps /* SDBus selector */ 27d72fc9dcSClement Deschamps SDBus sdbus; 28d72fc9dcSClement Deschamps SDBus *sdbus_sdhci; 29d72fc9dcSClement Deschamps SDBus *sdbus_sdhost; 30d72fc9dcSClement Deschamps 31d72fc9dcSClement Deschamps uint8_t fsel[54]; 32d72fc9dcSClement Deschamps uint32_t lev0, lev1; 33d72fc9dcSClement Deschamps uint8_t sd_fsel; 34d72fc9dcSClement Deschamps qemu_irq out[54]; 35db1015e9SEduardo Habkost }; 36d72fc9dcSClement Deschamps 37d72fc9dcSClement Deschamps #define TYPE_BCM2835_GPIO "bcm2835_gpio" 38*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(BCM2835GpioState, BCM2835_GPIO) 39d72fc9dcSClement Deschamps 40d72fc9dcSClement Deschamps #endif 41