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

pinctrl: samsung: Add ARTPEC-9 SoC specific configuration

Add Axis ARTPEC-9 SoC specific configuration data to enable pinctrl.

Signed-off-by: SeonGu Kang <ksk4725@coasia.com>
Signed-off-by: Ravi Patel <ravi.patel@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

authored by

SeonGu Kang and committed by
Krzysztof Kozlowski
3cfc60e0 e671a1bb

+52
+49
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
··· 2023 2023 .ctrl = artpec8_pin_ctrl, 2024 2024 .num_ctrl = ARRAY_SIZE(artpec8_pin_ctrl), 2025 2025 }; 2026 + 2027 + /* pin banks of artpec9 pin-controller (FSYS0) */ 2028 + static const struct samsung_pin_bank_data artpec9_pin_banks0[] __initconst = { 2029 + ARTPEC_PIN_BANK_EINTG(8, 0x000, "gpf0", 0x00), 2030 + ARTPEC_PIN_BANK_EINTG(8, 0x020, "gpf1", 0x04), 2031 + ARTPEC_PIN_BANK_EINTG(8, 0x040, "gpe0", 0x08), 2032 + ARTPEC_PIN_BANK_EINTG(8, 0x060, "gpe1", 0x0c), 2033 + ARTPEC_PIN_BANK_EINTG(8, 0x080, "gpe2", 0x10), 2034 + ARTPEC_PIN_BANK_EINTG(8, 0x0a0, "gpe3", 0x14), 2035 + ARTPEC_PIN_BANK_EINTG(2, 0x0c0, "gpe4", 0x18), 2036 + ARTPEC_PIN_BANK_EINTG(8, 0x0e0, "gps0", 0x1c), 2037 + ARTPEC_PIN_BANK_EINTG(8, 0x100, "gps1", 0x20), 2038 + ARTPEC_PIN_BANK_EINTG(5, 0x120, "gpi0", 0x24), 2039 + }; 2040 + 2041 + /* pin banks of artpec9 pin-controller (FSYS1) */ 2042 + static const struct samsung_pin_bank_data artpec9_pin_banks1[] __initconst = { 2043 + ARTPEC_PIN_BANK_EINTG(2, 0x000, "gpu0", 0x00), 2044 + }; 2045 + 2046 + /* pin banks of artpec9 pin-controller (PERIC) */ 2047 + static const struct samsung_pin_bank_data artpec9_pin_banks2[] __initconst = { 2048 + ARTPEC_PIN_BANK_EINTG(8, 0x000, "gpa0", 0x00), 2049 + ARTPEC_PIN_BANK_EINTG(8, 0x020, "gpa1", 0x04), 2050 + }; 2051 + 2052 + static const struct samsung_pin_ctrl artpec9_pin_ctrl[] __initconst = { 2053 + { 2054 + /* pin-controller instance 0 FSYS0 data */ 2055 + .pin_banks = artpec9_pin_banks0, 2056 + .nr_banks = ARRAY_SIZE(artpec9_pin_banks0), 2057 + .eint_gpio_init = exynos_eint_gpio_init, 2058 + }, { 2059 + /* pin-controller instance 1 FSYS1 data */ 2060 + .pin_banks = artpec9_pin_banks1, 2061 + .nr_banks = ARRAY_SIZE(artpec9_pin_banks1), 2062 + .eint_gpio_init = exynos_eint_gpio_init, 2063 + }, { 2064 + /* pin-controller instance 2 PERIC data */ 2065 + .pin_banks = artpec9_pin_banks2, 2066 + .nr_banks = ARRAY_SIZE(artpec9_pin_banks2), 2067 + .eint_gpio_init = exynos_eint_gpio_init, 2068 + }, 2069 + }; 2070 + 2071 + const struct samsung_pinctrl_of_match_data artpec9_of_data __initconst = { 2072 + .ctrl = artpec9_pin_ctrl, 2073 + .num_ctrl = ARRAY_SIZE(artpec9_pin_ctrl), 2074 + };
+2
drivers/pinctrl/samsung/pinctrl-samsung.c
··· 1484 1484 #ifdef CONFIG_PINCTRL_EXYNOS_ARM64 1485 1485 { .compatible = "axis,artpec8-pinctrl", 1486 1486 .data = &artpec8_of_data }, 1487 + { .compatible = "axis,artpec9-pinctrl", 1488 + .data = &artpec9_of_data }, 1487 1489 { .compatible = "google,gs101-pinctrl", 1488 1490 .data = &gs101_of_data }, 1489 1491 { .compatible = "samsung,exynos2200-pinctrl",
+1
drivers/pinctrl/samsung/pinctrl-samsung.h
··· 382 382 383 383 /* list of all exported SoC specific data */ 384 384 extern const struct samsung_pinctrl_of_match_data artpec8_of_data; 385 + extern const struct samsung_pinctrl_of_match_data artpec9_of_data; 385 386 extern const struct samsung_pinctrl_of_match_data exynos2200_of_data; 386 387 extern const struct samsung_pinctrl_of_match_data exynos3250_of_data; 387 388 extern const struct samsung_pinctrl_of_match_data exynos4210_of_data;