Commit Graph

1094725 Commits

Author SHA1 Message Date
Subbaraman Narayanamurthy
ae52ee9ba4 pwm: pwm-qti-lpg: Fix usage of pwmchip_remove()
pwmchip_remove() doesn't return int anymore. Fix it. Since rc
doesn't have any use, remove it.

Change-Id: I7d07d5c9f02a59edd7d0da5353502536d9ec16f8
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2022-06-06 15:33:08 -07:00
Guru Das Srinagesh
189c045715 pwm: qti-lpg: Add ramp pause support for PPG
Add support for configuring user-defined ramp-pause-hi/lo count in SDAM
to support PPG with the following device tree properties.
 - qcom,ramp-pause-hi-count
 - qcom,ramp-pause-lo-count

The qpnp_lpg_parse_pattern_dt() function has been refactored to fix the
cyclomatic complexity warning.

Change-Id: Ib35dbe8ef0ff354ea84aeed8a24d41868a1b7502
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:08 -07:00
Guru Das Srinagesh
2ab20677d4 pwm: qti-lpg: Add support for FM MODE
PWM channels that are configured to support Variable Frequency Mode
generate a signal of fixed duty cycle (50%) and variable frequency. In
such cases, the desired frequency setting is calculated differently
internally, according to a new formula.

Change-Id: I5cbbab9fa75fdd22c75811e5f61e69b8f4abe020
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Subbaraman Narayanamurthy
4b49bbb8e9 pwm: pwm-qti-lpg: Don't print error log for -EPROBE_DEFER
Currently, an error log is printed every time when parsing a DT
property fails because of probe deferral. Fix it.

Change-Id: Ic63c18393494b38bfb09a7ca85fd738dd2de56fd
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
ed90ef941a pwm: qti-lpg: Read tick duration via device tree
Tick duration defines the tick duration (in microseconds) for the clock
that PPG uses which is used to program the ramp step duration for the
pattern. If unspecified, the default value is 7800 us.

Change-Id: I7cd96d74a39becffbf9a008610c0092ad2462446
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
0a310a382d pwm: qti-lpg: Adapt to two-nvmem PBS triggering scheme
PM8350C PWM PPG does away with the need to directly manage the PBS
triggering via the PBS driver APIs by using a single register write to
an SDAM register instead. A PBS sequence thus triggered should be duly
cleared before next use. The existing scheme is also retained for
backward compatibility with targets that use a single-nvmem scheme.

The new PBS triggering scheme also expects a change in the way the high
and low indices pertaining to the pattern are specified.

Change-Id: I7d07dc611f98ce32cf5e8ba7de758fbbc3513f4b
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
58e0aa7ea2 pwm: qti-lpg: Support two-nvmem PPG scheme
On PMICs such as PM8350C, the lookup table containing the pattern data
is stored in a separate nvmem device from the one where the per-channel
data is stored.

Add two separate nvmems to handle this case while maintaining backward
compatibility for those targets that use only a single nvmem device.
Differentiate between the two schemes via an enum.

Change-Id: I2826a9acc8cee4d83b6cf2bf2d4d60b1ec3b67d7
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
8a4b0f1cf4 pwm: qti-lpg: Fix erroneous clearing of LUT
The memory allocated for the lookup table (LUT) is getting cleared even
when a valid nvmem and PBS configuration is detected. Fix this by
ensuring that this happens only when neither a LUT peripheral's address
nor a valid nvmem configuration is detected.

