aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2017-12-13 01:08:01 +0000
committerAndre Przywara <andre.przywara@arm.com>2018-10-20 16:23:59 +0100
commit103f19f055bebf5ffa5ef73bba51d736123c7c33 (patch)
tree720a8684f7932eeb7c70b47e4731047c11a18dad /include
parent3d22228fe96cf595e0d7d39ae9048a51ab003355 (diff)
downloadplatform_external_arm-trusted-firmware-103f19f055bebf5ffa5ef73bba51d736123c7c33.tar.gz
platform_external_arm-trusted-firmware-103f19f055bebf5ffa5ef73bba51d736123c7c33.tar.bz2
platform_external_arm-trusted-firmware-103f19f055bebf5ffa5ef73bba51d736123c7c33.zip
allwinner: Add RSB driver
The "Reduced Serial Bus" is an Allwinner specific bus, bearing many similarities with I2C. It sports a much higher bus frequency, though, (typically 3 MHz) and requires much less handholding for the typical task of manipulating slave registers (fire-and-forget). On most A64 boards this bus is used to connect the PMIC to the SoC. This driver provides basic primitives to read and write slave registers, it will be later used by the PMIC code. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/drivers/allwinner/sunxi_rsb.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/drivers/allwinner/sunxi_rsb.h b/include/drivers/allwinner/sunxi_rsb.h
new file mode 100644
index 000000000..5a69d35f2
--- /dev/null
+++ b/include/drivers/allwinner/sunxi_rsb.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2017-2018 ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef SUNXI_RSB_H
+#define SUNXI_RSB_H
+
+#include <stdint.h>
+
+int rsb_init_controller(void);
+int rsb_set_bus_speed(uint32_t source_freq, uint32_t bus_freq);
+int rsb_set_device_mode(uint32_t device_mode);
+int rsb_assign_runtime_address(uint16_t hw_addr, uint8_t rt_addr);
+
+int rsb_read(uint8_t rt_addr, uint8_t reg_addr);
+int rsb_write(uint8_t rt_addr, uint8_t reg_addr, uint8_t value);
+
+#endif