Lines Matching +full:ext +full:- +full:clk +full:- +full:pin
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Driver for the U300 pin controller
6 * Copyright (C) 2009-2011 ST-Ericsson AB
25 #include <linux/pinctrl/pinconf-generic.h>
26 #include "pinctrl-coh901.h"
170 #define DRIVER_NAME "pinctrl-u300"
258 PINCTRL_PIN(69, "PO RF CTRL CLK"),
265 PINCTRL_PIN(76, "PI M CLK"),
266 PINCTRL_PIN(77, "PI RTC CLK"),
271 PINCTRL_PIN(82, "PO SYS 1 CLK"),
272 PINCTRL_PIN(83, "PO SYS 2 CLK"),
273 PINCTRL_PIN(84, "PO SYS 0 CLK"),
285 PINCTRL_PIN(96, "PI EXT IRQ1 N"),
286 PINCTRL_PIN(97, "PI EXT IRQ0 N"),
289 PINCTRL_PIN(100, "PIO ACC APP I2C CLK"),
296 PINCTRL_PIN(106, "PIO APP I2C1 CLK"),
315 PINCTRL_PIN(125, "PIO APP PCM I2S1 CLK"),
319 PINCTRL_PIN(129, "PIO APP PCM I2S0 CLK"),
333 PINCTRL_PIN(143, "PIO ACC SPI CLK"),
334 PINCTRL_PIN(144, "PO PDI EXT RST N"),
367 PINCTRL_PIN(177, "MMC CLK"),
389 PINCTRL_PIN(199, "PI CI EXT CLK"),
390 PINCTRL_PIN(200, "PO CI EXT RST N"),
488 PINCTRL_PIN(297, "PO EMIF 1 CLK"),
489 PINCTRL_PIN(298, "PIO EMIF 1 SD CLK"),
495 PINCTRL_PIN(304, "PI EMIF 1 RET CLK"),
526 PINCTRL_PIN(335, "PO ETM TRACE CLK"),
545 PINCTRL_PIN(353, "PO TAP RET CLK"),
546 PINCTRL_PIN(354, "PI TAP CLK"),
611 PINCTRL_PIN(419, "IF 0 SD CLK"),
612 PINCTRL_PIN(420, "APP SPI CLK"),
652 PINCTRL_PIN(460, "PIO ACC PCM I2S CLK"),
656 PINCTRL_PIN(464, "PO SIM CLK"),
672 * u300_pmx_registers - the array of registers read/written for each pinmux
684 * struct u300_pin_group - describes a U300 pin group
685 * @name: the name of this specific pin group
687 * from the driver-local pin enumeration space
698 * struct pmx_onmask - mask bits to enable/disable padmux
873 * Here we define the available functions and their corresponding pin groups
877 * struct u300_pmx_func - describes U300 pinmux functions
879 * @groups: corresponding pin groups
880 * @onmask: bits to set to enable this when doing pin muxing
945 val = upmx_mask->bits; in u300_pmx_endisable()
949 mask = upmx_mask->mask; in u300_pmx_endisable()
951 regval = readw(upmx->virtbase + u300_pmx_registers[i]); in u300_pmx_endisable()
954 writew(regval, upmx->virtbase + u300_pmx_registers[i]); in u300_pmx_endisable()
1002 static int u300_pin_config_get(struct pinctrl_dev *pctldev, unsigned pin, in u300_pin_config_get() argument
1006 pinctrl_find_gpio_range_from_pin(pctldev, pin); in u300_pin_config_get()
1010 return -ENOTSUPP; in u300_pin_config_get()
1012 return u300_gpio_config_get(range->gc, in u300_pin_config_get()
1013 (pin - range->pin_base + range->base), in u300_pin_config_get()
1017 static int u300_pin_config_set(struct pinctrl_dev *pctldev, unsigned pin, in u300_pin_config_set() argument
1021 pinctrl_find_gpio_range_from_pin(pctldev, pin); in u300_pin_config_set()
1025 return -EINVAL; in u300_pin_config_set()
1029 ret = u300_gpio_config_set(range->gc, in u300_pin_config_set()
1030 (pin - range->pin_base + range->base), in u300_pin_config_set()
1060 upmx = devm_kzalloc(&pdev->dev, sizeof(*upmx), GFP_KERNEL); in u300_pmx_probe()
1062 return -ENOMEM; in u300_pmx_probe()
1064 upmx->dev = &pdev->dev; in u300_pmx_probe()
1066 upmx->virtbase = devm_platform_ioremap_resource(pdev, 0); in u300_pmx_probe()
1067 if (IS_ERR(upmx->virtbase)) in u300_pmx_probe()
1068 return PTR_ERR(upmx->virtbase); in u300_pmx_probe()
1070 upmx->pctl = devm_pinctrl_register(&pdev->dev, &u300_pmx_desc, upmx); in u300_pmx_probe()
1071 if (IS_ERR(upmx->pctl)) { in u300_pmx_probe()
1072 dev_err(&pdev->dev, "could not register U300 pinmux driver\n"); in u300_pmx_probe()
1073 return PTR_ERR(upmx->pctl); in u300_pmx_probe()
1078 dev_info(&pdev->dev, "initialized U300 pin control driver\n"); in u300_pmx_probe()
1084 { .compatible = "stericsson,pinctrl-u300" },
1110 MODULE_DESCRIPTION("U300 pin control driver");