36#include <sys/kernel.h>
38#include <sys/module.h>
41#include <sys/resource.h>
42#include <machine/bus.h>
44#include <dev/ofw/ofw_bus.h>
45#include <dev/ofw/ofw_bus_subr.h>
47#include <dev/extres/regulator/regulator.h>
48#include <dev/gpio/gpiobusvar.h>
53#include "audio_dai_if.h"
56 {
"simple-audio-amplifier", 1},
74 if (!ofw_bus_status_okay(
dev))
80 device_set_desc(
dev,
"Simple Amplifier");
81 return (BUS_PROBE_DEFAULT);
91 sc = device_get_softc(
dev);
93 node = ofw_bus_get_node(
dev);
95 error = gpio_pin_get_by_ofw_property(
dev, node,
102 error = regulator_get_by_ofw_property(
dev, 0,
"VCC-supply",
105 device_printf(
dev,
"no VCC supply");
107 OF_device_register_xref(OF_xref_from_node(node),
dev);
135 sc = device_get_softc(
dev);
142 device_printf(sc->
dev,
143 "could not enable 'VCC' regulator\n");
151 device_printf(sc->
dev,
152 "could not set 'gpio-enable' gpio\n");
164 device_printf(sc->
dev,
165 "could not clear 'gpio-enable' gpio\n");
173 device_printf(sc->
dev,
174 "could not disable 'VCC' regulator\n");
static int simple_amp_dai_trigger(device_t dev, int go, int pcm_dir)
static devclass_t simple_amp_devclass
static int simple_amp_detach(device_t dev)
DRIVER_MODULE(simple_amp, simplebus, simple_amp_driver, simple_amp_devclass, 0, 0)
static int simple_amp_attach(device_t dev)
static device_method_t simple_amp_methods[]
static int simple_amp_dai_init(device_t dev, uint32_t format)
static struct ofw_compat_data compat_data[]
SIMPLEBUS_PNP_INFO(compat_data)
static int simple_amp_probe(device_t dev)
static driver_t simple_amp_driver