History log of /openbsd-current/sys/dev/fdt/files.fdt
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.203 31-Jul-2024 mglocker

Add ufshci(4) at fdt support.

This lets me boot the Samsung Galaxy Book4 Edge in DT mode with ufshci(4),
based on a WIP DTB file.

ok kettenis@


# 1.202 27-Mar-2024 patrick

Support having bcmpcie(4) as both PCIe bus and simplebus to enable
use of the Raspberry Pi 5's RP1 I/O controller, which is connected
over PCIe. With this, the peripherals on the RP1 are enumerated and
attached as well.

ok kettenis@


Revision tags: OPENBSD_7_5_BASE
# 1.201 02-Mar-2024 kettenis

Add support for attaching rkpmic(4) to an SPI bus. Add support for
the RK806 PMIC which can attach to both I2C and SPI. Based on an old
diff from patrick@

ok patrick@


# 1.200 02-Mar-2024 kettenis

Add rkspi(4), a driver for the SPI controller found on various Rockchip
SoCs. Based on an earlier diff from patrick@

ok patrick@


# 1.199 16-Jan-2024 jsg

update drm to linux 6.6.12

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_4_BASE
# 1.198 29-Aug-2023 kettenis

Add FDT support for dwiic(4)


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.202 27-Mar-2024 patrick

Support having bcmpcie(4) as both PCIe bus and simplebus to enable
use of the Raspberry Pi 5's RP1 I/O controller, which is connected
over PCIe. With this, the peripherals on the RP1 are enumerated and
attached as well.

ok kettenis@


Revision tags: OPENBSD_7_5_BASE
# 1.201 02-Mar-2024 kettenis

Add support for attaching rkpmic(4) to an SPI bus. Add support for
the RK806 PMIC which can attach to both I2C and SPI. Based on an old
diff from patrick@

ok patrick@


# 1.200 02-Mar-2024 kettenis

Add rkspi(4), a driver for the SPI controller found on various Rockchip
SoCs. Based on an earlier diff from patrick@

ok patrick@


# 1.199 16-Jan-2024 jsg

update drm to linux 6.6.12

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_4_BASE
# 1.198 29-Aug-2023 kettenis

Add FDT support for dwiic(4)


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.201 02-Mar-2024 kettenis

Add support for attaching rkpmic(4) to an SPI bus. Add support for
the RK806 PMIC which can attach to both I2C and SPI. Based on an old
diff from patrick@

ok patrick@


# 1.200 02-Mar-2024 kettenis

Add rkspi(4), a driver for the SPI controller found on various Rockchip
SoCs. Based on an earlier diff from patrick@

ok patrick@


# 1.199 16-Jan-2024 jsg

update drm to linux 6.6.12

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_4_BASE
# 1.198 29-Aug-2023 kettenis

Add FDT support for dwiic(4)


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.199 16-Jan-2024 jsg

update drm to linux 6.6.12

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_4_BASE
# 1.198 29-Aug-2023 kettenis

Add FDT support for dwiic(4)


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.198 29-Aug-2023 kettenis

Add FDT support for dwiic(4)


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.197 31-Jul-2023 kettenis

Make the RSB interface optional such that we can use this driver in kernels
without the sxirsb(4) driver.

ok uaa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.196 22-Jul-2023 patrick

Add qcsdam(4), a driver for the PMIC Shared Direct Access Memory found on
Qualcomm SoCs.

ok kettenis@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.195 01-Jul-2023 drahn

Add driver for QC cpu Power States.

ok kettenis@ patrick@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.194 27-Jun-2023 patrick

Add qctsens(4), a driver for the Temperature Sensor found on Qualcomm SoCs.

The driver not only provides the temperature readings for the cores, cluster
and memory in hw.sensors, but also allows the thermal zone code to act on
temperature changes.

ok drahn@


# 1.193 10-Jun-2023 patrick

Add qcpas(4), a driver for the Peripheral Authentication Service found on
Qualcomm SoCs.

The immediate task for this driver is to provide firmware to the auxiliary
cores and to bring them up. This is accomplished by parsing the ELF files
and providing the data in certain memory regions, and telling qcscm(4) to
check and execute the firmware on the auxiliary cores.

With the cores up we can now talk to the firmware. The glink-edge subnode
indicates that we can talk to it using the GLINK protocol over shared memory
provided by qcsmem(4). This interface is essentially a channel multiplexer,
with each channel identified through an ASCII string.

One of those channels connects to a PMIC router, which allows us to talk to
the battery manager service that contains information about the charging and
battery states.

ok drahn@ kettenis@


# 1.192 23-May-2023 patrick

Add qcaoss(4), a driver for the Always On Subsystem found on Qualcomm SoCs.

This subsystem typically provides an interface for clocks and regulators
not controlled via RPMH. We will use it to switch the load state of the
ADSP co-processor. Surprisingly, or maybe not, the interface uses ASCII
text that kind of looks like JSON.

