summaryrefslogtreecommitdiff
path: root/src/drivers/include
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-07-28 13:01:18 +1000
committerjacqueline <me@jacqueline.id.au>2023-07-28 13:01:18 +1000
commit3670859d1620ca0fe3492cffb591bf29e5af849c (patch)
tree51efdf3f8c5fa9ff86dabbdddb8c64416b8703bb /src/drivers/include
parent72fe82ebc43b1e7bf10ebe72efec1723b3792afd (diff)
downloadtangara-fw-3670859d1620ca0fe3492cffb591bf29e5af849c.tar.gz
Volume control! Reasonable default volume! Hooray!
Diffstat (limited to 'src/drivers/include')
-rw-r--r--src/drivers/include/wm8523.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/drivers/include/wm8523.hpp b/src/drivers/include/wm8523.hpp
new file mode 100644
index 00000000..8b20eda0
--- /dev/null
+++ b/src/drivers/include/wm8523.hpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2023 jacqueline <me@jacqueline.id.au>
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+#pragma once
+
+#include <cstdint>
+#include <optional>
+
+namespace drivers {
+namespace wm8523 {
+
+enum class Register : uint8_t {
+ kReset = 0,
+ kRevision = 1,
+ kPsCtrl = 2,
+ kAifCtrl1 = 3,
+ kAifCtrl2 = 4,
+ kDacCtrl = 5,
+ kDacGainLeft = 6,
+ kDacGainRight = 7,
+ kZeroDetect = 8,
+};
+
+auto ReadRegister(Register reg) -> std::optional<uint16_t>;
+auto WriteRegister(Register reg, uint16_t data) -> bool;
+auto WriteRegister(Register reg, uint8_t msb, uint8_t lsb) -> bool;
+
+}
+}