1 /* 2 * GRLIB AHB APB PNP 3 * 4 * Copyright (C) 2019 AdaCore 5 * 6 * Developed by : 7 * Frederic Konrad <frederic.konrad@adacore.com> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation, either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, see <http://www.gnu.org/licenses/>. 21 * 22 */ 23 24 #ifndef GRLIB_AHB_APB_PNP_H 25 #define GRLIB_AHB_APB_PNP_H 26 27 #define TYPE_GRLIB_AHB_PNP "grlib,ahbpnp" 28 #define GRLIB_AHB_PNP(obj) \ 29 OBJECT_CHECK(AHBPnp, (obj), TYPE_GRLIB_AHB_PNP) 30 typedef struct AHBPnp AHBPnp; 31 32 #define TYPE_GRLIB_APB_PNP "grlib,apbpnp" 33 #define GRLIB_APB_PNP(obj) \ 34 OBJECT_CHECK(APBPnp, (obj), TYPE_GRLIB_APB_PNP) 35 typedef struct APBPnp APBPnp; 36 37 void grlib_ahb_pnp_add_entry(AHBPnp *dev, uint32_t address, uint32_t mask, 38 uint8_t vendor, uint16_t device, int slave, 39 int type); 40 void grlib_apb_pnp_add_entry(APBPnp *dev, uint32_t address, uint32_t mask, 41 uint8_t vendor, uint16_t device, uint8_t version, 42 uint8_t irq, int type); 43 44 /* VENDORS */ 45 #define GRLIB_VENDOR_GAISLER (0x01) 46 /* DEVICES */ 47 #define GRLIB_LEON3_DEV (0x03) 48 #define GRLIB_APBMST_DEV (0x06) 49 #define GRLIB_APBUART_DEV (0x0C) 50 #define GRLIB_IRQMP_DEV (0x0D) 51 #define GRLIB_GPTIMER_DEV (0x11) 52 /* TYPE */ 53 #define GRLIB_CPU_AREA (0x00) 54 #define GRLIB_APBIO_AREA (0x01) 55 #define GRLIB_AHBMEM_AREA (0x02) 56 57 #define GRLIB_AHB_MASTER (0x00) 58 #define GRLIB_AHB_SLAVE (0x01) 59 60 #endif /* GRLIB_AHB_APB_PNP_H */ 61