Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: memory: tegra: Add Tegra234 support

Document the variant of the memory controller and external memory
controllers found on Tegra234 and add some memory client and SMMU
stream ID definitions for use in device tree files.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>

+61
+20
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-mc.yaml
··· 31 31 - enum: 32 32 - nvidia,tegra186-mc 33 33 - nvidia,tegra194-mc 34 + - nvidia,tegra234-mc 34 35 35 36 reg: 36 37 minItems: 1 ··· 69 68 - enum: 70 69 - nvidia,tegra186-emc 71 70 - nvidia,tegra194-emc 71 + - nvidia,tegra234-emc 72 72 73 73 reg: 74 74 minItems: 1 ··· 114 112 reg: 115 113 minItems: 2 116 114 115 + - if: 116 + properties: 117 + compatible: 118 + const: nvidia,tegra234-emc 119 + then: 120 + properties: 121 + reg: 122 + minItems: 2 123 + 117 124 additionalProperties: false 118 125 119 126 required: ··· 148 137 properties: 149 138 compatible: 150 139 const: nvidia,tegra194-mc 140 + then: 141 + properties: 142 + reg: 143 + minItems: 3 144 + 145 + - if: 146 + properties: 147 + compatible: 148 + const: nvidia,tegra234-mc 151 149 then: 152 150 properties: 153 151 reg:
+9
include/dt-bindings/clock/tegra234-clock.h
··· 9 9 * @defgroup bpmp_clock_ids Clock ID's 10 10 * @{ 11 11 */ 12 + /** 13 + * @brief controls the EMC clock frequency. 14 + * @details Doing a clk_set_rate on this clock will select the 15 + * appropriate clock source, program the source rate and execute a 16 + * specific sequence to switch to the new clock source for both memory 17 + * controllers. This can be used to control the balance between memory 18 + * throughput and memory controller power. 19 + */ 20 + #define TEGRA234_CLK_EMC 31U 12 21 /** @brief output of gate CLK_ENB_FUSE */ 13 22 #define TEGRA234_CLK_FUSE 40U 14 23 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC4 */
+32
include/dt-bindings/memory/tegra234-mc.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ 2 + 3 + #ifndef DT_BINDINGS_MEMORY_TEGRA234_MC_H 4 + #define DT_BINDINGS_MEMORY_TEGRA234_MC_H 5 + 6 + /* special clients */ 7 + #define TEGRA234_SID_INVALID 0x00 8 + #define TEGRA234_SID_PASSTHROUGH 0x7f 9 + 10 + 11 + /* NISO1 stream IDs */ 12 + #define TEGRA234_SID_SDMMC4 0x02 13 + #define TEGRA234_SID_BPMP 0x10 14 + 15 + /* 16 + * memory client IDs 17 + */ 18 + 19 + /* sdmmcd memory read client */ 20 + #define TEGRA234_MEMORY_CLIENT_SDMMCRAB 0x63 21 + /* sdmmcd memory write client */ 22 + #define TEGRA234_MEMORY_CLIENT_SDMMCWAB 0x67 23 + /* BPMP read client */ 24 + #define TEGRA234_MEMORY_CLIENT_BPMPR 0x93 25 + /* BPMP write client */ 26 + #define TEGRA234_MEMORY_CLIENT_BPMPW 0x94 27 + /* BPMPDMA read client */ 28 + #define TEGRA234_MEMORY_CLIENT_BPMPDMAR 0x95 29 + /* BPMPDMA write client */ 30 + #define TEGRA234_MEMORY_CLIENT_BPMPDMAW 0x96 31 + 32 + #endif