mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
b5f32064ed
Qualcomm Atheros IPQ807x is a modern WiSoC featuring: * Quad Core ARMv8 Cortex A-53 * @ 2.2 GHz (IPQ8072A/4A/6A/8A) Codename Hawkeye * @ 1.4 GHz (IPQ8070A/1A) Codename Acorn * Dual Band simultaneaous IEEE 802.11ax * 5G: 8x8/80 or 4x4/160MHz (IPQ8074A/8A) * 5G: 4x4/80 or 2x2/160MHz (IPQ8071A/2A/6A) * 5G: 2x2/80MHz (IPQ8070A) * 2G: 4x4/40MHz (IPQ8072A/4A/6A/8A) * 2G: 2x2/40MHz (IPQ8070A/1A) * 1x PSGMII via QCA8072/5 (Max 5x 1GbE ports) * 2x SGMII/USXGMII (1/2.5/5/10 GbE) on Hawkeye * 2x SGMII/USXGMII (1/2.5/5 GbE) on Acorn * DDR3L/4 32/16 bit up to 2400MT/s * SDIO 3.0/SD card 3.0/eMMC 5.1 * Dual USB 3.0 * One PCIe Gen2.1 and one PCIe Gen3.0 port (Single lane) * Parallel NAND (ONFI)/LCD * 6x QUP BLSP SPI/I2C/UART * I2S, PCM, and TDMA * HW PWM * 1.8V configurable GPIO * Companion PMP8074 PMIC via SPMI (GPIOS, RTC etc) Note that only v2 SOC models aka the ones ending with A suffix are supported, v1 models do not comply to the final 802.11ax and have lower clocks, lack the Gen3 PCIe etc. SoC itself has two UBI32 cores for the NSS offloading system, however currently no offloading is supported. Signed-off-by: Robert Marko <robimarko@gmail.com>
58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
From 0eda4c5c7704363f665f4ccf0327349faad245a4 Mon Sep 17 00:00:00 2001
|
|
From: Caleb Connolly <caleb.connolly@linaro.org>
|
|
Date: Fri, 29 Apr 2022 23:08:56 +0100
|
|
Subject: [PATCH] spmi: add a helper to look up an SPMI device from a device
|
|
node
|
|
|
|
The helper function spmi_device_from_of() takes a device node and
|
|
returns the SPMI device associated with it.
|
|
This is like of_find_device_by_node but for SPMI devices.
|
|
|
|
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
|
|
Acked-by: Stephen Boyd <sboyd@kernel.org>
|
|
Link: https://lore.kernel.org/r/20220429220904.137297-2-caleb.connolly@linaro.org
|
|
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
|
---
|
|
drivers/spmi/spmi.c | 17 +++++++++++++++++
|
|
include/linux/spmi.h | 3 +++
|
|
2 files changed, 20 insertions(+)
|
|
|
|
--- a/drivers/spmi/spmi.c
|
|
+++ b/drivers/spmi/spmi.c
|
|
@@ -387,6 +387,23 @@ static struct bus_type spmi_bus_type = {
|
|
};
|
|
|
|
/**
|
|
+ * spmi_device_from_of() - get the associated SPMI device from a device node
|
|
+ *
|
|
+ * @np: device node
|
|
+ *
|
|
+ * Returns the struct spmi_device associated with a device node or NULL.
|
|
+ */
|
|
+struct spmi_device *spmi_device_from_of(struct device_node *np)
|
|
+{
|
|
+ struct device *dev = bus_find_device_by_of_node(&spmi_bus_type, np);
|
|
+
|
|
+ if (dev)
|
|
+ return to_spmi_device(dev);
|
|
+ return NULL;
|
|
+}
|
|
+EXPORT_SYMBOL_GPL(spmi_device_from_of);
|
|
+
|
|
+/**
|
|
* spmi_controller_alloc() - Allocate a new SPMI device
|
|
* @ctrl: associated controller
|
|
*
|
|
--- a/include/linux/spmi.h
|
|
+++ b/include/linux/spmi.h
|
|
@@ -164,6 +164,9 @@ static inline void spmi_driver_unregiste
|
|
module_driver(__spmi_driver, spmi_driver_register, \
|
|
spmi_driver_unregister)
|
|
|
|
+struct device_node;
|
|
+
|
|
+struct spmi_device *spmi_device_from_of(struct device_node *np);
|
|
int spmi_register_read(struct spmi_device *sdev, u8 addr, u8 *buf);
|
|
int spmi_ext_register_read(struct spmi_device *sdev, u8 addr, u8 *buf,
|
|
size_t len);
|