- Fix the issue that downstream MSM sdhc driver cannot work on 6.18.14
or newer kernel
- Switch back to downstream MSM sdhc driver for Ayn Odin2 devices to
fix the IO performance regression brought by upstream driver.
Before this fix, average sequential read bandwidth on a UHS-I SDR104
card is 16.8MiB/s. After this fix applied, it is 85.1MiB/s.
It fixes commit f785a6d9fdd2f6751f739d6863e1beec6d98484b
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
* rockchip64: add USB support for RK3528 / NanoPi Zero2 (6.18 + 7.0)
Add three kernel patches for USB support on the RK3528 SoC:
- phy-rockchip-inno-usb2: Add RK3528 USB2 PHY driver support
- rk3528.dtsi: Add xHCI, EHCI, OHCI and USB2 PHY device tree nodes
- nanopi-zero2: Enable USB host and OTG ports
Tested on hardware: USB storage, PCIe (AX210 WiFi) all working.
* rockchip64: fix USB patches for RK3528 (6.18 + 7.0)
- Fix error handling in USB2 PHY tuning: use individual return checks
instead of ret |= pattern (thanks @coderabbitai)
- Remove power-domains properties from USB DTS nodes: causes kernel
panic (synchronous external abort in rockchip_pmu_set_idle_request)
as RK3528 PMU idle request registers are not ready for these domains
- Fix patch hunk headers to match updated line counts
Tested on hardware: both current (6.18) and edge (6.19) boot
successfully with working USB.
* rockchip64: rk3528: change USB-C dr_mode from host to otg (6.18 + 7.0)
The DWC3 controller on the NanoPi Zero2 USB-C port was set to
host-only mode, preventing USB gadget functionality. Change to
OTG mode to support both host and peripheral use cases.
* rockchip64: rk3528: fix USB PHY regmap and revert dr_mode to host (6.18 + 7.0)
Fix the USB2 PHY driver probe to use phy_base for port register access
instead of the vo_grf syscon. The RK3528 PHY port registers (UTMI
status, VBUS detection, etc.) reside in the PHY register space, not
in the Video Output GRF. Using the wrong regmap caused register
accesses to hit unrelated hardware when the OTG state machine runs.
Revert dr_mode back to "host" as OTG/peripheral mode triggers a kernel
panic from timer corruption during DWC3 gadget initialization. This
needs further investigation before OTG support can be enabled.
* change regulator-min-microvolt to 1.4V
* adapt new voltage regulator values
* revert vdd_arm regulator due to boot time errors
* revert vdd_arm min voltage due to errors
* Generic aic8800-dkms.sh extension
* fix typo in filename
* remove file
Voltages for "gpu_opp_table" and "vdd_arm" were wrongly using default
values instead of the customized values from the vendor image, leading
to dmesg errors like
[ 19.709834] core: _opp_supported_by_regulators: OPP minuV: 1075000 maxuV: 1075000, not supported by regulator
[ 19.710075] lima ff300000.gpu: _opp_add: OPP not supported by regulators (200000000) 0xBEBC200
Thanks to Shadowrom2020 for noticing.
Update the I2S MCLK output gate clock patches to match the upstream v3
series. Changes from previous version:
- Split into 4 patches (was 3): added separate patch for
RK3588_SYSGRF_SOC_CON6 define in rk3588_grf.h
- Use named constant RK3588_SYSGRF_SOC_CON6 instead of magic 0x0318
- Add u-boot patch for clock ID bindings (needed by board DTS files)
6.18 uses kzalloc(sizeof(...)) as kzalloc_obj is not available.
7.0 uses kzalloc_obj as recommended by upstream reviewer.
Upstream: https://lore.kernel.org/linux-rockchip/20260320-rk3588-mclk-gate-grf-v3-0-980338eacd2c@superkali.me/
* Add GPU operating points and modify power controller
Makerbase power control adaptions due to voltage regulator limitations
* Add GPU operating points to rk3328-mkspi.dts
Makerbase power control adaptions due to voltage limitations
* Add GPU operating points to rk3328-mkspi.dts
* Remove unused gpu-opp-table node
* Remove unused gpu-opp-table node
* Remove unused gpu-opp-table node from device tree
* revert changes to kernel 6.12
* Add initial support for Qidi-X boards
* enable uart1 by default
* disable spi for screen and touch
* remove spi0 reference
* fix typo
* add new dts to kernel 7.0
* remove unused leds and unused drive
* fix storage
* disable sound output
* fixes for nitpick comments
* fix default device tree
* fix accidental changes
* changed supported boards comment
> This series fixes ES8388 audio on the Mekotronics R58X-Pro (RK3588).
>
> Without these patches, the i2s0_8ch_mclkout_to_io gate remains closed
> (enable_count=0 in the clk_summary), and the codec receives no master
> clock. DAPM reports all widgets as powered on and playback streams run
> without errors, but the hardware produces no sound — a rather
> frustrating failure mode to debug.
>
> With the series applied and the board DTS updated to reference
> I2S0_8CH_MCLKOUT_TO_IO from the codec node:
>
> es8388: audio-codec@10 {
> compatible = "everest,es8388", "everest,es8328";
> reg = <0x10>;
> clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
> assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
> assigned-clock-rates = <12288000>;
> ...
> };
>
> audio playback works correctly, tested via headphones output.
>
> Tested-by: Ricardo Pardini <ricardo@pardini.net>
Replace the single combined MCLK gate patch with three separate patches
matching the upstream series submitted to LKML:
1. dt-bindings: add I2S MCLK output to IO clock IDs (722-725)
2. clk: rockchip: allow grf_type_sys lookup in aux_grf_table
3. clk: rockchip: rk3588: add GATE_GRF clocks for I2S MCLK output
Key changes from the previous combined patch:
- Use grf_type_sys instead of grf_type_ioc
- Add all four I2S MCLK output gates (not just I2S0)
- Use GFLAGS macro for consistency
- Place each GATE_GRF after its parent MCLKOUT
- No subscope in init function
6.18 uses kzalloc(sizeof(...)) as kzalloc_obj is not available.
7.0 uses kzalloc_obj as recommended by upstream reviewer.
Upstream: https://lore.kernel.org/linux-rockchip/20260316-rk3588-mclk-gate-grf-v1-0-66fb9a246718@superkali.me/
Update patch 1004 to also fix compilation issues in dwmac-phytium.c:
- Make dwmac_phytium_get_resources() static to resolve missing prototype warning
- Remove invalid stmmac_res->lpi_irq = -ENOENT assignment (member doesn't exist)
The patch now fixes all compilation issues across both files:
- stmmac_platform.c: fw_get_phy_mode(), stmmac_acpi_clock_setup(), lpi_irq
- dwmac-phytium.c: dwmac_phytium_get_resources(), lpi_irq
All Phytium ethernet driver patches (1000-1004) should now compile cleanly.
Add new patch (1004) to fix compilation warnings and errors in the
Phytium ethernet driver patches for kernel 6.19:
- Make fw_get_phy_mode() static to resolve missing prototype warning
- Make stmmac_acpi_clock_setup() static to resolve missing prototype warning
- Remove invalid stmmac_res->lpi_irq assignment (member doesn't exist)
This patch should be applied after patches 1000-1003 to complete
the Phytium ethernet driver support for kernel 6.19.
* copy old patchset
* bump to 6.19
* megous: replace 6.18 with 6.19 patchset
* drm-sun4i: remove upstreamed patch series
* backports: remove fully upstreamed patches
* uwe5622: fix patch for 6.19
* megi: remove informational patch, confuses patching logic for unknown reason
* megi: disable unneeded patch (again)
* fix various broken patches
* sunxi: rewrite the whole patchset
* sun4i-drm: add patches not upstreamed yet from recent series
* disable broken patch @rvdr
```
[🔨] drivers/pci/pcie-sunxi/pcie-sunxi-rc.c: In function 'sunxi_allocate_msi_domains':
[🔨] drivers/pci/pcie-sunxi/pcie-sunxi-rc.c:198:26: error: implicit declaration of function 'pci_msi_create_irq_domain'; did you mean 'msi_create_irq_domain'? [-Werror=implicit-function-declaration]
[🔨] 198 | pp->msi_domain = pci_msi_create_irq_domain(fwnode, &sunxi_msi_info, pp->irq_domain);
[🔨] | ^~~~~~~~~~~~~~~~~~~~~~~~~
[🔨] | msi_create_irq_domain
```
* same story, disable broken patch
```
[🔨] drivers/iommu/sun55i-iommu.c: In function 'sunxi_iommu_profilling_show':
[🔨] drivers/iommu/sun55i-iommu.c:1110:1: warning: label 'err' defined but not used [-Wunused-label]
[🔨] 1110 | err:
[🔨] | ^~~
[🔨] drivers/iommu/sun55i-iommu.c: At top level:
[🔨] drivers/iommu/sun55i-iommu.c:1379:43: error: initialization of 'int (*)(struct iommu_domain *, struct device *, struct iommu_domain *)' from incompatible pointer type 'int (*)(struct iommu_domain *, struct device *)' [-Werror=incompatible-pointer-types]
[🔨] 1379 | .attach_dev = sun55i_iommu_attach_dev,
[🔨] | ^~~~~~~~~~~~~~~~~~~~~~~
[🔨] drivers/iommu/sun55i-iommu.c:1379:43: note: (near initialization for '(anonymous).attach_dev')
```
* rewrite again
* Update sunxi pci iommu patches and enable them back
* rewrite again
* bump major across branches
closing the circle of life
* Fix compatible string for combophy node in DTS patch
* shift kernel configs and rewrite for 6.19
* force rewrite of left-over combinations
closing the circle
* rewrite patchset against 6.19.4
* fix patch and add missing AC200 stuff again
* sunxi64: add missing kernel options for both current and edge
* sunxi64: rewrite patches against 6.19.6
* sunxi64: rewrite patches against 6.18.16
* sunxi: reorganize AC200 and H618 EMAC patches to apply earlier
- Move AC200 MFD, AC200 Ethernet PHY, and H618 EMAC patches to 0201-0203 series
- Ensures these drivers are available before dependent device tree patches
- Applies to both sunxi-6.18 and sunxi-6.19 kernel series
* sunxi-6.19: disable patch broken in 6.19.7
perhaps megi will find time to fix at some point
* sunxi-6.19: fix broken patch
snd_soc_kcontrol_component() was removed upstream in commit d742ebcfe524.
Use snd_kcontrol_chip() instead, which is the replacement.
* sunxi-6.18: disable broken patch
---------
Co-authored-by: juanesf <juanesf91@gmail.com>
Co-authored-by: Igor Pecovnik <igor@armbian.com>
Add ES8388 codec support via ES8323 driver on I2C7 with:
- Headphones on LOUT2/ROUT2 with jack detection
- Speaker via CS8120 amplifier on LOUT1/ROUT1
- Onboard microphone and microphone jack inputs
- MCLK routed through I2S0_8CH_MCLKOUT_TO_IO gate clock
- Default mixer state via asound.state
- Board config: add current kernel target, update description
On RK3588, the I2S0 MCLK output to the IO pin is gated by
SYS_GRF_SOC_CON6 (offset 0x318, bit 0). Unlike RK3588S where this
gate defaults to open, RK3588 defaults to closed, preventing MCLK
from reaching external audio codecs.
Add a GATE_GRF clock entry (I2S0_8CH_MCLKOUT_TO_IO) following the
pattern established for RK3576 SAI MCLKs using clk-gate-grf.c.
* add: initial support for DG SVR 865 Tiny board (SM8250/QCS8250)
* Board design by dg741a, thanks for the contribution! https://github.com/dg741a
### What does this commit do?
Adds initial support for the DG SVR 865 Tiny board based on the QCS8250 (SM8250)
chipset, enabling Armbian builds with ABL booting support.
### Features:
- ABL booting with GPT partition table
- Supports Debian bookworm/trixie and Ubuntu jammy/noble
- Full firmware inclusion with initrd hooks
- PPA repositories for updated GPU drivers on Ubuntu
### Testing status:
- Verified basic boot on DG SVR 865 Tiny hardware
- Serial console functional at 115200n8
### Notes:
- Suspend functionality not supported by current hardware
* fix: add BOARD_VENDOR for DG SVR 865 Tiny
* configs: add support for Qualcomm QCS8250 (SM8250) board
* config: remove non-specific KDE Plasma packages from dg-svr-865-tiny.conf
* board/dg-svr-865-tiny: drop redundant vulkan packages installation
* board/dg-svr-865-tiny: refactor userspace check with wrapper function (DRY)
Refactor repeated userspace support check into a wrapper function to follow DRY principle.
Rename DTS/DTB files for OrangePi RV2/R2S to match the
filename expected from Linux-7.x upstream. See discussion
on https://github.com/armbian/build/pull/9518
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>