| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Marvell Armada CP110 pinctrl driver based on mvebu pinctrl core |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2017 Marvell |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Hanna Hawa <hannah@marvell.com> |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 10 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 11 | | - * (at your option) any later version. |
|---|
| 12 | 8 | */ |
|---|
| 13 | 9 | |
|---|
| 14 | 10 | #include <linux/err.h> |
|---|
| .. | .. |
|---|
| 36 | 32 | V_ARMADA_7K = BIT(0), |
|---|
| 37 | 33 | V_ARMADA_8K_CPM = BIT(1), |
|---|
| 38 | 34 | V_ARMADA_8K_CPS = BIT(2), |
|---|
| 35 | + V_CP115_STANDALONE = BIT(3), |
|---|
| 39 | 36 | V_ARMADA_7K_8K_CPM = (V_ARMADA_7K | V_ARMADA_8K_CPM), |
|---|
| 40 | 37 | V_ARMADA_7K_8K_CPS = (V_ARMADA_7K | V_ARMADA_8K_CPS), |
|---|
| 41 | 38 | }; |
|---|
| .. | .. |
|---|
| 601 | 598 | MPP_FUNCTION(7, "uart0", "rxd"), |
|---|
| 602 | 599 | MPP_FUNCTION(8, "uart2", "rxd"), |
|---|
| 603 | 600 | MPP_FUNCTION(9, "sata0", "present_act"), |
|---|
| 604 | | - MPP_FUNCTION(10, "ge", "mdc")), |
|---|
| 601 | + MPP_FUNCTION(10, "ge", "mdc"), |
|---|
| 602 | + MPP_FUNCTION(14, "sdio", "ds")), |
|---|
| 605 | 603 | }; |
|---|
| 606 | 604 | |
|---|
| 607 | 605 | static const struct of_device_id armada_cp110_pinctrl_of_match[] = { |
|---|
| .. | .. |
|---|
| 616 | 614 | { |
|---|
| 617 | 615 | .compatible = "marvell,armada-8k-cps-pinctrl", |
|---|
| 618 | 616 | .data = (void *) V_ARMADA_8K_CPS, |
|---|
| 617 | + }, |
|---|
| 618 | + { |
|---|
| 619 | + .compatible = "marvell,cp115-standalone-pinctrl", |
|---|
| 620 | + .data = (void *) V_CP115_STANDALONE, |
|---|
| 619 | 621 | }, |
|---|
| 620 | 622 | { }, |
|---|
| 621 | 623 | }; |
|---|
| .. | .. |
|---|
| 658 | 660 | |
|---|
| 659 | 661 | switch (i) { |
|---|
| 660 | 662 | case 0 ... 31: |
|---|
| 661 | | - mvebu_pinctrl_assign_variant(m, V_ARMADA_7K_8K_CPS); |
|---|
| 663 | + mvebu_pinctrl_assign_variant(m, (V_ARMADA_7K_8K_CPS | |
|---|
| 664 | + V_CP115_STANDALONE)); |
|---|
| 662 | 665 | break; |
|---|
| 663 | 666 | case 32 ... 38: |
|---|
| 664 | | - mvebu_pinctrl_assign_variant(m, V_ARMADA_7K_8K_CPM); |
|---|
| 667 | + mvebu_pinctrl_assign_variant(m, (V_ARMADA_7K_8K_CPM | |
|---|
| 668 | + V_CP115_STANDALONE)); |
|---|
| 665 | 669 | break; |
|---|
| 666 | 670 | case 39 ... 43: |
|---|
| 667 | | - mvebu_pinctrl_assign_variant(m, V_ARMADA_8K_CPM); |
|---|
| 671 | + mvebu_pinctrl_assign_variant(m, (V_ARMADA_8K_CPM | |
|---|
| 672 | + V_CP115_STANDALONE)); |
|---|
| 668 | 673 | break; |
|---|
| 669 | 674 | case 44 ... 62: |
|---|
| 670 | | - mvebu_pinctrl_assign_variant(m, V_ARMADA_7K_8K_CPM); |
|---|
| 675 | + mvebu_pinctrl_assign_variant(m, (V_ARMADA_7K_8K_CPM | |
|---|
| 676 | + V_CP115_STANDALONE)); |
|---|
| 671 | 677 | break; |
|---|
| 672 | 678 | } |
|---|
| 673 | 679 | } |
|---|