Message ID | 20250102205846.223955-1-ivo.ivanov.ivanov1@gmail.com |
---|---|
Headers | show |
Series | arm64: dts: exynos8895: define usi and mmc nodes | expand |
Hi Ivaylo, On 1/2/25 10:58 PM, Ivaylo Ivanov wrote: > Enable MMC for the Samsung Galaxy S8, used as external microSD card > storage. Since the main PMIC is currently not supported, assume the > required regulators are enabled by the previous bootloader. > > Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> > --- > .../boot/dts/exynos/exynos8895-dreamlte.dts | 39 +++++++++++++++++++ > 1 file changed, 39 insertions(+) > > diff --git a/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts b/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts > index 3a376ab2b..11aed89a3 100644 > --- a/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts > +++ b/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts > @@ -16,6 +16,10 @@ / { > compatible = "samsung,dreamlte", "samsung,exynos8895"; > chassis-type = "handset"; > > + aliases { > + mmc0 = &mmc; > + }; > + > chosen { > #address-cells = <2>; > #size-cells = <1>; > @@ -89,12 +93,47 @@ wink-key { > wakeup-source; > }; > }; > + > + reg_sd_vmmc: regulator-1 { > + compatible = "regulator-fixed"; > + gpio = <&gpb1 1 GPIO_ACTIVE_HIGH>; > + regulator-name = "sdcard-vmmc"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + regulator-boot-on; > + enable-active-high; > + }; This regulator was described in downstream, but it doesn't look like it exists on schematics. It could be different revisions having different hardware, of course, but for me it looks like it's redundant. (on schematics VMMC (Vdd for the card) is powered by S2MPS17 LDO29, and VQMMC (logic level) is powered by S2MPS17 LDO2). I believe we should check if this hw exists by perhaps checking if manually changing GPIO output value changes the card behavior, and if it doesn't, it should be safe to drop it. > }; > > &oscclk { > clock-frequency = <26000000>; > }; > > +&mmc { > + assigned-clocks = <&cmu_top CLK_MOUT_CMU_FSYS1_MMC_CARD>; > + assigned-clock-parents = <&cmu_top CLK_FOUT_SHARED4_PLL>; To clarify, as proven by testing, this exists because with default (on reset) mux MOUT_CMU_FSYS1_MMC_CARD configuration, the card doesn't show up, so the parent is manually set to SHARED4 PLL. With this in mind, maybe it makes more sense to put this into SoC dtsi, since it can't possibly be board-specific? > + > + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>; > + pinctrl-names = "default"; > + > + bus-width = <4>; > + card-detect-delay = <200>; > + cd-gpios = <&gpa1 5 GPIO_ACTIVE_LOW>; Missing pinctrl for card detect pin? > + clock-frequency = <50000000>; > + disable-wp; > + sd-uhs-sdr50; > + sd-uhs-sdr104; > + > + /* TODO: Update once PMIC is implemented */ > + vmmc-supply = <®_sd_vmmc>; > + > + samsung,dw-mshc-ciu-div = <3>; > + samsung,dw-mshc-ddr-timing = <1 2>; > + samsung,dw-mshc-sdr-timing = <0 3>; > + > + status = "okay"; > +}; > + > &pinctrl_alive { > key_power: key-power-pins { > samsung,pins = "gpa2-4"; - Markuss
On Thu, Jan 02, 2025 at 10:58:42PM +0200, Ivaylo Ivanov wrote: > Add samsung,exynos8895-dw-mshc-smu specific compatible to the bindings > documentation. Since Samsung, as usual, likes reusing devices from older > designs, use the samsung,exynos7-dw-mshc-smu compatible. > > Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> > --- > .../devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml | 1 + > 1 file changed, 1 insertion(+) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On Thu, 02 Jan 2025 22:58:41 +0200, Ivaylo Ivanov wrote: > Hey folks, > > This patch series adds the required syscons for controlling USI, as well > as defines all USIv1 nodes for Exynos8895 and adds support for utilizing > the external SD card storage in dreamlte. Due to PMIC not being supported > yet, we'll assume that the regulators are pre-enabled by the previous > bootloader for vqmmc. (in our case uniLoader). > > The patchset relies on [1]. I also expect the exynos mmc binding > maintainer to pick the specific-compat patch. > > Best regards, > Ivaylo > > [1]: https://lore.kernel.org/all/20250102204015.222653-1-ivo.ivanov.ivanov1@gmail.com/ > > Ivaylo Ivanov (5): > dt-bindings: mmc: samsung,exynos-dw-mshc: add specific compatible for > exynos8895 > arm64: dts: exynos8895: add syscon nodes for peric0/1 and fsys0/1 > arm64: dts: exynos8895: define all usi nodes > arm64: dts: exynos8895: add a node for mmc > arm64: dts: exynos: exynos8895-dreamlte: enable support for microSD > storage > > .../bindings/mmc/samsung,exynos-dw-mshc.yaml | 1 + > .../boot/dts/exynos/exynos8895-dreamlte.dts | 39 + > arch/arm64/boot/dts/exynos/exynos8895.dtsi | 906 ++++++++++++++++++ > 3 files changed, 946 insertions(+) > > -- > 2.43.0 > > > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y exynos/exynos8895-dreamlte.dtb' for 20250102205846.223955-1-ivo.ivanov.ivanov1@gmail.com: arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/syscon@10420000: failed to match any schema with compatible: ['samsung,exynos8895-peric0-sysreg', 'syscon'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10440000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10440000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10440000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10460000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10460000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10460000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10480000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10480000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10480000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@104a0000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@104a0000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@104a0000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/syscon@10820000: failed to match any schema with compatible: ['samsung,exynos8895-peric1-sysreg', 'syscon'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10840000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10840000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10840000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10860000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10860000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10860000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10880000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10880000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10880000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108a0000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108a0000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108a0000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108c0000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108c0000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108c0000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108e0000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108e0000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@108e0000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10900000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10900000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10900000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10920000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10920000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10920000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10940000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10940000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10940000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10960000: failed to match any schema with compatible: ['samsung,exynos8895-usi'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10960000/i2c@0: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/usi@10960000/i2c@10000: failed to match any schema with compatible: ['samsung,exynos8895-hsi2c'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/syscon@11020000: failed to match any schema with compatible: ['samsung,exynos8895-fsys0-sysreg', 'syscon'] arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb: /soc@0/syscon@11420000: failed to match any schema with compatible: ['samsung,exynos8895-fsys1-sysreg', 'syscon']