History log of /fuchsia/zircon/system/dev/board/astro/astro.c
Revision Date Author Comments
# 9d400548 20-Sep-2018 RJ Ascani <rjascani@google.com>

[astro][tee] Enable OP-TEE for Astro

In order to communicate with the OP-TEE OS on Astro, the Astro board
driver must add the OP-TEE device to the platform bus. This change
enables the OP-TEE device and allows it to map the Secure OS memory
region. This memory region is used for communication between the secure
world and the non-secure world.

Test: Manual testing on Astro to ensure device was initialized.
Change-Id: I6c2e6f05c9579a9999df1056ec3215a4f9ab9406


# 6c2ccb39 19-Sep-2018 Mike Voydanoff <voydanoff@google.com>

[gpio] Refactor the GPIO protocol

This is a first step in a move toward using protocols to represent
individual resources. A similar change will be made to the I2C protocol
to bring it in line with how I2C is used on x86 platforms.

From the client's point of view, an instance of the ZX_PROTOCOL_GPIO
protocol now represents a single pin. The protocol remains the same,
except the "uint32_t index" has been removed from all the protocol functions.

For devices that have only one GPIO resource assigned to them, the driver
can simply call device_get_protocol() to access the GPIO protocol for the pin.
To for devices with more than one GPIO pins, a new API in the platform bus called
pdev_get_protocol() must be used instead.

In addition, we add a new protocol ZX_PROTOCOL_GPIO_IMPL, which is now
implemented by the GPIO drivers. This protocol is essentially the same as
the old GPIO protocol, except "index" has been renamed "pin".
Board drivers may use this protocol directly when doing low level system
configuration, specifying pin numbers directly.

TEST: Booted on VIM2 and Hikey.
On VIM2, USB, display, ethernet and the GPIO test driver are working properly
On Hikey, the system boots and USB is functional.

Change-Id: I44f1bc11ad9793543361a2d19d7a2de4458c334b


# 34f2a8b7 04-Sep-2018 Eric Holland <hollande@google.com>

[astro][audio] tdm output driver

TEST: tested on astro hardware with /boot/bin/audio tool

Change-Id: Ic98d52ee260cd06b101fde310affa7d3a266cc68


# 2d20e548 04-Sep-2018 Mike Voydanoff <voydanoff@google.com>

[ddk][gpio] Break gpio_config() API into two functions

gpio_config_in() is used to configure a pin for input, while
gpio_config_out() is used to configure a pin for output.
gpio_config_out() now takes an initial value for the pin,
so the configuration and value can be set atomically to avoid a
race condition or glitch between setting it as output and writing the value.

Also removed some unnecessary GPIO configuration flags.
Now we only have flags for configuring the pull-up in gpio_config_in().
gpio_get_interrupt() uses interrupt handle flags for configuring edge vs level triggered,
so we don't need GPIO_* flags for these.

TEST: manual testing on VIM2, astro and gauss

ZX-2564 #in progress
ZX-2465 #in progress

Change-Id: I280c489ba951ca5953c0a2d57135c3482dd96c37


# 47d1d73b 29-Aug-2018 Payam Moradshahi <payamm@google.com>

[astro][board][display] Use the new board info to get revision

Test: booted on two version of EVT

Change-Id: Ic64abb62712de4411de9c00d73d5a5e375ceb1e1


# 0d71f953 21-Aug-2018 Mike Voydanoff <voydanoff@google.com>

[dev][platform-bus] Clean-up and simplify platform bus protocol:

- Remove "flags" parameter from pbus_device_add().
Now platform devices can only be started in new devhosts.

- Add new API pbus_protocol_device_add(), for binding drivers that implement
platform bus protocols like GPIO and I2C_IMPL.
pbus_protocol_device_add() is equivalent to pbus_device_add(PDEV_ADD_PBUS_DEVHOST)
followed by pbus_wait_protocol().

- Remove pbus_wait_protocol(). pbus_protocol_device_add() does the wait for you automatically.

- Rename pbus_set_protocol() to pbus_register_protocol()

These changes will hopefully make the platform bus protocol easier
to understand and use.
I found two places where people accidentally using PDEV_ADD_PBUS_DEVHOST
inappropriately (probably copy & paste errors), which resulted in
the entire network stack and storage stack running in the platform bus devhost.
Hopefully this change will make it impossible for mistakes like that to happen again.

While doing this I also noticed that the gauss nand driver and vim2 ethernet driver
were running in the platform bus devhost. This change fixes that.

Also removed some remnants of the pbus_device_enable() API, which has been removed previously.

TEST: boot up on qemu, VIM2, gauss and astro and verified platform devices all start up properly

Change-Id: I580269bc6f53a63348ba8ab580259b1ba56dd393


# 3e75c4d7 20-Aug-2018 Brijen Raval <braval@google.com>

[clock][amlogic] Add clock driver to VIM & Astro

Test: Boot up on vim & astro

Change-Id: I55cb7db3bda0a84fd75f75e62ef981a528e761fd


# 28a99035 06-Aug-2018 Brijen Raval <braval@google.com>

[astro][video] Clean up board driver

Move video driver out of the main board driver

Test: Boot up on Astro

Change-Id: If7a04e4af5f9424fd59451f1b166e9e427714f7b


# 5ab0f58e 02-Aug-2018 Brijen Raval <braval@google.com>

[astro][thermal] Initial commit for Temp Sensor

This CL is first of many to follow.
Thermal driver for Astro implements the following:
- Adds a thermal driver
- Thermal driver will consist of following:
- Temperature Sensor driver
- CPU Voltage & Frequency Scaling driver
- Some logic to set trip points etc.

