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 #include <ddk/debug.h>
6 #include <ddk/device.h>
7 #include <ddk/platform-defs.h>
8 #include <ddk/protocol/platform/bus.h>
9 #include <soc/aml-s912/s912-hw.h>
10 
11 #include "vim.h"
12 
13 static const pbus_i2c_channel_t led2472g_channels[] = {
14     {
15         .bus_id = 0,
16         .address = 0x46,
17     },
18 };
19 
20 static const pbus_dev_t led2472g_dev = {
21     .name = "led2472g",
22     .vid = PDEV_VID_GENERIC,
23     .pid = PDEV_PID_GENERIC,
24     .did = PDEV_DID_LED2472G,
25     .i2c_channel_list = led2472g_channels,
26     .i2c_channel_count = countof(led2472g_channels),
27 };
28 
vim_led2472g_init(vim_bus_t * bus)29 zx_status_t vim_led2472g_init(vim_bus_t* bus) {
30     zx_status_t status;
31     if ((status = pbus_device_add(&bus->pbus, &led2472g_dev)) != ZX_OK) {
32         zxlogf(ERROR, "vim_led2472g_init: pbus_device_add() failed for led2472g: %d\n", status);
33         return status;
34     }
35 
36     return ZX_OK;
37 }
38