ok kettenis@


# 1.191 19-May-2023 patrick

Add qcsmptp(4), a driver to share 32-bit values between (co-)processors.

The inbound path is typically used as interrupt controller, e.g. to handle
handover and ready interrupts when a remoteproc boots. The outbound path
seems to be used to stop cores, but we don't do that yet.

ok kettenis@


# 1.190 19-May-2023 patrick

Add qcsmem(4), a driver for the shared memory table on Qualcomm SoCs
used to establish data communication channels with co-processors.

ok kettenis@ drahn@


# 1.189 17-May-2023 patrick

Add qcmtx(4), a driver for the hardware spinlock on Qualcomm SoCs that
is used to synchronize access to the shared memory table between the
application cores we run on and the co-processors next to us.

ok kettenis@ drahn@


# 1.188 17-May-2023 patrick

Add qcipcc(4), a driver for the inter-processor mailbox interface used
to inform (and get informed) of changes to shared memory state.

ok kettenis@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.187 28-Apr-2023 phessler

Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.

suggestions and OK patrick@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.186 19-Apr-2023 dlg

dwmshc config


# 1.185 04-Apr-2023 jsg

Synopsis Designware -> Synopsys DesignWare


# 1.184 02-Apr-2023 dlg

add rkusbphy(4), a driver for the usb2phy on rockchip SoCs.

the rkusbphy device has children nodes in the device tree which are
the actual phys. this driver mostly exists to wire those children
up as PHYs and turn the associated regulators on when a host
controller enables the PHYs. in the future it should enable clocks
and take ports out of suspend too.

i'm not enabling this yet because it's useless without some tweaks
in the usb host controller drivers.

ok kettenis@


# 1.183 01-Apr-2023 kettenis

Add rkiovd(4), a driver for the IO voltage domains on Rockchip SoCs. This
driver makes sure the SoC IO voltage domains stay in sync with the voltage
provided by the regulator associated with the domain.

ok dlg@


Revision tags: OPENBSD_7_3_BASE
# 1.182 19-Mar-2023 kettenis

Add rkpciephy(4), ad friver for the PCIe 3.0 PHY dound on the RK356x.
The driver in principle supports bifurcation but this is (largely) untested.

ok dlg@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.181 16-Mar-2023 kettenis

Add missing dependecy for rkcomphy(4); pointed out by dlg@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.180 12-Mar-2023 kettenis

Add rkcomphy(3), a driver for the "naneng" combo PHY found on the RK356x
(and RK3588). This is a PIPE PHY with support for PCIe, SATA, USB3, SGMII
and QSGMII. For now only PCIe, SATA and USB3 support are implemented.
SATA support has not been tested.

Also add the refernce clocks needed by the PHYs to rkclock(4).

ok mlarkin@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.179 14-Feb-2023 kettenis

Fix scmi(4) entry.


# 1.178 13-Feb-2023 kettenis

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 1.177 13-Feb-2023 patrick

Add dwqe(4), a driver for the Synopsis DesignWare Ethernet QoS controller
used on the NXP i.MX8MP, the Rockchip RK35xx series and Intel Elkhart Lake.

For now it is committed with FDT-attachment only and still in rough shape,
but it's time for development to occur in-tree.

Discussed with bluhm@
ok kettenis@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.176 03-Feb-2023 kettenis

enable sncodec(4)


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.175 16-Jan-2023 patrick

Manage RTC offset through UEFI variables handled by a TEE application that
can be interacted with using SMC calls.

ok kettenis@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.174 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.173 12-Dec-2022 kettenis

Fix USB hotplug on type-C connectors of Apple Silicon hardware. The USB
controller on these machines does not see connection events. Instead we
need to rely on the USB PD controllers to notify us of a new connection
and reset the USB controller. This diff implements this by adding a new
tipd(4) driver and infrastructure to notify xhci(4) of new connections.

ok patrick@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.172 23-Nov-2022 kettenis

Add pwmleds(4), a driver for PWM controlled LEDs.
For now this only implements keyboard backlight support.

ok kn@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.171 10-Nov-2022 patrick

Add qcpdc(4), a driver for the Qualcomm Power Domain controller found on
Qualcomm SoCs. This is mostly a shim torwards agintc(4).

ok kettenis@


# 1.170 09-Nov-2022 patrick

Add qcpwm(4), a driver for the PWM found on Qualcomm PMICs. This is used
on the Lenovo x13s to control the display backlight brightness.

ok kettenis@ mlarkin@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.169 08-Nov-2022 patrick

Hook up all those Qualcomm SoC SPMI devices.


# 1.168 08-Nov-2022 tobhe

Add gpiobl(4), a driver for gpio controlled display backlights. This will
allow us to turn off the screen on Apple Silicon laptops until we have a
proper display controller driver.

