Changeset 33502


Ignore:
Timestamp:
2012-09-21T07:40:04+02:00 (5 years ago)
Author:
kaloz
Message:

[cns3xxx]: move gpio stuff into the right file

Location:
trunk/target/linux/cns3xxx/patches-3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/cns3xxx/patches-3.3/104-cns3xxx_gpio.patch

    r33486 r33502  
    106106 void cns3xxx_power_off(void); 
    107107 void cns3xxx_restart(char, const char *); 
     108--- a/arch/arm/Kconfig 
     109+++ b/arch/arm/Kconfig 
     110@@ -366,6 +366,7 @@ config ARCH_CLPS711X 
     111 config ARCH_CNS3XXX 
     112        bool "Cavium Networks CNS3XXX family" 
     113        select CPU_V6K 
     114+       select ARCH_WANT_OPTIONAL_GPIOLIB 
     115        select GENERIC_CLOCKEVENTS 
     116        select ARM_GIC 
     117        select CLKDEV_LOOKUP 
     118--- /dev/null 
     119+++ b/arch/arm/mach-cns3xxx/include/mach/gpio.h 
     120@@ -0,0 +1,98 @@ 
     121+/* 
     122+ * arch/arm/mach-cns3xxx/include/mach/gpio.h 
     123+ * 
     124+ * CNS3xxx GPIO wrappers for arch-neutral GPIO calls 
     125+ * 
     126+ * Copyright 2011 Gateworks Corporation 
     127+ *               Chris Lang <clang@gateworks.com> 
     128+ * 
     129+ * Based on IXP implementation by Milan Svoboda <msvoboda@ra.rockwell.com> 
     130+ * Based on PXA implementation by Philipp Zabel <philipp.zabel@gmail.com> 
     131+ * 
     132+ * This program is free software; you can redistribute it and/or modify 
     133+ * it under the terms of the GNU General Public License as published by 
     134+ * the Free Software Foundation; either version 2 of the License, or 
     135+ * (at your option) any later version. 
     136+ * 
     137+ * This program is distributed in the hope that it will be useful, 
     138+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
     139+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     140+ * GNU General Public License for more details. 
     141+ * 
     142+ * You should have received a copy of the GNU General Public License 
     143+ * along with this program; if not, write to the Free Software 
     144+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     145+ * 
     146+ */ 
     147+ 
     148+#ifndef __ASM_ARCH_CNS3XXX_GPIO_H 
     149+#define __ASM_ARCH_CNS3XXX_GPIO_H 
     150+ 
     151+#include <linux/kernel.h> 
     152+#include <linux/io.h> 
     153+#include <mach/platform.h> 
     154+#include <asm-generic/gpio.h>                  /* cansleep wrappers */ 
     155+ 
     156+#define NR_BUILTIN_GPIO 64 
     157+ 
     158+#define CNS3XXX_GPIO_IN    0x0 
     159+#define CNS3XXX_GPIO_OUT   0x1 
     160+ 
     161+#define CNS3XXX_GPIO_LO   0 
     162+#define CNS3XXX_GPIO_HI   1 
     163+ 
     164+#define CNS3XXX_GPIO_OUTPUT         0x00 
     165+#define CNS3XXX_GPIO_INPUT          0x04 
     166+#define CNS3XXX_GPIO_DIR            0x08 
     167+#define CNS3XXX_GPIO_SET            0x10 
     168+#define CNS3XXX_GPIO_CLEAR          0x14 
     169+ 
     170+static inline void gpio_line_get(u8 line, int *value) 
     171+{ 
     172+       if (line < 32) 
     173+               *value = ((__raw_readl(CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_INPUT) >> line) & 0x1); 
     174+       else 
     175+               *value = ((__raw_readl(CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_INPUT) >> (line - 32)) & 0x1); 
     176+} 
     177+ 
     178+static inline void gpio_line_set(u8 line, int value) 
     179+{ 
     180+       if (line < 32) { 
     181+               if (value) 
     182+                       __raw_writel((1 << line), CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_SET); 
     183+               else 
     184+                       __raw_writel((1 << line), CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_CLEAR); 
     185+       } else { 
     186+               if (value) 
     187+                       __raw_writel((1 << line), CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_SET); 
     188+               else 
     189+                       __raw_writel((1 << line), CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_CLEAR); 
     190+       } 
     191+} 
     192+ 
     193+static inline int gpio_get_value(unsigned gpio) 
     194+{ 
     195+       if (gpio < NR_BUILTIN_GPIO) 
     196+       { 
     197+               int value; 
     198+               gpio_line_get(gpio, &value); 
     199+               return value; 
     200+       } 
     201+       else 
     202+               return __gpio_get_value(gpio); 
     203+} 
     204+ 
     205+static inline void gpio_set_value(unsigned gpio, int value) 
     206+{ 
     207+       if (gpio < NR_BUILTIN_GPIO) 
     208+               gpio_line_set(gpio, value); 
     209+       else 
     210+               __gpio_set_value(gpio, value); 
     211+} 
     212+ 
     213+#define gpio_cansleep __gpio_cansleep 
     214+ 
     215+extern int gpio_to_irq(int gpio); 
     216+extern int irq_to_gpio(int gpio); 
     217+ 
     218+#endif 
  • trunk/target/linux/cns3xxx/patches-3.3/300-laguna_support.patch

    r33486 r33502  
    784784+ 
    785785 endmenu 
    786 --- a/arch/arm/Kconfig 
    787 +++ b/arch/arm/Kconfig 
    788 @@ -366,6 +366,7 @@ config ARCH_CLPS711X 
    789  config ARCH_CNS3XXX 
    790         bool "Cavium Networks CNS3XXX family" 
    791         select CPU_V6K 
    792 +       select ARCH_WANT_OPTIONAL_GPIOLIB 
    793         select GENERIC_CLOCKEVENTS 
    794         select ARM_GIC 
    795         select CLKDEV_LOOKUP 
    796 --- /dev/null 
    797 +++ b/arch/arm/mach-cns3xxx/include/mach/gpio.h 
    798 @@ -0,0 +1,98 @@ 
    799 +/* 
    800 + * arch/arm/mach-cns3xxx/include/mach/gpio.h 
    801 + * 
    802 + * CNS3xxx GPIO wrappers for arch-neutral GPIO calls 
    803 + * 
    804 + * Copyright 2011 Gateworks Corporation 
    805 + *               Chris Lang <clang@gateworks.com> 
    806 + * 
    807 + * Based on IXP implementation by Milan Svoboda <msvoboda@ra.rockwell.com> 
    808 + * Based on PXA implementation by Philipp Zabel <philipp.zabel@gmail.com> 
    809 + * 
    810 + * This program is free software; you can redistribute it and/or modify 
    811 + * it under the terms of the GNU General Public License as published by 
    812 + * the Free Software Foundation; either version 2 of the License, or 
    813 + * (at your option) any later version. 
    814 + * 
    815 + * This program is distributed in the hope that it will be useful, 
    816 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    817 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
    818 + * GNU General Public License for more details. 
    819 + * 
    820 + * You should have received a copy of the GNU General Public License 
    821 + * along with this program; if not, write to the Free Software 
    822 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
    823 + * 
    824 + */ 
    825 + 
    826 +#ifndef __ASM_ARCH_CNS3XXX_GPIO_H 
    827 +#define __ASM_ARCH_CNS3XXX_GPIO_H 
    828 + 
    829 +#include <linux/kernel.h> 
    830 +#include <linux/io.h> 
    831 +#include <mach/platform.h> 
    832 +#include <asm-generic/gpio.h>                  /* cansleep wrappers */ 
    833 + 
    834 +#define NR_BUILTIN_GPIO 64 
    835 + 
    836 +#define CNS3XXX_GPIO_IN    0x0 
    837 +#define CNS3XXX_GPIO_OUT   0x1 
    838 + 
    839 +#define CNS3XXX_GPIO_LO   0 
    840 +#define CNS3XXX_GPIO_HI   1 
    841 + 
    842 +#define CNS3XXX_GPIO_OUTPUT         0x00 
    843 +#define CNS3XXX_GPIO_INPUT          0x04 
    844 +#define CNS3XXX_GPIO_DIR            0x08 
    845 +#define CNS3XXX_GPIO_SET            0x10 
    846 +#define CNS3XXX_GPIO_CLEAR          0x14 
    847 + 
    848 +static inline void gpio_line_get(u8 line, int *value) 
    849 +{ 
    850 +       if (line < 32) 
    851 +               *value = ((__raw_readl(CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_INPUT) >> line) & 0x1); 
    852 +       else 
    853 +               *value = ((__raw_readl(CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_INPUT) >> (line - 32)) & 0x1); 
    854 +} 
    855 + 
    856 +static inline void gpio_line_set(u8 line, int value) 
    857 +{ 
    858 +       if (line < 32) { 
    859 +               if (value) 
    860 +                       __raw_writel((1 << line), CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_SET); 
    861 +               else 
    862 +                       __raw_writel((1 << line), CNS3XXX_GPIOA_BASE_VIRT + CNS3XXX_GPIO_CLEAR); 
    863 +       } else { 
    864 +               if (value) 
    865 +                       __raw_writel((1 << line), CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_SET); 
    866 +               else 
    867 +                       __raw_writel((1 << line), CNS3XXX_GPIOB_BASE_VIRT + CNS3XXX_GPIO_CLEAR); 
    868 +       } 
    869 +} 
    870 + 
    871 +static inline int gpio_get_value(unsigned gpio) 
    872 +{ 
    873 +       if (gpio < NR_BUILTIN_GPIO) 
    874 +       { 
    875 +               int value; 
    876 +               gpio_line_get(gpio, &value); 
    877 +               return value; 
    878 +       } 
    879 +       else 
    880 +               return __gpio_get_value(gpio); 
    881 +} 
    882 + 
    883 +static inline void gpio_set_value(unsigned gpio, int value) 
    884 +{ 
    885 +       if (gpio < NR_BUILTIN_GPIO) 
    886 +               gpio_line_set(gpio, value); 
    887 +       else 
    888 +               __gpio_set_value(gpio, value); 
    889 +} 
    890 + 
    891 +#define gpio_cansleep __gpio_cansleep 
    892 + 
    893 +extern int gpio_to_irq(int gpio); 
    894 +extern int irq_to_gpio(int gpio); 
    895 + 
    896 +#endif 
    897786--- a/arch/arm/mach-cns3xxx/Makefile 
    898787+++ b/arch/arm/mach-cns3xxx/Makefile 
Note: See TracChangeset for help on using the changeset viewer.