Add initial mainline support for the Samsung Galaxy S4, codenamed jflte.
This series adds the devicetree binding and board DTS, together with the
small driver and common DTS changes needed to boot the device with working
USB peripheral mode.
Tested on a Samsung Galaxy S4 GT-I9505. With this series the device boots
and supports UART, USB peripheral mode with USB networking, the front
notification LED and the physical buttons.
Signed-off-by: Alexandre MINETTE <contact@alex-min.fr>
---
Changes in v3:
- Clarify that the Galaxy S4 compatible is for the Qualcomm
APQ8064-based variant, and add Krzysztof's Acked-by.
- Clarify the PM8921 USB ID binding, driver and DTS commit messages to
describe the PMIC interrupt-controller interface and the lack of a
known register resource for this interrupt-only path.
- Keep the PM8921 USB ID extcon node non-addressable rather than adding a
speculative reg value.
- Keep the MUIC and LED buses as i2c-gpio. Testing the corresponding
GSBI controllers on GT-I9505 made USB fail to enumerate with the MUIC
on GSBI2, and made LED brightness writes time out with the LED on
GSBI3.
- Reorder APQ8064 USB clock entries to match the related ci-hdrc binding
update, using iface, core, fs order.
- Sort the jflte DTB Makefile entry after the LG Nexus 4 entry.
- Link to v2: https://lore.kernel.org/r/20260427-mainline-send-v1-sending-v2-0-dcaa9178007b@alex-min.fr
Changes in v2:
- Keep the APQ8064 compatible list in qcom.yaml alphabetically sorted.
- Clarify the Qualcomm pinctrl commit message and include the failing hog
lookup trace seen on APQ8064.
- Clarify the MSM IOMMU commit message and include the NULL dereference
trace seen during IOMMU probe on APQ8064.
- Move the PM8921 USB ID extcon node to the end of the PM8921 child nodes.
- Reorder the jflte DTS nodes and pinctrl properties as requested by
reviewers.
- Add Reviewed-by/Acked-by tags collected on v1.
- Link to v1: https://lore.kernel.org/r/20260421-mainline-send-v1-sending-v1-0-bcb0857724de@alex-min.fr
---
Alexandre MINETTE (8):
dt-bindings: arm: qcom: Add Samsung Galaxy S4
dt-bindings: extcon: qcom,pm8941-misc: Add PM8921 compatible
pinctrl: qcom: Register functions before enabling pinctrl
iommu/msm: Look up masters per IOMMU instance
extcon: qcom-spmi-misc: Add PM8921 compatible
ARM: dts: qcom: apq8064: Fix USB controller clocks
ARM: dts: qcom: pm8921: Add USB ID extcon
ARM: dts: qcom: Add Samsung Galaxy S4
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
.../bindings/extcon/qcom,pm8941-misc.yaml | 17 +-
arch/arm/boot/dts/qcom/Makefile | 1 +
arch/arm/boot/dts/qcom/pm8921.dtsi | 7 +
.../boot/dts/qcom/qcom-apq8064-samsung-jflte.dts | 485 +++++++++++++++++++++
arch/arm/boot/dts/qcom/qcom-apq8064.dtsi | 18 +-
drivers/extcon/extcon-qcom-spmi-misc.c | 1 +
drivers/iommu/msm_iommu.c | 28 +-
drivers/pinctrl/qcom/pinctrl-msm.c | 15 +-
9 files changed, 546 insertions(+), 27 deletions(-)
---
base-commit: 4bf3800382b91c2898d14452cf4332782b3fe80a
change-id: 20260421-mainline-send-v1-sending-289ec98e6dc1
Best regards,
--
Alexandre MINETTE <contact@alex-min.fr>