ok kettenis@ patrick@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.167 06-Nov-2022 patrick

Add FDT-based attachment for qciic(4).

ok kettenis@


# 1.166 06-Nov-2022 patrick

Add FDT-based attachment for qcgpio(4).

ok kettenis@


# 1.165 06-Nov-2022 patrick

Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@


Revision tags: OPENBSD_7_2_BASE
# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.164 14-Jul-2022 kettenis

Add sxirintc(4), a driver for the "wake up" interrupt controller found
on various Allwinner SoCs.

ok anton@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.163 09-Jun-2022 kettenis

Add gpiorestart(4), a driver that resets a SoC/board/machine using a GPIO
pin.

ok jsg@


Revision tags: OPENBSD_7_1_BASE
# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.162 30-Jan-2022 kettenis

Add tascodec(4), a driver for the TI TAS2770/TAS5770 digital audio
amplifier codec found on Apple M1 Macs.

ok patrick@, ratchov@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.161 18-Jan-2022 visa

Add cdsdhc(4), a driver for the Cadence SD/SDIO/eMMC host controller.

Tested on a PolarFire SoC.


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.160 21-Nov-2021 kettenis

Add iicmux(4), a driver that switches between I2C busses connected to
a single I2C controller by using the pin muxing facilities of an SoC.

ok visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.159 09-Nov-2021 kn

Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis


# 1.158 09-Nov-2021 kn

Sort gpio{leds,charger}


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.157 25-Sep-2021 kn

Add gpiocharger(4) for arm64

This driver provides support for battery chargers connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.156 25-Sep-2021 kn

Add gpioleds(4) for arm64

This driver provides support for LEDs connected to GPIO pins,
such as those found on the Pinebook Pro.

OK kettenis


Revision tags: OPENBSD_7_0_BASE
# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.155 29-Jun-2021 patrick

Add rktcphy(4), a driver for the Type-C PHY controller found on the
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.

ok kettenis@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.154 16-Jun-2021 kettenis

Add ociic(4) and dapmic(4). The first is a driver for the OpenCores I2C
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.

ok deraadt@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.153 28-May-2021 visa

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@


# 1.152 28-May-2021 patrick

Move imxdog(4) to sys/dev/fdt.

ok kettenis@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.151 18-May-2021 kettenis

Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.

Unbreaks armv7 kernel builds.


# 1.150 17-May-2021 kettenis

Move pciecam.c to dev/fdt/.

ok deraadt@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.149 24-Apr-2021 visa

Add cduart(4), a driver for the Cadence UART found on Xilinx Zynq SoCs.

Tested on Xilinx Zynq-7000.

Input and OK kettenis@


# 1.148 24-Apr-2021 jsg

Add gfrtc a driver for the real-time clock interface of Google's
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.

feedback and ok kettenis@


Revision tags: OPENBSD_6_9_BASE
# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.147 07-Apr-2021 kettenis

Add graphaudio(4), a driver to support linking together audio components
based on the audio graph description that uses ports and endpoints in
the device tree.

ok patrick@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.146 05-Feb-2021 patrick

Move exuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.145 18-Dec-2020 patrick

Add glue for the USB3 controller on the i.MX8MP SoC. NXP had this glue for
the i.MX8MQ as well, but while upstreaming they were told to shove it. Now
for the i.MX8MP this glue is making a comeback. Apparently there's some
divergence in low power handling to the regular DWC3 IP with special IRQs.
Now the question remains if this driver will be obsolete soon again, or if
this time it's here to stay. The fun part is that while this driver was
written independent from the previous version, the diff is basically zero.

ok kettenis@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.144 29-Nov-2020 kettenis

Add mvsw(4), a driver for Marvell "SOHO" switches that are found on some
SBCs (Turris MOX, SolidRun Clearfog GT 8K). For now this driver only
supports the 88E6141 and 88E6341 switches. More switch types can be added
later.

The driver does some minimal hardware configuration to make it function
like a dumb switch. Essentially it enables all ports mentioned in the device
tree and enables the switchport PHYs and SERDES connections.

ok deraadt@, patrick@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.143 28-Nov-2020 kettenis

make it possible to attach other devices (for example switches) to mvmdio(4).

ok patrick@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.142 17-Nov-2020 patrick

Split imxiic(4) into the FDT-attachment code and the i.MX I2C code
in preparation for upcoming ACPI-attachment.

ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.141 25-Jun-2020 patrick

Add mvpp(4), a driver for the Marvell Packet Processor v2, as used on
the Armada 7K and 8K SoCs. Additionally, it seems to be used on the
upcoming CN9K SoCs. This only supports version v2.2, since the older
v2.1 is only used on some old ARMv7 we have no support for, and where
there is no hardware for us to support.

A huge part of this driver is configuring the TCAM/SRAM-based "parser".
Thus most of the code, especially the parser handling, was ported from
EDK2 with a sed script doing plenty of automatic renaming and un-camel-
casing.