This CL focuses primarily on the Temperature Sensor

Test: Tested on Astro and verified reading correct temp

Change-Id: I041c237389becd9876a6f0693e3d1248a2c83447


# 1c7317bc 31-Jul-2018 Carlos Pizano <cpu@google.com>

[zircon][dev] Fallback RTC driver

This CL introduces a fake RTC driver which can be used on
any board which does not have an actual RTC chip.

The device does not save the last value set but even so
it is useful because the uper layers actually use
https://roughtime.googlesource.com/roughtime to set the
RTC at every boot, thus this device in that case is
as useful as a real RTC device.

TEST = this device is only bound on the Astro so boot
up to garnet in the astro connected to the
internet and via ssh issue $date and check is
correct.

Change-Id: I95aafb9e425305067fbdb2ffba130537d2ec551d


# d0a0db64 26-Jul-2018 Mike Voydanoff <voydanoff@google.com>

[astro][bluetooth] Add delay after resetting the Bluetooth chip

and move Bluetooth initialization to the end of the start thread
to avoid slowing down the rest of the boot process.

TEST: manual testing on astro
Change-Id: I5f301bd7546ed8d3a32c5755abe0963c9e44be15


# 662b1e84 10-Jul-2018 Andres Oportus <andresoportus@google.com>

[astro][light] tcs3400 ambient light driver

ZX-2320 #comment progress

Test: Read device and confirm that readings match lighting conditions
$ dd if=/dev/sys/platform/0a:01:1/tcs-3400 of=/data/test-data.bin bs=2 count=3
2;dd[00041.319] 02879.02928> TCS-3400 clear light read: 0x0072
[00041.320] 02879.02928> TCS-3400 clear light read: 0x0072
3+0[00041.320] 02879.02928> TCS-3400 clear light read: 0x0072
records in
3+0 records out
6 bytes copied

Change-Id: Ia175b035d38f41ceeac2cca21e160be020dd2a57


# 876bbb88 03-Jul-2018 Payam Moradshahi <payamm@google.com>

[astro][display] Add support for canvas driver
zx-2317

Test: Tested on Astro and display came up successfully.

Change-Id: I9196b9fccf867394147f7844fd4dc8f7eaa3e1be


# 077c9205 29-Jun-2018 Mike Voydanoff <voydanoff@google.com>

[board][astro] Bluetooth support:

- Configure Bluetooth UART

- Turn on Bluetooth enable GPIO

- Enable 32K clock for BT/Wifi module

Test: Manual on astro. UART and BT HCI drivers load, HCI reset command is sent,
UART is successfully switched to high speed.

Bug: NET-1005 # in progress

Change-Id: I5d8facfbeae4f8806aefe82c4e39c1d7bb52ef55


# 38f8753e 26-Jun-2018 Ruchira Ravoori <ravoorir@google.com>

[zircon][sdio] Enable sdio on vim2 and astro

Now that all the changes to publish a sdio device are checked in,
This changeset enables sdio on vim2 and astro.

Test: Tested with a test bind driver that binds to the device published
by sdmmc layer on vim2 and astro

Change-Id: I271bb37233e0655438d9b722f92bb9d8c16706de


# e163899b 08-Jun-2018 Ruchira Ravoori <ravoorir@google.com>

[zircon][sdio] Update board files to support sdio on aml-s905d2 and astro

This changeset updates the board files for sdio support but keeps it
diabled until sdio is fully functional

Change-Id: Ie2c6387bf9972ea9b970ad6e84dda5f5a3360ccb


# c91aae7a 04-Jun-2018 Brijen Raval <braval@google.com>

[amlogic][gpu] Refactoring GPU driver

Change-Id: Ic04890b638912982e780b1141c301adf57548fbe


# 4cae5b1e 24-May-2018 Mohan Srinivasan <srmohan@google.com>

[astro] Astro board driver for Amlogic RAW_NAND.

Change-Id: Ic6d0c029dbbce2b52505de2de00081ffca20a304


# a0cbd04f 06-Jun-2018 John Bauman <jbauman@google.com>

[dev][board][astro] Add binding for video decoder

Change-Id: I7f1ef7cacaa93767925d53d0bbcd996cab96cb8c


# 46df3b67 21-May-2018 Eric Holland <hollande@google.com>

[astro][touch] ft3x27 driver

Change-Id: I2958fdef9e2a8b0a4b641dd5078d2fb6e60d1843


# e6710a45 11-May-2018 John Bauman <jbauman@google.com>

[dev][soc] Share aml-mali between astro and aml-s905d2

They have the same soc so it should work on both.

Change-Id: I97ef2faba697a5d3081965a48a559e1bcc9f6624


# c1397e75 11-May-2018 Payam Moradshahi <payamm@google.com>

[astro][display] Basic display driver for Astro

Change-Id: I4f15704bdc6b5f8010803c21f5b85822dcff1182


# 4d39a9f4 09-May-2018 Eric Holland <hollande@google.com>

[astro][i2c] Fix i2c mappings

Change-Id: I4698beb977236357fcef1e06e17208a2cc449b33


# 0a6a7956 30-Mar-2018 Mike Voydanoff <voydanoff@google.com>

[astro][aml-s905d2] Enable USB host support on astro and aml-s905d2

USB phy code is based on decyphering Linux code in drivers/amlogic/usb/phy/

Change-Id: I7404d2ce8a394cd6ded1f5aafb3760f8e64a5b55


# 02619476 03-May-2018 Mike Voydanoff <voydanoff@google.com>

[dev][board][astro] Initial board driver for astro

Using a copy of aml-s905d2 driver as a starting point

Change-Id: If83cc62942d8125a5c200665cff6882b25c77b11