Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * linux/arch/arm/mach-pxa/mxm8x10.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * Support for the Embedian MXM-8x10 Computer on Module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  * Copyright (C) 2006 Marvell International Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  * Copyright (C) 2009 Embedian Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  * Copyright (C) 2009 TMT Services & Supplies (Pty) Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)  * 2007-09-04: eric miao <eric.y.miao@gmail.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  *             rewrite to align with latest kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  * 2010-01-09: Edwin Peer <epeer@tmtservices.co.za>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * 	       Hennie van der Merwe <hvdmerwe@tmtservices.co.za>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  *             rework for upstream merge
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #include <linux/serial_8250.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #include <linux/dm9000.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #include <linux/gpio/machine.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #include <linux/platform_data/i2c-pxa.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #include <linux/platform_data/mtd-nand-pxa3xx.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #include <linux/platform_data/video-pxafb.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #include <linux/platform_data/mmc-pxamci.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #include <linux/platform_data/usb-ohci-pxa27x.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #include "pxa320.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #include "mxm8x10.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) #include "devices.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) #include "generic.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) /* GPIO pin definition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) External device stuff   - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) ---------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) GPIO0   -   DREQ    (External DMA Request)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) GPIO3   -   nGCS2   (External Chip Select) Where is nGCS0; nGCS1; nGCS4; nGCS5 ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) GPIO4   -   nGCS3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) GPIO15  -   EXT_GPIO1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) GPIO16  -   EXT_GPIO2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) GPIO17  -   EXT_GPIO3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) GPIO24  -   EXT_GPIO4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) GPIO25  -   EXT_GPIO5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) GPIO26  -   EXT_GPIO6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) GPIO27  -   EXT_GPIO7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) GPIO28  -   EXT_GPIO8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) GPIO29  -   EXT_GPIO9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) GPIO30  -   EXT_GPIO10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) GPIO31  -   EXT_GPIO11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) GPIO57  -   EXT_GPIO12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) GPIO74  -   EXT_IRQ1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) GPIO75  -   EXT_IRQ2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) GPIO76  -   EXT_IRQ3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) GPIO77  -   EXT_IRQ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) GPIO78  -   EXT_IRQ5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) GPIO79  -   EXT_IRQ6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) GPIO80  -   EXT_IRQ7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) GPIO81  -   EXT_IRQ8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) GPIO87  -   VCCIO_PWREN (External Device PWREN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) Dallas 1-Wire   - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) -------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) GPIO0_2 -   DS - 1Wire
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) Ethernet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) GPIO1   -   DM9000 PWR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) GPIO9   -   DM9K_nIRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) GPIO36  -   DM9K_RESET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) Keypad  - Leave unconfigured by for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) ------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) GPIO1_2 -   KP_DKIN0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) GPIO5_2 -   KP_MKOUT7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) GPIO82  -   KP_DKIN1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) GPIO85  -   KP_DKIN2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) GPIO86  -   KP_DKIN3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) GPIO113 -   KP_MKIN0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) GPIO114 -   KP_MKIN1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) GPIO115 -   KP_MKIN2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) GPIO116 -   KP_MKIN3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) GPIO117 -   KP_MKIN4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) GPIO118 -   KP_MKIN5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) GPIO119 -   KP_MKIN6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) GPIO120 -   KP_MKIN7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) GPIO121 -   KP_MKOUT0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) GPIO122 -   KP_MKOUT1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) GPIO122 -   KP_MKOUT2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) GPIO123 -   KP_MKOUT3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) GPIO124 -   KP_MKOUT4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) GPIO125 -   KP_MKOUT5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) GPIO127 -   KP_MKOUT6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) Data Bus    - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) GPIO2   -   nWait (Data Bus)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) USB Device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) ----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) GPIO4_2 -   USBD_PULLUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) GPIO10  -   UTM_CLK (USB Device UTM Clk)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) GPIO49  -   USB 2.0 Device UTM_DATA0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) GPIO50  -   USB 2.0 Device UTM_DATA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) GPIO51  -   USB 2.0 Device UTM_DATA2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) GPIO52  -   USB 2.0 Device UTM_DATA3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) GPIO53  -   USB 2.0 Device UTM_DATA4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) GPIO54  -   USB 2.0 Device UTM_DATA5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) GPIO55  -   USB 2.0 Device UTM_DATA6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) GPIO56  -   USB 2.0 Device UTM_DATA7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) GPIO58  -   UTM_RXVALID (USB 2.0 Device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) GPIO59  -   UTM_RXACTIVE (USB 2.0 Device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) GPIO60  -   UTM_RXERROR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) GPIO61  -   UTM_OPMODE0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) GPIO62  -   UTM_OPMODE1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) GPIO71  -   USBD_INT    (USB Device?)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) GPIO73  -   UTM_TXREADY (USB 2.0 Device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) GPIO83  -   UTM_TXVALID (USB 2.0 Device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) GPIO98  -   UTM_RESET   (USB 2.0 device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) GPIO99  -   UTM_XCVR_SELECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) GPIO100 -   UTM_TERM_SELECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) GPIO101 -   UTM_SUSPENDM_X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) GPIO102 -   UTM_LINESTATE0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) GPIO103 -   UTM_LINESTATE1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) Card-Bus Interface  - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) GPIO5   -   nPIOR (I/O space output enable)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) GPIO6   -   nPIOW (I/O space write enable)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) GPIO7   -   nIOS16 (Input from I/O space telling size of data bus)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) GPIO8   -   nPWAIT (Input for inserting wait states)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) LCD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) GPIO6_2     -   LDD0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) GPIO7_2     -   LDD1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) GPIO8_2     -   LDD2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) GPIO9_2     -   LDD3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) GPIO11_2    -   LDD5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) GPIO12_2    -   LDD6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) GPIO13_2    -   LDD7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) GPIO14_2    -   VSYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) GPIO15_2    -   HSYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) GPIO16_2    -   VCLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) GPIO17_2    -   HCLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) GPIO18_2    -   VDEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) GPIO63      -   LDD8    (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) GPIO64      -   LDD9    (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) GPIO65      -   LDD10   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) GPIO66      -   LDD11   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) GPIO67      -   LDD12   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) GPIO68      -   LDD13   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) GPIO69      -   LDD14   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) GPIO70      -   LDD15   (CPU LCD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) GPIO88      -   VCCLCD_PWREN (LCD Panel PWREN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) GPIO97      -   BACKLIGHT_EN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) GPIO104     -   LCD_PWREN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) PWM   - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) GPIO11  -   PWM0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) GPIO12  -   PWM1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) GPIO13  -   PWM2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) GPIO14  -   PWM3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) SD-CARD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) GPIO18  -   SDDATA0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) GPIO19  -   SDDATA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) GPIO20  -   SDDATA2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) GPIO21  -   SDDATA3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) GPIO22  -   SDCLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) GPIO23  -   SDCMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) GPIO72  -   SD_WP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) GPIO84  -   SD_nIRQ_CD  (SD-Card)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) GPIO32  -   I2CSCL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) GPIO33  -   I2CSDA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) AC97
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) GPIO35  -   AC97_SDATA_IN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) GPIO37  -   AC97_SDATA_OUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) GPIO38  -   AC97_SYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) GPIO39  -   AC97_BITCLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) GPIO40  -   AC97_nRESET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) UART1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) GPIO41  -   UART_RXD1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) GPIO42  -   UART_TXD1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) GPIO43  -   UART_CTS1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) GPIO44  -   UART_DCD1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) GPIO45  -   UART_DSR1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) GPIO46  -   UART_nRI1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) GPIO47  -   UART_DTR1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) GPIO48  -   UART_RTS1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) UART2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) GPIO109 -   RTS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) GPIO110 -   RXD2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) GPIO111 -   TXD2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) GPIO112 -   nCTS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) UART3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) GPIO105 -   nCTS3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) GPIO106 -   nRTS3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) GPIO107 -   TXD3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) GPIO108 -   RXD3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) SSP3    - Leave unconfigured for now...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) GPIO89  -   SSP3_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) GPIO90  -   SSP3_SFRM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) GPIO91  -   SSP3_TXD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) GPIO92  -   SSP3_RXD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) SSP4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) GPIO93  -   SSP4_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) GPIO94  -   SSP4_SFRM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) GPIO95  -   SSP4_TXD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) GPIO96  -   SSP4_RXD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) static mfp_cfg_t mfp_cfg[] __initdata = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	/* USB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	GPIO10_UTM_CLK,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 	GPIO49_U2D_PHYDATA_0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 	GPIO50_U2D_PHYDATA_1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	GPIO51_U2D_PHYDATA_2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	GPIO52_U2D_PHYDATA_3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	GPIO53_U2D_PHYDATA_4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	GPIO54_U2D_PHYDATA_5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 	GPIO55_U2D_PHYDATA_6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	GPIO56_U2D_PHYDATA_7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	GPIO58_UTM_RXVALID,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	GPIO59_UTM_RXACTIVE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 	GPIO60_U2D_RXERROR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	GPIO61_U2D_OPMODE0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	GPIO62_U2D_OPMODE1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	GPIO71_GPIO, /* USBD_INT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 	GPIO73_UTM_TXREADY,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	GPIO83_U2D_TXVALID,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	GPIO98_U2D_RESET,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	GPIO99_U2D_XCVR_SEL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	GPIO100_U2D_TERM_SEL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 	GPIO101_U2D_SUSPEND,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 	GPIO102_UTM_LINESTATE_0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 	GPIO103_UTM_LINESTATE_1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	GPIO4_2_GPIO | MFP_PULL_HIGH, /* UTM_PULLUP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	/* DM9000 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 	GPIO1_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 	GPIO9_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 	GPIO36_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	/* AC97 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	GPIO35_AC97_SDATA_IN_0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 	GPIO37_AC97_SDATA_OUT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 	GPIO38_AC97_SYNC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 	GPIO39_AC97_BITCLK,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 	GPIO40_AC97_nACRESET,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 	/* UARTS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 	GPIO41_UART1_RXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 	GPIO42_UART1_TXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 	GPIO43_UART1_CTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 	GPIO44_UART1_DCD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 	GPIO45_UART1_DSR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	GPIO46_UART1_RI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 	GPIO47_UART1_DTR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 	GPIO48_UART1_RTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 	GPIO109_UART2_RTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 	GPIO110_UART2_RXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 	GPIO111_UART2_TXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 	GPIO112_UART2_CTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 	GPIO105_UART3_CTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 	GPIO106_UART3_RTS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	GPIO107_UART3_TXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 	GPIO108_UART3_RXD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 	GPIO78_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 	GPIO79_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 	GPIO80_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 	GPIO81_GPIO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 	/* I2C */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 	GPIO32_I2C_SCL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 	GPIO33_I2C_SDA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 	/* MMC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 	GPIO18_MMC1_DAT0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 	GPIO19_MMC1_DAT1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	GPIO20_MMC1_DAT2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 	GPIO21_MMC1_DAT3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 	GPIO22_MMC1_CLK,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 	GPIO23_MMC1_CMD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 	GPIO72_GPIO | MFP_PULL_HIGH, /* Card Detect */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 	GPIO84_GPIO | MFP_PULL_LOW, /* Write Protect */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 	/* IRQ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 	GPIO74_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 	GPIO75_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 	GPIO76_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	GPIO77_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ4 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 	GPIO78_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ5 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 	GPIO79_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ6 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 	GPIO80_GPIO | MFP_LPM_EDGE_RISE, /* EXT_IRQ7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 	GPIO81_GPIO | MFP_LPM_EDGE_RISE  /* EXT_IRQ8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) /* MMC/MCI Support */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) #if defined(CONFIG_MMC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) static struct pxamci_platform_data mxm_8x10_mci_platform_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 	.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 	.detect_delay_ms = 10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) static struct gpiod_lookup_table mxm_8x10_mci_gpio_table = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 	.dev_id = "pxa2xx-mci.0",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 	.table = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 		/* Card detect on GPIO 72 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 		GPIO_LOOKUP("gpio-pxa", MXM_8X10_SD_nCD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 			    "cd", GPIO_ACTIVE_LOW),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 		/* Write protect on GPIO 84 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 		GPIO_LOOKUP("gpio-pxa", MXM_8X10_SD_WP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 			    "wp", GPIO_ACTIVE_LOW),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 		{ },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) void __init mxm_8x10_mmc_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 	gpiod_add_lookup_table(&mxm_8x10_mci_gpio_table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 	pxa_set_mci_info(&mxm_8x10_mci_platform_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) /* USB Open Host Controller Interface */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) static struct pxaohci_platform_data mxm_8x10_ohci_platform_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	.port_mode = PMM_NPS_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	.flags = ENABLE_PORT_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) void __init mxm_8x10_usb_host_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 	pxa_set_ohci_info(&mxm_8x10_ohci_platform_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) /* AC97 Sound Support */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) static struct platform_device mxm_8x10_ac97_device = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 	.name = "pxa2xx-ac97"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) void __init mxm_8x10_ac97_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 	platform_device_register(&mxm_8x10_ac97_device);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) /* NAND flash Support */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) #if IS_ENABLED(CONFIG_MTD_NAND_MARVELL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) #define NAND_BLOCK_SIZE SZ_128K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) #define NB(x)           (NAND_BLOCK_SIZE * (x))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) static struct mtd_partition mxm_8x10_nand_partitions[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	[0] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	       .name = "boot",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 	       .size = NB(0x002),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 	       .offset = NB(0x000),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 	       .mask_flags = MTD_WRITEABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 	[1] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 	       .name = "kernel",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	       .size = NB(0x010),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 	       .offset = NB(0x002),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	       .mask_flags = MTD_WRITEABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 	[2] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 	       .name = "root",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 	       .size = NB(0x36c),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 	       .offset = NB(0x012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	[3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 	       .name = "bbt",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) 	       .size = NB(0x082),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 	       .offset = NB(0x37e),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 	       .mask_flags = MTD_WRITEABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) static struct pxa3xx_nand_platform_data mxm_8x10_nand_info = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 	.keep_config	= 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	.parts		= mxm_8x10_nand_partitions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	.nr_parts	= ARRAY_SIZE(mxm_8x10_nand_partitions)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) static void __init mxm_8x10_nand_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 	pxa3xx_set_nand_info(&mxm_8x10_nand_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) static inline void mxm_8x10_nand_init(void) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) #endif /* IS_ENABLED(CONFIG_MTD_NAND_MARVELL) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) /* Ethernet support: Davicom DM9000 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) static struct resource dm9k_resources[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 	[0] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 	       .start = MXM_8X10_ETH_PHYS + 0x300,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	       .end = MXM_8X10_ETH_PHYS + 0x300,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	       .flags = IORESOURCE_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	[1] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	       .start = MXM_8X10_ETH_PHYS + 0x308,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	       .end = MXM_8X10_ETH_PHYS + 0x308,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	       .flags = IORESOURCE_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 	[2] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 	       .start = PXA_GPIO_TO_IRQ(mfp_to_gpio(MFP_PIN_GPIO9)),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 	       .end = PXA_GPIO_TO_IRQ(mfp_to_gpio(MFP_PIN_GPIO9)),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 	       .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) static struct dm9000_plat_data dm9k_plat_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 	.flags = DM9000_PLATF_16BITONLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) static struct platform_device dm9k_device = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	.name = "dm9000",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 	.id = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 	.num_resources = ARRAY_SIZE(dm9k_resources),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 	.resource = dm9k_resources,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 	.dev = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 		.platform_data = &dm9k_plat_data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) static void __init mxm_8x10_ethernet_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 	platform_device_register(&dm9k_device);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) /* PXA UARTs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) static void __init mxm_8x10_uarts_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 	pxa_set_ffuart_info(NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 	pxa_set_btuart_info(NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	pxa_set_stuart_info(NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) /* I2C and Real Time Clock */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) static struct i2c_board_info __initdata mxm_8x10_i2c_devices[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 		I2C_BOARD_INFO("ds1337", 0x68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) static void __init mxm_8x10_i2c_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 	i2c_register_board_info(0, mxm_8x10_i2c_devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 				ARRAY_SIZE(mxm_8x10_i2c_devices));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 	pxa_set_i2c_info(NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) void __init mxm_8x10_barebones_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 	pxa3xx_mfp_config(ARRAY_AND_SIZE(mfp_cfg));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 	mxm_8x10_uarts_init();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 	mxm_8x10_nand_init();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 	mxm_8x10_i2c_init();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 	mxm_8x10_ethernet_init();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) }