The controller supports multiple TX/RX queues/vectors and RSS, so this
would be a nice platform for testing network processing improvement on
arm64. For now though we only configure and use a single queue.

The driver is still unfinished, but it's time to continue the work in
tree. At least we can already send and receive packets, good enough
for dhclient to work.

Since the MACCHIATObin uses Clause 45 10G PHYs and SFPs, link state
handling is still a bit bogus, as we have no support for that. The
1G RJ45 port works fine though.

ok dlg@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.140 20-Jun-2020 kettenis

Add bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.

Written by Alastair Poole.


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.139 11-Jun-2020 patrick

Add escodec(4), a driver for the Everest ES8316 audio codec,
which is used on the Pinebook Pro.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.138 11-Jun-2020 patrick

Add rkiis(4), a driver for the I2S controller found on the Rockchip
RK3399.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.137 10-Jun-2020 patrick

Add simpleamp(4), a driver for "simple audio amplifier". This
is one of the aux devices for simpleaudio(4). Its only job is
to turn the amplifier's regulator and GPIO on/off when needed.

ok kettenis@


# 1.136 10-Jun-2020 patrick

Add simpleaudio(4), a driver for "simple audio cards". This is
just a wrapper that connects the I2S controller, the codec and
some aux devices, and provides the information needed to set all
those devices up to use the same settings.

With help from ratchov@
ok kettenis@


# 1.135 10-Jun-2020 patrick

Add cwfg(4), a driver for the CellWise CW201x fuel gauge. This allows
reading the current battery voltage, capacity and remaining minutes on
the Pinebook Pro. Integration into the APM framework stays as exercise
for the reader.

Driver written by Jared McNeill at NetBSD
ok kettenis@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.134 22-May-2020 patrick

Add mvkpcie(4), a driver for the Aardvark PCIe controller found on
the Armada 3700 SoC. So far only MSI is supported, since it was
easier to implement. Both MSI and INTx share a single interrupt
pin, so there's nothing to gain anyway, apart from legacy device
support.

With this I can push traffic through a bwfm(4) in my Turris Mox.

ok kettenis@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.133 18-May-2020 kettenis

Add amlpwrc(4), a driver for the power domain controller found on various
Amlogic SoCs.


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.132 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.131 27-Apr-2020 patrick

Add tcpci(4) to support TCPCI-compliant USB Type-C port controllers.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

"go for it" kettenis@


# 1.130 27-Apr-2020 kettenis

Add gpio support to bcmgpio(4) and make gpio(4) attach such that GPIOs
that aren't claimed by kernel drivers can be used from userland.

ok sthen@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.129 26-Apr-2020 patrick

Add imxpciephy(4), a driver for the i.MX7D's PCIe PHY, which
is also implemented on the i.MX8MM. So far this driver is a
glorified regmap provider, which will be used by dwpcie(4).

ok kettenis@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.128 25-Apr-2020 kettenis

Add bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
This is really just an I2C controller.

ok patrick@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.127 24-Apr-2020 patrick

Whitespace fixup for imxehci(4)


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.126 24-Apr-2020 kettenis

Add bcmgpio(4). For now this driver only provides pinctrl functionality.
Actual gpio support (possibly including gpio(4) support) will come later.

ok jsg@


# 1.125 23-Apr-2020 patrick

Move imxehci(4) to sys/dev/fdt.

ok kettenis@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.124 22-Apr-2020 kettenis

Add bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller
found on the Raspberry Pi.

The driver was ported from NetBSD by Neil Ashford and tobhe@.

ok patrick@, tobhe@


# 1.123 21-Apr-2020 tobhe

Add bcmdmac, a driver for the DMA controller found on BCM283x SoCs.

Original work by Neil Ashford and dlg@
ok kettenis@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.122 19-Apr-2020 kettenis

Add bcmirng(4), a driver for the RNG200 random number generator found on
the Raspberry Pi 4.

ok deraadt@


# 1.121 19-Apr-2020 tobhe

Add bcmclock, a driver for the BCM283X CPRMAN clock controller.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.120 19-Apr-2020 tobhe

Add bcmmbox, a driver for the VideoCore messagebox interface on BCM283X.

Original work by Neil Ashford and dlg@
Feedback from jsg@
ok kettenis@, dlg@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.119 19-Apr-2020 kettenis

Add bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
In its current state the driver relies on the firmware for initializing
the controller. Therefore it only really works when using the EDK2-based
UEFI firmware.

ok jsg@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.118 18-Apr-2020 kettenis

Add glue to let bse(4) attach using the FDT.

ok jsg@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.117 03-Apr-2020 kettenis

Add rkrng(4), a driver for the random number generator found on various
Rockchip SoCs.

ok kurt@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.116 29-Mar-2020 kettenis

