jzpc               88 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc;
jzpc             1337 drivers/pinctrl/pinctrl-ingenic.c 	regmap_read(jzgc->jzpc->map, jzgc->reg_base + reg, &val);
jzpc             1350 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzgc->jzpc->map, jzgc->reg_base + reg, BIT(offset));
jzpc             1361 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzgc->jzpc->map, X1000_GPIO_PZ_BASE + reg, BIT(offset));
jzpc             1366 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzgc->jzpc->map, X1000_GPIO_PZ_GID2LD,
jzpc             1381 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760)
jzpc             1392 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760) {
jzpc             1402 drivers/pinctrl/pinctrl-ingenic.c 		if (jzgc->jzpc->version >= ID_X1000) {
jzpc             1412 drivers/pinctrl/pinctrl-ingenic.c 		if (jzgc->jzpc->version >= ID_X1000) {
jzpc             1422 drivers/pinctrl/pinctrl-ingenic.c 		if (jzgc->jzpc->version >= ID_X1000) {
jzpc             1433 drivers/pinctrl/pinctrl-ingenic.c 		if (jzgc->jzpc->version >= ID_X1000) {
jzpc             1467 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760)
jzpc             1483 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760)
jzpc             1508 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760)
jzpc             1565 drivers/pinctrl/pinctrl-ingenic.c 	if (jzgc->jzpc->version >= ID_JZ4760)
jzpc             1603 drivers/pinctrl/pinctrl-ingenic.c static inline void ingenic_config_pin(struct ingenic_pinctrl *jzpc,
jzpc             1609 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzpc->map, offt * 0x100 +
jzpc             1613 drivers/pinctrl/pinctrl-ingenic.c static inline void ingenic_shadow_config_pin(struct ingenic_pinctrl *jzpc,
jzpc             1618 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzpc->map, X1000_GPIO_PZ_BASE +
jzpc             1622 drivers/pinctrl/pinctrl-ingenic.c static inline void ingenic_shadow_config_pin_load(struct ingenic_pinctrl *jzpc,
jzpc             1625 drivers/pinctrl/pinctrl-ingenic.c 	regmap_write(jzpc->map, X1000_GPIO_PZ_GID2LD, pin / PINS_PER_GPIO_CHIP);
jzpc             1628 drivers/pinctrl/pinctrl-ingenic.c static inline bool ingenic_get_pin_config(struct ingenic_pinctrl *jzpc,
jzpc             1635 drivers/pinctrl/pinctrl-ingenic.c 	regmap_read(jzpc->map, offt * 0x100 + reg, &val);
jzpc             1643 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc = jzgc->jzpc;
jzpc             1646 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_JZ4760)
jzpc             1647 drivers/pinctrl/pinctrl-ingenic.c 		return ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1);
jzpc             1649 drivers/pinctrl/pinctrl-ingenic.c 	if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_SELECT))
jzpc             1652 drivers/pinctrl/pinctrl-ingenic.c 	return !ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_DIR);
jzpc             1663 drivers/pinctrl/pinctrl-ingenic.c static int ingenic_pinmux_set_pin_fn(struct ingenic_pinctrl *jzpc,
jzpc             1669 drivers/pinctrl/pinctrl-ingenic.c 	dev_dbg(jzpc->dev, "set pin P%c%u to function %u\n",
jzpc             1672 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_X1000) {
jzpc             1673 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
jzpc             1674 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, GPIO_MSK, false);
jzpc             1675 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, func & 0x2);
jzpc             1676 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT0, func & 0x1);
jzpc             1677 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin_load(jzpc, pin);
jzpc             1678 drivers/pinctrl/pinctrl-ingenic.c 	} else if (jzpc->version >= ID_JZ4760) {
jzpc             1679 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
jzpc             1680 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, GPIO_MSK, false);
jzpc             1681 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, func & 0x2);
jzpc             1682 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PAT0, func & 0x1);
jzpc             1684 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_FUNC, true);
jzpc             1685 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_TRIG, func & 0x2);
jzpc             1686 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_SELECT, func > 0);
jzpc             1695 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc = pinctrl_dev_get_drvdata(pctldev);
jzpc             1714 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_pinmux_set_pin_fn(jzpc, grp->pins[i], pin_modes[i]);
jzpc             1724 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc = pinctrl_dev_get_drvdata(pctldev);
jzpc             1731 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_X1000) {
jzpc             1732 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
jzpc             1733 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, GPIO_MSK, true);
jzpc             1734 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, input);
jzpc             1735 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_shadow_config_pin_load(jzpc, pin);
jzpc             1736 drivers/pinctrl/pinctrl-ingenic.c 	} else if (jzpc->version >= ID_JZ4760) {
jzpc             1737 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
jzpc             1738 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, GPIO_MSK, true);
jzpc             1739 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, input);
jzpc             1741 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_SELECT, false);
jzpc             1742 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_DIR, !input);
jzpc             1743 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_FUNC, false);
jzpc             1760 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc = pinctrl_dev_get_drvdata(pctldev);
jzpc             1766 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_JZ4760)
jzpc             1767 drivers/pinctrl/pinctrl-ingenic.c 		pull = !ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PEN);
jzpc             1769 drivers/pinctrl/pinctrl-ingenic.c 		pull = !ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_PULL_DIS);
jzpc             1778 drivers/pinctrl/pinctrl-ingenic.c 		if (!pull || !(jzpc->info->pull_ups[offt] & BIT(idx)))
jzpc             1783 drivers/pinctrl/pinctrl-ingenic.c 		if (!pull || !(jzpc->info->pull_downs[offt] & BIT(idx)))
jzpc             1795 drivers/pinctrl/pinctrl-ingenic.c static void ingenic_set_bias(struct ingenic_pinctrl *jzpc,
jzpc             1798 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_JZ4760)
jzpc             1799 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PEN, !enabled);
jzpc             1801 drivers/pinctrl/pinctrl-ingenic.c 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_PULL_DIS, !enabled);
jzpc             1807 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc = pinctrl_dev_get_drvdata(pctldev);
jzpc             1826 drivers/pinctrl/pinctrl-ingenic.c 			dev_dbg(jzpc->dev, "disable pull-over for pin P%c%u\n",
jzpc             1828 drivers/pinctrl/pinctrl-ingenic.c 			ingenic_set_bias(jzpc, pin, false);
jzpc             1832 drivers/pinctrl/pinctrl-ingenic.c 			if (!(jzpc->info->pull_ups[offt] & BIT(idx)))
jzpc             1834 drivers/pinctrl/pinctrl-ingenic.c 			dev_dbg(jzpc->dev, "set pull-up for pin P%c%u\n",
jzpc             1836 drivers/pinctrl/pinctrl-ingenic.c 			ingenic_set_bias(jzpc, pin, true);
jzpc             1840 drivers/pinctrl/pinctrl-ingenic.c 			if (!(jzpc->info->pull_downs[offt] & BIT(idx)))
jzpc             1842 drivers/pinctrl/pinctrl-ingenic.c 			dev_dbg(jzpc->dev, "set pull-down for pin P%c%u\n",
jzpc             1844 drivers/pinctrl/pinctrl-ingenic.c 			ingenic_set_bias(jzpc, pin, true);
jzpc             1938 drivers/pinctrl/pinctrl-ingenic.c static int __init ingenic_gpio_probe(struct ingenic_pinctrl *jzpc,
jzpc             1942 drivers/pinctrl/pinctrl-ingenic.c 	struct device *dev = jzpc->dev;
jzpc             1956 drivers/pinctrl/pinctrl-ingenic.c 	jzgc->jzpc = jzpc;
jzpc             2016 drivers/pinctrl/pinctrl-ingenic.c 	struct ingenic_pinctrl *jzpc;
jzpc             2027 drivers/pinctrl/pinctrl-ingenic.c 	jzpc = devm_kzalloc(dev, sizeof(*jzpc), GFP_KERNEL);
jzpc             2028 drivers/pinctrl/pinctrl-ingenic.c 	if (!jzpc)
jzpc             2036 drivers/pinctrl/pinctrl-ingenic.c 	jzpc->map = devm_regmap_init_mmio(dev, base,
jzpc             2038 drivers/pinctrl/pinctrl-ingenic.c 	if (IS_ERR(jzpc->map)) {
jzpc             2040 drivers/pinctrl/pinctrl-ingenic.c 		return PTR_ERR(jzpc->map);
jzpc             2043 drivers/pinctrl/pinctrl-ingenic.c 	jzpc->dev = dev;
jzpc             2046 drivers/pinctrl/pinctrl-ingenic.c 		jzpc->version = (enum jz_version)of_id->data;
jzpc             2048 drivers/pinctrl/pinctrl-ingenic.c 		jzpc->version = (enum jz_version)id->driver_data;
jzpc             2050 drivers/pinctrl/pinctrl-ingenic.c 	if (jzpc->version >= ID_X1500)
jzpc             2052 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_X1000E)
jzpc             2054 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_X1000)
jzpc             2056 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_JZ4780)
jzpc             2058 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_JZ4770)
jzpc             2060 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_JZ4760B)
jzpc             2062 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_JZ4760)
jzpc             2064 drivers/pinctrl/pinctrl-ingenic.c 	else if (jzpc->version >= ID_JZ4725B)
jzpc             2068 drivers/pinctrl/pinctrl-ingenic.c 	jzpc->info = chip_info;
jzpc             2081 drivers/pinctrl/pinctrl-ingenic.c 	pctl_desc->pins = jzpc->pdesc = devm_kcalloc(&pdev->dev,
jzpc             2082 drivers/pinctrl/pinctrl-ingenic.c 			pctl_desc->npins, sizeof(*jzpc->pdesc), GFP_KERNEL);
jzpc             2083 drivers/pinctrl/pinctrl-ingenic.c 	if (!jzpc->pdesc)
jzpc             2087 drivers/pinctrl/pinctrl-ingenic.c 		jzpc->pdesc[i].number = i;
jzpc             2088 drivers/pinctrl/pinctrl-ingenic.c 		jzpc->pdesc[i].name = kasprintf(GFP_KERNEL, "P%c%d",
jzpc             2093 drivers/pinctrl/pinctrl-ingenic.c 	jzpc->pctl = devm_pinctrl_register(dev, pctl_desc, jzpc);
jzpc             2094 drivers/pinctrl/pinctrl-ingenic.c 	if (IS_ERR(jzpc->pctl)) {
jzpc             2096 drivers/pinctrl/pinctrl-ingenic.c 		return PTR_ERR(jzpc->pctl);
jzpc             2102 drivers/pinctrl/pinctrl-ingenic.c 		err = pinctrl_generic_add_group(jzpc->pctl, group->name,
jzpc             2114 drivers/pinctrl/pinctrl-ingenic.c 		err = pinmux_generic_add_function(jzpc->pctl, func->name,
jzpc             2124 drivers/pinctrl/pinctrl-ingenic.c 	dev_set_drvdata(dev, jzpc->map);
jzpc             2128 drivers/pinctrl/pinctrl-ingenic.c 			err = ingenic_gpio_probe(jzpc, node);