[PATCH V8 0/8] Add interconnect support to QSPI and QUP drivers

Akash Asthana
2020-06-23T10:39:39Z

This patch series is based on tag "next-20200622" of linux-next tree.

High level design:
- QUP wrapper/common driver.
Vote for QUP core on behalf of earlycon from probe.
Remove BW vote during earlycon exit call

- SERIAL driver.
Vote only for CPU/CORE path because driver is in FIFO mode only
Vote/unvote from qcom_geni_serial_pm func.
Bump up the CPU vote from set_termios call based on real time need

- I2C driver.
Vote for CORE/CPU/DDR path
Vote/unvote from runtime resume/suspend callback
As bus speed for I2C is fixed from probe itself no need for bump up.

- SPI QUP driver.
Vote only for CPU/CORE path because driver is in FIFO mode only
Vote/unvote from runtime resume/suspend callback
Bump up CPU vote based on real time need per transfer.

- QSPI driver.
Vote only for CPU path
Vote/unvote from runtime resume/suspend callback
Bump up CPU vote based on real time need per transfer.

Changes in V2:
- Add devm_of_icc_get() API interconnect core.
- Add ICC support to common driver to fix earlyconsole crash.

Changes in V3:
- Define common ICC APIs in geni-se driver and use it across geni based
I2C,SPI and UART driver.

Changes in V4:
- Add a patch to ICC core to scale peak requirement
as twice of average if it is not mentioned explicilty.

Changes in V5:
- As per Georgi's suggestion removed patch from ICC core for assuming
peak_bw as twice of average when it's not mentioned, instead assume it
equall to avg_bw and keep this assumption in ICC client itself.
- As per Matthias suggestion use enum for GENI QUP ICC paths.

Changes in V6:
- No Major change

Changes in V7:
- As per Matthias's comment removed usage of peak_bw variable because we don't
have explicit peak requirement, we were voting peak = avg and this can be
tracked using single variable for avg bw.
- As per Matthias's comment improved print log.

Changes in V8:
- Add [PATCH V8 5/8] to factor out common code for clock setting.
- Combine ICC voting and clock setting to single API. [PATCH V8 6/8]
- Add ICC voting per transfer because in case of multi message,
transfer frequency can vary for each message/transfer.[PATCH V8 6/8]

Akash Asthana (7):
soc: qcom: geni: Support for ICC voting
soc: qcom-geni-se: Add interconnect support to fix earlycon crash
i2c: i2c-qcom-geni: Add interconnect support
tty: serial: qcom_geni_serial: Add interconnect support
spi: spi-geni-qcom: Add interconnect support
spi: spi-qcom-qspi: Add interconnect support
arm64: dts: sc7180: Add interconnect for QUP and QSPI

Douglas Anderson (1):
spi: spi-geni-qcom: Combine the clock setting code

arch/arm64/boot/dts/qcom/sc7180.dtsi | 127 ++++++++++++++++++++++++++++
drivers/i2c/busses/i2c-qcom-geni.c | 26 +++++-
drivers/soc/qcom/qcom-geni-se.c | 150 ++++++++++++++++++++++++++++++++++
drivers/spi/spi-geni-qcom.c | 100 +++++++++++++++--------
drivers/spi/spi-qcom-qspi.c | 56 ++++++++++++-
drivers/tty/serial/qcom_geni_serial.c | 38 ++++++++-
include/linux/qcom-geni-se.h | 40 +++++++++
7 files changed, 496 insertions(+), 41 deletions(-)