Add glue to make ipmi(4) attach to FDT.

ok deraadt@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.115 27-Mar-2020 patrick

Add imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.

ok kettenis@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.114 20-Mar-2020 patrick

Add bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.

ok kettenis@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.113 02-Mar-2020 kettenis

Add rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip
RK3399 SoC.

ok patrick@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.112 21-Feb-2020 patrick

Add rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.111 21-Feb-2020 patrick

Add rkvop(4), a driver for the RK3399's Video Output Processors,
which transfer a framebuffer to outputs like DisplayPort or HDMI.
Taken from NetBSD and adjusted to our layers.

ok kettenis@


# 1.110 21-Feb-2020 patrick

Add rkdrm(4), a driver which combines all the separate components
and lets drm(4) attach to it. Taken from NetBSD and adjusted to
our layers.

ok kettenis@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.109 26-Jan-2020 patrick

Add simplepanel(4), a driver for simple display panels. This one
is good enough to enable the Pinebook Pro's panel.

It would be nice to make use of the DRM's BSD-licensed panel code,
which has an extensive list of panels and its settings.

ok kettenis@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.108 14-Jan-2020 kettenis

Add amlsm(4), a driver for the "secure monitor" firmware interface.
For now, this driver fetches the "chip id" and feeds this as entropy
to the kernel's random subsystem.


# 1.107 14-Jan-2020 kettenis

Add amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.106 03-Dec-2019 patrick

Add pwmfan(4), a driver for PWM-regulated fans.

ok kurt@


# 1.105 03-Dec-2019 patrick

Add rkpwm(4), a driver for the RK3399's PWM controller.

ok kurt@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.104 29-Nov-2019 patrick

Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.


# 1.103 29-Nov-2019 patrick

Make rkgrf(4) behave like a simplebus(4) so we can attach drivers
to its subnodes, which are some PHYs.

Tested by kurt@
ok kettenis@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.102 23-Oct-2019 kettenis

Add sxisid(4), a driver to read the on-chip eFuses written by
Krystian Lewandowski.

ok patrick@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.101 21-Oct-2019 kettenis

Add sxipwm(4) and pwmbl(4). Thse two drivers together add support for the
backlight controller on the Pinebook.

ok patrick@, jsg@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.100 16-Oct-2019 kettenis

Move sxidog(4) such that we can use it on arm64.

ok patrick@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.99 13-Oct-2019 kettenis

Fix whitespace issue spotted by Krystian Lewandowski.


Revision tags: OPENBSD_6_6_BASE
# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.98 07-Oct-2019 patrick

Add moxtet(4), a driver for the Turris Mox modules. For now this
driver only enumerates and shows the connected modules. The next
step is to implement GPIO controller functionality to e.g. control
the pins to the SFP on the MOX D.

ok kettenis@


# 1.97 07-Oct-2019 patrick

Add mvspi(4), a driver for the SPI controller on the
Armada 3700 SoC.

ok kettenis@


# 1.96 07-Oct-2019 kettenis

Add amliic(4), a driver for the I2C controller found on Amlogic SoCs.

ok patrick@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.95 30-Sep-2019 kettenis

Add pwmreg(4), a driver that implements a voltage regulator that uses a
PWM controller to set the voltage.

ok patrick@


# 1.94 30-Sep-2019 kettenis

Add amlpwm(4), a driver for the PWM controller found on various Amlogic SoCs.

ok patrick@


# 1.93 29-Sep-2019 kettenis

Replace dwge(4) with a new driver based on dwxe(4). There are many
similarities between the two and using a common approach helps fixing bugs.
The new driver is better integrated with the device tree framework and
is faster (mainly because the DMA engine is configured properly now).

Tested on all currently supported variants of the hardware.

ok jsg@, jmatthew@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.92 07-Sep-2019 patrick

Add sfp(4), a driver that allows talking to SFPs connected over
an I2C bus and provides a method to read its pages over the SFP
framework.

Feedback from dlg@
ok kettenis@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.91 06-Sep-2019 patrick

Add mviic(4), a driver to support the I2C controller on the
Armada 3700 SoC.

With feedback from and ok kettenis@


# 1.90 05-Sep-2019 patrick

Add mvdog(4), a driver to support the watchdog on the Armada 3700 SoC.
At the moment it only supports disabling the watchdog, which lets me
continue to work on the Turris Mox.

ok kettenis@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.89 01-Sep-2019 kettenis

Add amlmmc(4), a driver for the SD/MMC controller found on various
Amlogic SoCs. Still work in progress.


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.88 29-Aug-2019 kettenis

Add amldwusb(4), amlusbphy(4) and amlpciephy(4), drivers for the USB
controller glue and USB PHYs found on the Amlogic G12A/B SoCs.

ok patrick@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.87 28-Aug-2019 kettenis

