1// Copyright 2018 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_USB1,
17    BTI_USB2,
18    BTI_DISPLAY,
19    BTI_GPU,
20    BTI_SDHCI,
21
22};
23
24typedef struct {
25    platform_bus_protocol_t pbus;
26    zx_device_t* parent;
27    iommu_protocol_t iommu;
28    gpio_impl_protocol_t gpio;
29    zx_handle_t bti_handle;
30    uint32_t soc_pid;
31} imx8mevk_bus_t;
32
33zx_status_t imx8m_gpio_init(imx8mevk_bus_t* bus);
34zx_status_t imx_usb_init(imx8mevk_bus_t* bus);
35zx_status_t imx_i2c_init(imx8mevk_bus_t* bus);
36zx_status_t imx_gpu_init(imx8mevk_bus_t* bus);
37zx_status_t imx8m_sdhci_init(imx8mevk_bus_t* bus);
38