1 // Copyright 2017 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #pragma once 6 7 #include <ddk/device.h> 8 #include <ddk/io-buffer.h> 9 #include <ddk/protocol/gpioimpl.h> 10 #include <ddk/protocol/iommu.h> 11 #include <ddk/protocol/platform/bus.h> 12 13 // BTI IDs for our devices 14 enum { 15 BTI_BOARD, 16 BTI_USB_XHCI, 17 BTI_MALI, 18 BTI_DISPLAY, 19 BTI_VIDEO, 20 BTI_AUDIO, 21 BTI_EMMC, 22 BTI_SDIO, 23 BTI_CANVAS, 24 }; 25 26 typedef struct { 27 pbus_protocol_t pbus; 28 gpio_impl_protocol_t gpio; 29 zx_device_t* parent; 30 iommu_protocol_t iommu; 31 } vim_bus_t; 32 33 // vim-gpio.c 34 zx_status_t vim_gpio_init(vim_bus_t* bus, bool enable_test); 35 36 // vim-i2c.c 37 zx_status_t vim_i2c_init(vim_bus_t* bus); 38 39 // vim-mali.c 40 zx_status_t vim_mali_init(vim_bus_t* bus, uint32_t bti_index); 41 42 // vim-uart.c 43 zx_status_t vim_uart_init(vim_bus_t* bus); 44 45 // vim-usb.c 46 zx_status_t vim_usb_init(vim_bus_t* bus); 47 48 // vim-sd-emmc.c 49 zx_status_t vim_sd_emmc_init(vim_bus_t* bus); 50 51 // vim-sd-emmc.c 52 zx_status_t vim_sdio_init(vim_bus_t* bus); 53 54 // vim-eth.c 55 zx_status_t vim_eth_init(vim_bus_t* bus); 56 57 // vim-fanctl.c 58 zx_status_t vim2_thermal_init(vim_bus_t* bus); 59 60 // vim-display.c 61 zx_status_t vim_display_init(vim_bus_t* bus); 62 63 // vim-video.c 64 zx_status_t vim_video_init(vim_bus_t* bus); 65 66 // vim-led2472g.c 67 zx_status_t vim_led2472g_init(vim_bus_t* bus); 68 69 // vim-rtc.c 70 zx_status_t vim_rtc_init(vim_bus_t* bus); 71 72 // vim-canvas.c 73 zx_status_t vim2_canvas_init(vim_bus_t* bus); 74 75 // vim-clk.c 76 zx_status_t vim_clk_init(vim_bus_t* bus); 77