Add amlpinctrl(4), a driver to configure pins and control GPIOs on Amlogic
SoCs. For now only a limited set of GPIO pins on the G12A/G12B variants
are supported.

ok patrick@


# 1.86 27-Aug-2019 kettenis

Add amlrng(4), the simples random numer generator driver ever.


# 1.85 27-Aug-2019 patrick

Add imxtmu(4), a driver to support the temperature sensors on
the i.MX8M SoCs.

ok kettenis@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.84 27-Aug-2019 kettenis

amclock(4), a driver for the Amlogic SoC clocks. For now this implements
a tiny number of clocks for the G12A/B families only.

ok jsg@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.83 26-Aug-2019 kettenis

Add amlreset(4), a driver to support reset signal controller blocks on
Amlogic SoCs.

ok patrick@


# 1.82 26-Aug-2019 kettenis

Add amluart(4), a driver for the UARTs found on various Amlogic SoCs.

ok jsg@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.81 11-Aug-2019 kettenis

Add sxisyscon(4) a driver for the system controller found on various
Allwinner SoCs.

This is basically a stripped down syscon(4) and is needed because the
Linux device trees dropped the "syscon" compatible.

ok patrick@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.80 11-May-2019 patrick

Add fusbtc(4) to support the Fairchild FUSB302 USB Type-C controller.
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.

This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.

ok kettenis@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.79 30-Apr-2019 patrick

Add mvuart(4) to support the Armada 3720's serial console.

ok kettenis@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


Revision tags: OPENBSD_6_5_BASE
# 1.78 01-Apr-2019 patrick

imxdwusb(4) and imxpd(4) are no longer needed.

ok kettenis@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.77 03-Feb-2019 patrick

Add mvgicp(4), a driver for the Marvell extension to the GIC that
allows triggering SPI interrupts by doing memory transactions. This was
already partially implemented in mvicu(4) and is now outsourced into its
own driver since we need better initialization when booting using u-boot.
Also implement new and legacy bindings in mvicu(4), relying on the new
mvgicp(4) driver.

ok kettenis@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.76 11-Jan-2019 patrick

imxsrc(4), a driver for the i.MX System Reset Controller. We will
use this to assert the reset pins for e.g. the PCIe controller.

ok kettenis@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.75 04-Jan-2019 dlg

add support for ohci, as found on the pine64

this currently relies on the usbphy code in the ehci fdt glue to
work, but this is a work in progress. there's an extra printf of
fdt in the dmesg to make the ohci checkrev code not look terrible.

ok kettenis@


Revision tags: OPENBSD_6_4_BASE
# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.74 27-Aug-2018 kettenis

Add hitemp(4), a driver for the temperature sensors on the HiSilicon Hi3660
and Hi3670 SoCs.


# 1.73 27-Aug-2018 kettenis

Add hiclock(4). Make sure hireset(4) attaches early.


# 1.72 27-Aug-2018 kettenis

Add hirest(4), a driver to support reset signal controller blocks on
HiSilicon SoCs.


# 1.71 27-Aug-2018 kettenis

Add glue for the USB3 controller on the HiKey 970.


# 1.70 26-Aug-2018 kettenis

Add pinctrl(4), a generic pin mux driver.

ok patrick@


# 1.69 26-Aug-2018 kettenis

Add plgpio(4), a driver for the ARM PrimeCell GPIO (PL061) peripheral.

ok jsg@, patrick@


# 1.68 02-Aug-2018 patrick

Add I2C attachment code to ssdfb(4). The difference between the I2C
and SPI bus is simply how to let the chip know it's a command or data
transfer. Otherwise we push the very same bits.


# 1.67 30-Jul-2018 patrick

Add ssdfb(4), a driver for the SSD1309 controller that drives an
128x64 OLED display. With the typical 8x16 font we get 4 rows with
16 characters each on it. The controller can be driven using I2C,
3-wire and 4-wire SPI. This commit includes support for the 4-wire
protocol.

ok deraadt@


# 1.66 26-Jul-2018 patrick

Add imxspi(4), a driver for the i.MX SPI controller. This is the first
SPI controller in our tree. Add a basic generic SPI infrastructure as
well.

ok kettenis@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.65 02-Jul-2018 kettenis

Allow pluart(4) to attach to acpi(4).

ok mlarkin@, patrick@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.64 16-Jun-2018 kettenis

Add imxrtc(4), a driver for the "secure" RTC in the Low Power Domain of the
SNVS block found on i.MX7 and i.MX8.


# 1.63 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.62 02-Jun-2018 kettenis

Add fanpwr(4), a driver for the Fairchild FAN53555 voltage regulator.


# 1.61 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.60 16-May-2018 patrick

Add glue for the USB3 controller on the i.MX8MQ SoC.

Discussed with kettenis@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.59 02-May-2018 patrick

Add imxpd(4) which is a power domain controller driver that
essentially calls into ATF to make it supply power.

ok kettenis@


