mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'memory-controller-drv-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
Memory controller drivers for v6.18 1. STM32 OMM: Fix ineffective/missing setting of the req2ack in the device based on DT property, if the value is different than 0. 2. Samsung Exynos SROM: Fix IO map resource leak if of_platform_populate() in probe() failed. 3. Broadcom brcmstb: Document existing, older devices in Devicetree bindings. 4. Tegra 210 EMC: Document OPP table for interconnects (driver usage will come later) and define memory client IDs as bindings, because these are shared between DTS and driver. * tag 'memory-controller-drv-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl: memory: tegra210: Use bindings for client ids dt-bindings: memory: tegra210: Add memory client IDs dt-bindings: memory: tegra210: emc: Document OPP table and interconnect dt-bindings: memory: Update brcmstb-memc-ddr binding with older chips memory: samsung: exynos-srom: Fix of_iomap leak in exynos_srom_probe memory: stm32_omm: Fix req2ack update test Link: https://lore.kernel.org/r/20250912140030.204650-2-krzysztof.kozlowski@linaro.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -42,6 +42,10 @@ properties:
|
||||
items:
|
||||
- const: brcm,brcmstb-memc-ddr-rev-b.1.x
|
||||
- const: brcm,brcmstb-memc-ddr
|
||||
- description: Revision 0.x controllers
|
||||
items:
|
||||
- const: brcm,brcmstb-memc-ddr-rev-a.0.0
|
||||
- const: brcm,brcmstb-memc-ddr
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -33,6 +33,9 @@ properties:
|
||||
items:
|
||||
- description: EMC general interrupt
|
||||
|
||||
"#interconnect-cells":
|
||||
const: 0
|
||||
|
||||
memory-region:
|
||||
maxItems: 1
|
||||
description:
|
||||
@@ -44,6 +47,11 @@ properties:
|
||||
description:
|
||||
phandle of the memory controller node
|
||||
|
||||
operating-points-v2:
|
||||
description:
|
||||
Should contain freqs and voltages and opp-supported-hw property, which
|
||||
is a bitfield indicating SoC speedo ID mask.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -79,4 +87,7 @@ examples:
|
||||
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
|
||||
memory-region = <&emc_table>;
|
||||
nvidia,memory-controller = <&mc>;
|
||||
operating-points-v2 = <&dvfs_opp_table>;
|
||||
|
||||
#interconnect-cells = <0>;
|
||||
};
|
||||
|
||||
@@ -121,20 +121,18 @@ static int exynos_srom_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
|
||||
srom->dev = dev;
|
||||
srom->reg_base = of_iomap(np, 0);
|
||||
if (!srom->reg_base) {
|
||||
srom->reg_base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(srom->reg_base)) {
|
||||
dev_err(&pdev->dev, "iomap of exynos srom controller failed\n");
|
||||
return -ENOMEM;
|
||||
return PTR_ERR(srom->reg_base);
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, srom);
|
||||
|
||||
srom->reg_offset = exynos_srom_alloc_reg_dump(exynos_srom_offsets,
|
||||
ARRAY_SIZE(exynos_srom_offsets));
|
||||
if (!srom->reg_offset) {
|
||||
iounmap(srom->reg_base);
|
||||
if (!srom->reg_offset)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
for_each_child_of_node(np, child) {
|
||||
if (exynos_srom_configure_bank(srom, child)) {
|
||||
|
||||
@@ -238,7 +238,7 @@ static int stm32_omm_configure(struct device *dev)
|
||||
if (mux & CR_MUXEN) {
|
||||
ret = of_property_read_u32(dev->of_node, "st,omm-req2ack-ns",
|
||||
&req2ack);
|
||||
if (!ret && !req2ack) {
|
||||
if (!ret && req2ack) {
|
||||
req2ack = DIV_ROUND_UP(req2ack, NSEC_PER_SEC / clk_rate_max) - 1;
|
||||
|
||||
if (req2ack > 256)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -75,4 +75,78 @@
|
||||
#define TEGRA210_MC_RESET_ETR 28
|
||||
#define TEGRA210_MC_RESET_TSECB 29
|
||||
|
||||
#define TEGRA210_MC_PTCR 0
|
||||
#define TEGRA210_MC_DISPLAY0A 1
|
||||
#define TEGRA210_MC_DISPLAY0AB 2
|
||||
#define TEGRA210_MC_DISPLAY0B 3
|
||||
#define TEGRA210_MC_DISPLAY0BB 4
|
||||
#define TEGRA210_MC_DISPLAY0C 5
|
||||
#define TEGRA210_MC_DISPLAY0CB 6
|
||||
#define TEGRA210_MC_AFIR 14
|
||||
#define TEGRA210_MC_AVPCARM7R 15
|
||||
#define TEGRA210_MC_DISPLAYHC 16
|
||||
#define TEGRA210_MC_DISPLAYHCB 17
|
||||
#define TEGRA210_MC_HDAR 21
|
||||
#define TEGRA210_MC_HOST1XDMAR 22
|
||||
#define TEGRA210_MC_HOST1XR 23
|
||||
#define TEGRA210_MC_NVENCSRD 28
|
||||
#define TEGRA210_MC_PPCSAHBDMAR 29
|
||||
#define TEGRA210_MC_PPCSAHBSLVR 30
|
||||
#define TEGRA210_MC_SATAR 31
|
||||
#define TEGRA210_MC_MPCORER 39
|
||||
#define TEGRA210_MC_NVENCSWR 43
|
||||
#define TEGRA210_MC_AFIW 49
|
||||
#define TEGRA210_MC_AVPCARM7W 50
|
||||
#define TEGRA210_MC_HDAW 53
|
||||
#define TEGRA210_MC_HOST1XW 54
|
||||
#define TEGRA210_MC_MPCOREW 57
|
||||
#define TEGRA210_MC_PPCSAHBDMAW 59
|
||||
#define TEGRA210_MC_PPCSAHBSLVW 60
|
||||
#define TEGRA210_MC_SATAW 61
|
||||
#define TEGRA210_MC_ISPRA 68
|
||||
#define TEGRA210_MC_ISPWA 70
|
||||
#define TEGRA210_MC_ISPWB 71
|
||||
#define TEGRA210_MC_XUSB_HOSTR 74
|
||||
#define TEGRA210_MC_XUSB_HOSTW 75
|
||||
#define TEGRA210_MC_XUSB_DEVR 76
|
||||
#define TEGRA210_MC_XUSB_DEVW 77
|
||||
#define TEGRA210_MC_ISPRAB 78
|
||||
#define TEGRA210_MC_ISPWAB 80
|
||||
#define TEGRA210_MC_ISPWBB 81
|
||||
#define TEGRA210_MC_TSECSRD 84
|
||||
#define TEGRA210_MC_TSECSWR 85
|
||||
#define TEGRA210_MC_A9AVPSCR 86
|
||||
#define TEGRA210_MC_A9AVPSCW 87
|
||||
#define TEGRA210_MC_GPUSRD 88
|
||||
#define TEGRA210_MC_GPUSWR 89
|
||||
#define TEGRA210_MC_DISPLAYT 90
|
||||
#define TEGRA210_MC_SDMMCRA 96
|
||||
#define TEGRA210_MC_SDMMCRAA 97
|
||||
#define TEGRA210_MC_SDMMCR 98
|
||||
#define TEGRA210_MC_SDMMCRAB 99
|
||||
#define TEGRA210_MC_SDMMCWA 100
|
||||
#define TEGRA210_MC_SDMMCWAA 101
|
||||
#define TEGRA210_MC_SDMMCW 102
|
||||
#define TEGRA210_MC_SDMMCWAB 103
|
||||
#define TEGRA210_MC_VICSRD 108
|
||||
#define TEGRA210_MC_VICSWR 109
|
||||
#define TEGRA210_MC_VIW 114
|
||||
#define TEGRA210_MC_DISPLAYD 115
|
||||
#define TEGRA210_MC_NVDECSRD 120
|
||||
#define TEGRA210_MC_NVDECSWR 121
|
||||
#define TEGRA210_MC_APER 122
|
||||
#define TEGRA210_MC_APEW 123
|
||||
#define TEGRA210_MC_NVJPGRD 126
|
||||
#define TEGRA210_MC_NVJPGWR 127
|
||||
#define TEGRA210_MC_SESRD 128
|
||||
#define TEGRA210_MC_SESWR 129
|
||||
#define TEGRA210_MC_AXIAPR 130
|
||||
#define TEGRA210_MC_AXIAPW 131
|
||||
#define TEGRA210_MC_ETRR 132
|
||||
#define TEGRA210_MC_ETRW 133
|
||||
#define TEGRA210_MC_TSECSRDB 134
|
||||
#define TEGRA210_MC_TSECSWRB 135
|
||||
#define TEGRA210_MC_GPUSRD2 136
|
||||
#define TEGRA210_MC_GPUSWR2 137
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user