Fixes: 218908e84878 ("pwm: pwm-qti-lpg: Refactor qpnp_lpg_parse_dt() for
readability").

Change-Id: I59467d46779e0a01bf0843863680ec2a8f85f2ce
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
55ade49b28 pwm: pwm-qti-lpg: Refactor qpnp_lpg_parse_dt() for readability
Add helper functions to parse pattern-related properties and related
init logic, and clarify the qpnp_lpg_parse_dt function to make the code
flow clear in the cases wherein either SDAM or LUT, or neither of the
two is specified. Also add of_node_put() statements for the PBS node in
error paths.

Change-Id: I8055c61db9a8283e6c4d9dacf57012ff1d9227dd
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
587f346193 pwm: pwm-qti-lpg: Handle nvmem device lookup failure properly
Due to commit 95b65195d5 ("nvmem: core: Always reference the device
returned by nvmem_device_get()") failures in nvmem device lookup return
-EPROBE_DEFER instead of NULL. This causes probe failure of the
pwm-qti-lpg driver when pwm devices are defined in the device tree
without nvmem nodes, which is undesirable.

Fix this by attempting to get the nvmem device only if it is present.

Change-Id: Ifa136bb9b78e4b9e0894854768e9a6cc060d5261
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2022-06-06 15:33:07 -07:00
Guru Das Srinagesh
64f051b078 pwm: Add snapshot of QTI PWM LPG driver
The QTI PWM LPG driver supports the configuration of PWM/LPG channels on
QTI PMICs.

This is a snapshot of the driver taken from msm-4.19 as of commit
cf2cbb63fb60 ("Merge "input: touchscreen: synaptics_tcm: enable touch
driver"") with the following modifications:
  - Remove config_extend callback and pwm_get_period_extend()
  - Remove struct output_pattern and all its references
  - Remove enable, disable and config pwm_ops callbacks and instead use
    only apply()
  - Remove output_type callbacks
  - Remove support for dbg_show callback

Change-Id: I28571a8c6d5b0d5ac0cad113e77f3b5de8bf97c4
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
[quic_collinsd@quicinc.com: fixed "sychronization" typo]
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
2022-06-06 15:31:37 -07:00
qctecmdr
4a001b7ca3 Merge "soc: qcom: pmic-pon-log: add support for multiple NVMEM devices" 2022-06-05 23:08:56 -07:00
qctecmdr
06e0b49baa Merge "soc: qcom: Add QTI PBS driver" 2022-06-04 12:34:23 -07:00
qctecmdr
5a682e3d5e Merge "arm64: defconfig: Enable socinfo and smem drivers for pineapple SoC" 2022-06-04 12:34:22 -07:00
qctecmdr
c538cd76d3 Merge "soc: qcom: Add fallthrough macro for notifying intentional fall through" 2022-06-04 09:38:56 -07:00
qctecmdr
0a2dfab4a7 Merge "iio: qcom-spmi-adc5: add support to read current channels" 2022-06-04 09:38:55 -07:00
qctecmdr
0027140a17 Merge "Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (05713a3) into msm-pineapple" 2022-06-03 16:10:31 -07:00
Prasad Sodagudi
fe41da5cbe arm64: defconfig: Enable socinfo and smem drivers for pineapple SoC
Enable socinfo and smem drivers for pineappe SoC.

Change-Id: I4b28cafa6f9a6e7f6eca325d69e4d0959cbe07c8
Signed-off-by: Prasad Sodagudi <quic_psodagud@quicinc.com>
2022-06-03 15:51:38 -07:00
Huang Yiwei
f32a0cd31e Revert "soc: qcom: socinfo: Add soc_sku name support"
This reverts commit dbd0339fd7df91a34c1736a20599d74612e74553.
Will change to SMEM approach, so revert this change.

Change-Id: Ia2a4d5489631ff458d3d5854aa74909c7724bcdc
Signed-off-by: Huang Yiwei <hyiwei@codeaurora.org>
Signed-off-by: Prasad Sodagudi <quic_psodagud@quicinc.com>
2022-06-03 15:51:37 -07:00
Prasad Sodagudi
a2a56b8cff soc: qcom: Add fallthrough macro for notifying intentional fall through
With latest community guideliens replace  the existing /* fall through */
comments and its variants with the new pseudo-keyword macro fallthrough[1].
In this driver /* fall through */ comments are not there, So add
fallthrough to avoid compilation errors.

[1] - https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

Change-Id: I3ba35159f7d2f0a261391ef06f274d85bad47497
Signed-off-by: Prasad Sodagudi <quic_psodagud@quicinc.com>
2022-06-03 15:50:22 -07:00
qctecmdr
c44a67c2ce Merge "mailbox: Add snapshot of MSM QMP driver" 2022-06-03 12:55:07 -07:00
qctecmdr
e9b68da559 Merge "modules.list.msm.pineapple: Add dispcc module" 2022-06-03 12:55:05 -07:00
jianzhou
ad3bc4f6f6 Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (05713a3) into msm-pineapple
* refs/heads/tmp-05713a3:
  ANDROID: Creating boot.img for x86_64 GKI
  Linux 5.18
  afs: Fix afs_getattr() to refetch file status if callback break occurred
  perf session: Fix Intel LBR callstack entries and nr print message
  perf test bpf: Skip test if clang is not present
  perf test session topology: Fix test to skip the test in guest environment
  perf bench numa: Address compiler error on s390
  perf test: Avoid shell test description infinite loop
  perf regs x86: Fix arch__intr_reg_mask() for the hybrid platform
  perf test: Fix "all PMU test" to skip hv_24x7/hv_gpci tests on powerpc
  drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
  i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
  i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
  perf: Fix sys_perf_event_open() race against self
  KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
  KVM: x86: hyper-v: fix type of valid_bank_mask
  KVM: Free new dirty bitmap if creating a new memslot fails
  gpio: mvebu/pwm: Refuse requests with inverted polarity
  gpio: gpio-vf610: do not touch other bits when set the target bit
  perf stat: Fix and validate CPU map inputs in synthetic PERF_RECORD_STAT events
  KVM: eventfd: Fix false positive RCU usage warning
  perf build: Fix check for btf__load_from_kernel_by_id() in libbpf
  selftests: kvm/x86: Verify the pmu event filter matches the correct event
  selftests: kvm/x86: Add the helper function create_pmu_event_filter
  kvm: x86/pmu: Fix the compare function used by the pmu event filter
  scsi: ufs: core: Fix referencing invalid rsp field
  riscv: dts: microchip: fix gpio1 reg property typo
  riscv: dts: sifive: fu540-c000: align dma node name with dtschema
  mmc: core: Fix busy polling for MMC_SEND_OP_COND again
  drm/i915: Use i915_gem_object_ggtt_pin_ww for reloc_iomap
  net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
  ptp: ocp: change sysfs attr group handling
  selftests: forwarding: fix missing backslash
  Input: ili210x - use one common reset implementation
  Input: ili210x - fix reset timing
  drm/amd: Don't reset dGPUs if the system is going to s2idle
  libceph: fix misleading ceph_osdc_cancel_request() comment
  libceph: fix potential use-after-free on linger ping and resends
  Fix double fget() in vhost_net_set_backend()
  vdpa/mlx5: Use consistent RQT size
  netfilter: nf_tables: disable expression reduction infra
  netfilter: flowtable: move dst_check to packet path
  netfilter: flowtable: fix TCP flow teardown
  net: ftgmac100: Disable hardware checksum on AST2600
  igb: skip phy status check where unavailable
  nfc: pn533: Fix buggy cleanup order
  mptcp: Do TCP fallback on early DSS checksum failure
  mptcp: fix checksum byte order
  ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
  ARM: 9196/1: spectre-bhb: enable for Cortex-A15
  net: af_key: check encryption module availability consistency
  net: af_key: add check for pfkey_broadcast in function pfkey_process
  percpu_ref_init(): clean ->percpu_count_ref on failure
  net/mlx5: Drain fw_reset when removing device
  net/mlx5e: CT: Fix setting flow_source for smfs ct tuples
  net/mlx5e: CT: Fix support for GRE tuples
  net/mlx5e: Remove HW-GRO from reported features
  net/mlx5e: Properly block HW GRO when XDP is enabled
  net/mlx5e: Properly block LRO when XDP is enabled
  net/mlx5e: Block rx-gro-hw feature in switchdev mode
  net/mlx5e: Wrap mlx5e_trap_napi_poll into rcu_read_lock
  net/mlx5: DR, Ignore modify TTL on RX if device doesn't support it
  net/mlx5: Initialize flow steering during driver probe
  net/mlx5: DR, Fix missing flow_source when creating multi-destination FW table
  scsi: target: Fix incorrect use of cpumask_t
  NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
  net/qla3xxx: Fix a test in ql_reset_work()
  selinux: fix bad cleanup on error in hashtab_duplicate()
  drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
  parisc: Fix patch code locking and flushing
  parisc: Rewrite cache flush code for PA8800/PA8900
  parisc: Disable debug code regarding cache flushes in handle_nadtlb_fault()
  clk: at91: generated: consider range when calculating best rate
  audit,io_uring,io-wq: call __audit_uring_exit for dummy contexts
  io_uring: don't attempt to IOPOLL for MSG_RING requests
  ice: Fix interrupt moderation settings getting cleared
  ice: fix possible under reporting of ethtool Tx and Rx statistics
  ice: fix crash when writing timestamp on RX rings
  arm64: mte: Ensure the cleared tags are visible before setting the PTE
  arm64: kexec: load from kimage prior to clobbering
  arm64: paravirt: Use RCU read locks to guard stolen_time
  dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
  net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
  net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
  xfrm: set dst dev to blackhole_netdev instead of loopback_dev in ifdown
  net: systemport: Fix an error handling path in bcm_sysport_probe()
  net: lan966x: Fix assignment of the MAC address
  Revert "clk: sunxi-ng: sun6i-rtc: Add support for H6"
  clk: bcm2835: fix bcm2835_clock_choose_div
  ptp: ocp: have adjtime handle negative delta_ns correctly
  netfilter: nft_flow_offload: fix offload with pppoe + vlan
  net: fix dev_fill_forward_path with pppoe + bridge
  netfilter: nft_flow_offload: skip dst neigh lookup for ppp devices
  netfilter: flowtable: fix excessive hw offload attempts after failure
  net/sched: act_pedit: sanitize shift argument before usage
  ALSA: usb-audio: Restore Rane SL-1 quirk
  ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine
  xfrm: fix "disable_policy" flag use when arriving from different devices
  i915/guc/reset: Make __guc_reset_context aware of guilty engines
  drm/i915/dmc: Add MMIO range restrictions
  KVM: arm64: Don't hypercall before EL2 init
  KVM: arm64: vgic-v3: Consistently populate ID_AA64PFR0_EL1.GIC
  can: m_can: remove support for custom bit timing, take #2
  Revert "can: m_can: pci: use custom bit timings for Elkhart Lake"
  net: macb: Increment rx bd head after allocating skb and buffer
  selftests: mptcp: add subflow limits test-cases
  mptcp: fix subflow accounting on close
  pinctrl: sunxi: f1c100s: Fix signal name comment for PA2 SPI pin
  pinctrl: sunxi: fix f1c100s uart2 function
  block/mq-deadline: Set the fifo_time member also if inserting at head
  dma-buf: ensure unique directory name for dmabuf stats
  Revert "tcp/dccp: get rid of inet_twsk_purge()"
  net: ipa: get rid of a duplicate initialization
  net: ipa: record proper RX transaction count
  net: ipa: certain dropped packets aren't accounted for
  crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
  ALSA: hda/realtek: Add quirk for TongFang devices with pop noise
  KVM: x86/mmu: Update number of zapped pages even if page list is stable
  io_uring: fix ordering of args in io_uring_queue_async_work
  ALSA: hda/realtek: Add quirk for the Framework Laptop
  ALSA: wavefront: Proper check of get_user() error
  ALSA: hda/realtek: Add quirk for Dell Latitude 7520
  ALSA: hda - fix unused Realtek function when PM is not enabled
  ALSA: usb-audio: Don't get sample rate for MCT Trigger 5 USB-to-HDMI
  pinctrl: mediatek: mt8365: fix IES control pins
  pinctrl: ocelot: Fix for lan966x alt mode
  MAINTAINERS: omap: remove me as a maintainer
  dt-bindings: input: mediatek,mt6779-keypad: update maintainer
  ARM: dts: aspeed: Add video engine to g6
  ARM: dts: aspeed: romed8hm3: Fix GPIOB0 name
  ARM: dts: aspeed: romed8hm3: Add lm25066 sense resistor values
  ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
  ARM: dts: aspeed-g6: add FWQSPI group in pinctrl dtsi
  dt-bindings: pinctrl: aspeed-g6: add FWQSPI function/group
  pinctrl: pinctrl-aspeed-g6: add FWQSPI function-group
  dt-bindings: pinctrl: aspeed-g6: remove FWQSPID group
  pinctrl: pinctrl-aspeed-g6: remove FWQSPID group in pinctrl
  ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
  arm64: dts: qcom: sm8250: don't enable rx/tx macro by default
  arm64: dts: rockchip: Add gmac1 and change network settings of bpi-r2-pro
  arm64: dts: rockchip: Change io-domains of bpi-r2-pro

 Conflicts:
	Documentation/devicetree/bindings
	Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml
	Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml

Upstream-Build:ks_qcom-android-mainline-keystone-qcom-release@8672405 SKQ4.220601.002
Change-Id: Id10170c7c63104e42071470f906a8d22e4c312ef
Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
2022-06-03 05:31:07 -07:00
qctecmdr
d8f988289f Merge "pinctrl: qcom: spmi-gpio: add support for LV_VIN2 and MV_VIN3 subtypes" 2022-06-02 03:13:23 -07:00
qctecmdr
d2ce2b675b Merge "regulator: rpmh-regulator: fix rpmh_regulator_init_vreg_supply memory leak" 2022-06-01 23:49:50 -07:00
Chris Lew
79bd6983db mailbox: Add snapshot of MSM QMP driver
This snapshot is taken as of msm-5.10 'commit <52ccb2676d2b>
("soc: qcom: minidump_log: Add check to avoid NULL pointer dereference")'.

Change-Id: Ia62a11f2fed9194694914d9abb4fe47186958897
Signed-off-by: Chris Lew <clew@codeaurora.org>
2022-06-01 16:58:08 -07:00
qctecmdr
b83eafd5fe Merge "spmi: spmi-pmic-arb-debug: add support for fuse enable bit" 2022-06-01 12:33:36 -07:00
qctecmdr
bb2cf3decd Merge "spmi: add SPMI PMIC arbiter debug bus driver" 2022-06-01 09:57:54 -07:00
Android Build Coastguard Worker
05713a3e9d Snap for 8668516 from ccfd1a42d8 to android-mainline-keystone-qcom-release
Change-Id: I044c8603d5a292e477b08e9b654a1186283e4223
2022-06-01 10:00:47 +00:00
qctecmdr
99a4fdca5e Merge "kernel: Create and export kernel headers" 2022-05-31 21:17:34 -07:00
qctecmdr
c788ea98b4 Merge "modules.list.msm.pineapple: Add interconnect modules" 2022-05-31 19:00:32 -07:00
Mulugeta Engdaw
95c60c41a2 kernel: Create and export kernel headers
Create a header library which export kernel headers.
These headers are needed by modules and userspace libraries.
This is snapshot merge from msm-5.10 branch commit 1c21e750af93 ("Merge
"drivers: dcvs: memlat: add scheme for adaptive boosting"").

Change-Id: If685678193e829a367ed672e0de345262235a2d5
Signed-off-by: Mulugeta Engdaw <mengdaw@codeaurora.org>
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2022-05-31 18:19:41 -07:00
qctecmdr
7b46a82ae4 Merge "mmrm: Adding mmrm header for kalama project" 2022-05-31 10:27:46 -07:00
qctecmdr
a860a072e5 Merge "regulator: add proxy consumer library" 2022-05-28 15:59:59 -07:00
qctecmdr
ce4c9ce6fa Merge "input: misc: pm8941-pwrkey: avoid potential null pointer dereference" 2022-05-27 19:12:24 -07:00
qctecmdr
5f5e27551f Merge "mfd: qcom-spmi-pmic: instantiate pmic peripherals at arch_initcall" 2022-05-27 19:12:23 -07:00
qctecmdr
3059ef6495 Merge "input: misc: pm8941-pwrkey: add software key press debouncing support" 2022-05-27 16:56:59 -07:00
qctecmdr
9a23667545 Merge "thermal: qcom-spmi-temp-alarm: add support for LITE PMIC peripherals" 2022-05-27 16:56:58 -07:00
Vivek Aknurwar
a2631ded83 modules.list.msm.pineapple: Add dispcc module
The dispcc module is indirectly required by the interconnect providers
in qnoc-pineapple. Interconnect depends on disp_rsc, which depends on
dispcc. Without dispcc, interconnects required for critical early BW
voting to DDR won't probe.

Change-Id: Ib4111cff62a6a9785213de66983621449867e6f7
Signed-off-by: Vivek Aknurwar <quic_viveka@quicinc.com>
2022-05-27 15:58:39 -07:00
Vivek Aknurwar
ad856f8dc4 defconfig: pineapple-gki: Enable dispcc driver
Enable the dispcc driver for pineapple.

Change-Id: Id7daa430ccaad8dee40f53352aa9b56f3c730ee5
Signed-off-by: Vivek Aknurwar <quic_viveka@quicinc.com>
2022-05-27 15:58:39 -07:00
Vivek Aknurwar
d5e88efc20 clk: qcom: dispcc-pineapple: Add initial dispcc driver
Add the dispcc driver for pineapple, which provides clocks for the display
subsystem.

Change-Id: Ib0bf267e6b3b11d05766408a0335e64b89d07b56
Signed-off-by: Vivek Aknurwar <quic_viveka@quicinc.com>
2022-05-27 15:58:38 -07:00
David Collins
507aaefcf7 regulator: rpmh-regulator: fix rpmh_regulator_init_vreg_supply memory leak
Commit 29c41d5c47cb ("regulator: rpmh-regulator: support parent
supply specification in subnodes") introduced a memory leak in
the function rpmh_regulator_init_vreg_supply() due to 'buf' not
being freed in the new 'else if' statement.  Fix this memory leak
by freeing 'buf' correctly.

Change-Id: If2748b595d8ae3a4564a2956a67aeda476975309
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:42 -07:00
David Collins
442fbd3fa6 regulator: rpmh-regulator: add support for debugfs control
Add support for debugfs control of a regulator's state.  This
is useful for testing and debugging.

Change-Id: I26da17c0cf45b942680eb4813d8cc7d0b58e6d29
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:42 -07:00
David Collins
96f3cd3912 regulator: rpmh-regulator: support parent supply specification in subnodes
Add support for parent supply properties specified in regulator-
specific device tree subnodes.  This style can be used to avoid
false positive circular dependencies in the wait_for_supplier
logic.

Change-Id: Id9a96e27ea62ef37b4b5bbfb344ee206b439ee3f
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:42 -07:00
David Collins
01da202c31 regulator: rpmh-regulator: add support for proxy consumers
Add support to enforce proxy consumer requests defined in device
tree for rpmh-regulator devices.  These can be used to ensure
that regulators are not accidentally disabled or scaled down
before all consumers have had a chance to make their own
requests.

Change-Id: Ic5f4ef7369584433b0a187f966d2d5f379b98cb6
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:42 -07:00
Jordan Crouse
99e2c4f4ee regulator: Fix formatting warnings in rpmh-regulator
Fix the following compiler warning from gcc 7.4.1 with -Werror enabled:

 drivers/regulator/rpmh-regulator.c:1285:3: error: format '%d' expects argument
   of type 'int', but argument 4 has type 'long int'
   aggr_vreg_err(aggr_vreg, "could not retrieve ARC aux data, rc=%d\n",

 drivers/regulator/rpmh-regulator.c:1292:3: error: format '%d' expects argument
   of type 'int', but argument 4 has type 'size_t {aka long unsigned int}'
   aggr_vreg_err(aggr_vreg, "more ARC levels defined than allowed: %d > %d\n",

 drivers/regulator/rpmh-regulator.c:1296:3: error: format '%d' expects argument
  of type 'int', but argument 4 has type 'size_t {aka long unsigned int}'
  aggr_vreg_err(aggr_vreg, "invalid ARC aux data size: %d\n",

Fixes: ff2723a ("regulator: add rpmh-regulator driver")
Change-Id: Ic0dedbad2ea5a767dd4a56e55c231f3870342417
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2022-05-27 15:28:42 -07:00
David Collins
be38cc2b80 regulator: add proxy consumer library
Add a proxy consumer library which can be used by regulator
drivers to ensure that a given regulator maintains a certain
minimum power state during bootup.  Enable state, voltage, and
current may be forced to specified levels.

Change-Id: I46853f55a1201195ed50f0365399cf49086f24ff
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:41 -07:00
David Collins
ace1c64495 regulator: add rpmh-regulator driver
Add the rpmh-regulator driver to support PMIC regulator
management via the RPMh hardware block on Qualcomm Technologies,
Inc. SoCs.

rpmh-regulator devices support PMIC regulator management via the
VRM and ARC RPMh accelerators.  The APPS processor communicates
with these hardware blocks via an RSC using command packets.  The
VRM allows changing four parameters for a given regulator: enable
state, output voltage, operating mode, and minimum headroom
voltage.  The ARC allows changing only a single parameter for a
given regulator: its operating level.  This operating level is
fed into CPR which then decides upon a final explicit voltage for
the regulator.

This is a snapshot commit of msm-4.14 as of:
commit 2913cfe33e10 ("Merge "iommu: arm-smmu: wait for writes to
complete before power off"").  Some modifications have been made
to handle rpmh API differences between msm-4.14 and msm-4.19.

Change-Id: I48e9ab5db808036592cfb26042d843a153fbc92c
Signed-off-by: David Collins <collinsd@codeaurora.org>
2022-05-27 15:28:41 -07:00
qctecmdr
c806b7d24f Merge "modules.list.msm.pineapple: Add videocc clock module" 2022-05-27 14:06:25 -07:00
qctecmdr
a1dc48d5b6 Merge "spmi: add glink debug spmi controller driver" 2022-05-27 14:06:23 -07:00