# 1.58 20-Apr-2018 dlg

add a small driver for AMDs cryptographic co processor.

the hardware provides crypto offload, zlib offload, and an rng.
this code only supports the rng at the moment.

this device is present on their amd seatlle platforms, and very
present on their epyc stuff.

ok kettenis@ jmatthew@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.57 02-Apr-2018 kettenis

Add mvrng(4), a driver for the random number generator on the Marvell Armada
7K & 8K SoCs.


# 1.56 02-Apr-2018 patrick

Move imxiomuxc(4) to sys/dev/fdt.


# 1.55 02-Apr-2018 patrick

Move fec(4) to sys/dev/fdt.


# 1.54 02-Apr-2018 patrick

Move imxccm(4) to sys/dev/fdt.


# 1.53 02-Apr-2018 kettenis

Add dwpcie(4), a (minimal) driver for the Synopsys Designware PCIe core in
Root Complex mode. In its current state it probably only works on the
Marvell Armada 7K and 8K SoCs, but the same core is used on many other cores
as well.


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.52 31-Mar-2018 kettenis

Add mvtemp(4), a driver for the temperature sensors found on Marvell Armada
SoCs.


# 1.51 30-Mar-2018 patrick

Move imxanatop(4) to sys/dev/fdt.


# 1.50 30-Mar-2018 patrick

Move imxiic(4) to sys/dev/fdt.


# 1.49 30-Mar-2018 patrick

Move imxesdhc(4) to sys/dev/fdt.


# 1.48 30-Mar-2018 patrick

Move imxgpio(4) to sys/dev/fdt so it can be shared between arm64 and armv7.


# 1.47 30-Mar-2018 patrick

