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/gpio-impl.h> 10#include <ddk/protocol/iommu.h> 11#include <ddk/protocol/platform-bus.h> 12 13// BTI IDs for our devices 14enum { 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 26typedef struct { 27 platform_bus_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 34zx_status_t vim_gpio_init(vim_bus_t* bus); 35 36// vim-i2c.c 37zx_status_t vim_i2c_init(vim_bus_t* bus); 38 39// vim-mali.c 40zx_status_t vim_mali_init(vim_bus_t* bus, uint32_t bti_index); 41 42// vim-uart.c 43zx_status_t vim_uart_init(vim_bus_t* bus); 44 45// vim-usb.c 46zx_status_t vim_usb_init(vim_bus_t* bus); 47 48// vim-sd-emmc.c 49zx_status_t vim_sd_emmc_init(vim_bus_t* bus); 50 51// vim-sd-emmc.c 52zx_status_t vim_sdio_init(vim_bus_t* bus); 53 54// vim-eth.c 55zx_status_t vim_eth_init(vim_bus_t* bus); 56 57// vim-fanctl.c 58zx_status_t vim2_thermal_init(vim_bus_t* bus); 59 60// vim-display.c 61zx_status_t vim_display_init(vim_bus_t* bus); 62 63// vim-video.c 64zx_status_t vim_video_init(vim_bus_t* bus); 65 66// vim-led2472g.c 67zx_status_t vim_led2472g_init(vim_bus_t* bus); 68 69// vim-rtc.c 70zx_status_t vim_rtc_init(vim_bus_t* bus); 71 72// vim-canvas.c 73zx_status_t vim2_canvas_init(vim_bus_t* bus); 74 75// vim-clk.c 76zx_status_t vim_clk_init(vim_bus_t* bus); 77