Move imxgpc(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

ok kettenis@


# 1.46 29-Mar-2018 patrick

Move imxuart(4) to sys/dev/fdt so it can be shared between arm64 and armv7.

Discussed with kettenis@


# 1.45 29-Mar-2018 kettenis

Add mvrtc(4), a driver for the RTC integrated on various Marvell Armada SoCs.


Revision tags: OPENBSD_6_3_BASE
# 1.44 21-Mar-2018 kettenis

Add mvicu(4), a driver for the Interrupt Consolidation Unit found on
Marvell Armada 7K and 8K SoCs.

ok patrick@


# 1.43 20-Mar-2018 kettenis

Add mvgpio(4), a driver to handle GPIOs on Marvell SoCs.


# 1.42 17-Mar-2018 kettenis

Add mvclock(4) a clock driver for the AP806 and CP110 blocks found on Marvell
Armada 7K and 8K SoCs.

ok patrick@


# 1.41 17-Mar-2018 kettenis

If we are compatible with "simple-mfd", attempt to attach child nodes.

ok visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.40 24-Feb-2018 kettenis

Add bcmrng(4), a driver for the random number generator on the Raspberry Pi.


# 1.39 24-Feb-2018 kettenis

fix pasto


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.38 24-Feb-2018 kettenis

Add bcmtemp(4), a driver for the temperature sensor on the Raspberry Pi.


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.37 17-Jan-2018 kettenis

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 1.36 06-Jan-2018 kettenis

Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.


# 1.35 02-Jan-2018 kettenis

Initial stab at a driver for the PCIe interface on the Rockhip RK3399. For
now it cheats when setting up an interrupt handler. This cheat only works
because it currently effectively only supports a single device. But the
cheat works well enough to support the Firefly SATA adapter board.


# 1.34 31-Dec-2017 kettenis

Add sxitemp(4), a driver for the temperature sensors on the Allwinner H5 SoC.


# 1.33 31-Dec-2017 kettenis

Add sypwr(4), a driver for the Silergy SY8106A regulator found on many boards
using the Allwinner H3/H5 SoC.


# 1.32 18-Dec-2017 kettenis

Properly implement the rsb attribute and actually use it.


# 1.31 18-Dec-2017 kettenis

Use axppmic as a dependency instead of axppmic_rsb.


# 1.30 18-Dec-2017 kettenis

Add i2c interface code to the new axppmic(4) code and add support for the
AXP152 and AXP209 here as well. The AXP209 is extended to support
regulators and sensors. The ACIN and VBUS indicators are now exported as
sensors. Retire the old AXP152/AXP209 support code.


# 1.29 17-Dec-2017 kettenis

Make axppmic(4) attach to a Reduced Serial Bus, and support the AXP806
and AXP809 PMICs. Disabled for now.


# 1.28 16-Dec-2017 kettenis

Add a driver for the RSB controller found on various Allwinner SoCs.
Add a driver for the RTC part of the AC100 chip.
Together this turns my Cubieboard4 into a real computer by giving it
a proper clock.

ok patrick@


Revision tags: OPENBSD_6_2_BASE
# 1.27 21-Sep-2017 patrick

Add dwxe(4), a driver the Synopsis DesignWare Ethernet controller used
on the Allwinner A64, H3 and H5 SoCs. This makes the onboard ethernet
usable on the popular Pine A64 and NanoPi Neo2. The skeleton used for
this driver is taken from tsec(4).

ok kettenis@


# 1.26 28-Aug-2017 kettenis

Add rkpmic(4), a driver for the RK808 Power Management IC. For now, this
driver only provides support for the RTC embedded on this device. Support
for the voltage regulators will come later. With this diff the Firefly-RK3399
gains a proper clock (if you connect a battery to the board).


# 1.25 27-Aug-2017 kettenis

Add rkiic(4) a driver for the i2c controllers found on the Rockchip RK3399.


# 1.24 25-Aug-2017 patrick

Add mvneta(4), a driver for the Ethernet controller on the Armada
38x series (SoliodRun ClearFog, Turris Omnia) and the 37xx series
(ESPRESSObin). Also add mvmdio(4), which is used to talk to the
MDIO bus.

ok kettenis@


# 1.23 25-Aug-2017 patrick

Add mvpinctrl(4), a driver to configure pins on Marvell SoCs. For now,
only the Armada 388 (SolidRun ClearFog, Turris Omnia) is supported.

ok kettenis@


# 1.22 25-Aug-2017 kettenis

Add rktemp(4), a driver for the temperature sensors on the Rockchip RK3399
SoC.


# 1.21 11-Aug-2017 kettenis

Add glue for the USB3 controller on the rk3399-firefly.


# 1.20 29-Jul-2017 kettenis

Add a bcmaux(4) driver that handles clocks and interrupts for the
auxilliary UART. Makes serial console work with newer device trees.

ok jsg@


# 1.19 25-Jul-2017 kettenis

Add dwdog(4), a driver for the Synopsys Designware watchdog timer integrated
on (for example) the Rockchip RK3288 SoC.


# 1.18 23-Jul-2017 kettenis

Add sxitwi(4), a driver for the (i2c compatible) two-wire bus found on
several Allwinner SoCs. From Artturi Alm, based on code from NetBSD.

Also add axppmic(4), a driver for the AXP209 i2c PMIC, which provides
power down support. Written by Artturi Alm.


# 1.17 21-May-2017 kettenis

Add dwmmc(4), a driver for the Synopsis Designware SD/MMC controller as found
on various Rockchip SoCs.

This is still WIP. Next steps will be to get rid of various busy-wait loops
and add DMA support.


# 1.16 06-May-2017 kettenis

Add rkgpio(4), a driver to handle GPIOs on Rockchip SoCs.


# 1.15 05-May-2017 kettenis

Move dwge(4) glue into dev/fdt.


# 1.14 05-May-2017 kettenis

Add rkpinctrl(4), a driver to configure pins on Rockchip SoCs. For now,
only the RK3399 is supported.


# 1.13 05-May-2017 kettenis

Add glue to attach SDHC compliant controllers using the FDT. This makes
the eMMC controller on the Rockchip RK3399 work.


# 1.12 30-Apr-2017 kettenis

Add rkclock(4), a driver for the Rockchip RK3399 clocks.


# 1.11 30-Apr-2017 kettenis

Add rkgrf(4), a driver that makes the "generic register file" of the Rockchip
RK3399 available to other drivers through the regmap interface.


# 1.10 29-Apr-2017 kettenis

Replace sxiehci.c with more generic glue in ehci_fdt.c that is similiar in
spirit to the xhci_fdt.c glue. The new code sets up any attached USB PHYs
based on their "compatible" property. All the hardware supported by sxiehci.c
should be supported by this new code. In addition to that this adds support
for the EHCI controllers found on various Rockchip hardware such as the
RK3288 and RK3399 SoCs.

ok patrick@


Revision tags: OPENBSD_6_1_BASE
# 1.9 11-Mar-2017 kettenis

Add exrtc(4), a driver for the RTC found on Samsung Exynos SoCs.


# 1.8 09-Mar-2017 kettenis

Add syscon(4), a driver that provides reboot/poweroff functionality through
the generic "regmap" interface.

ok patrick@


# 1.7 09-Mar-2017 kettenis

Glue to attach xhci(4) using the device tree.


# 1.6 22-Feb-2017 patrick

Add a generic ahci(4) frontend for FDT.

ok kettenis@


# 1.5 26-Jan-2017 jsg

The only difference between armv7 and arm64 fdt virtio attachments is an
uneeded include. Remove the include and move to MI fdt directory.


# 1.4 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.3 23-Jan-2017 kettenis

Add bcmdog(4), a watchdog timer for the Raspberry Pi.

Based on code written by patrick@


# 1.2 21-Jan-2017 patrick

Move Allwinner drivers that will soon be used by OpenBSD/arm64
to the new MI FDT driver directory.

"go ahead" kettenis@


# 1.1 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@