removed core/kernel26-olinuxino

This commit is contained in:
Kevin Mihelich 2013-07-18 00:47:39 +00:00
parent 8142fd1f53
commit 9a72f6947a
8 changed files with 0 additions and 3507 deletions

View file

@ -1,31 +0,0 @@
From 4a6353dad68074bb7ae08817cd7beb5cd13f2359 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Mon, 18 Jun 2012 12:02:56 -0300
Subject: [PATCH] NFS: Fix nfsroot support
The NFS support to use alternative ports breaks building of regular
NFS root support as the API has been change in an incompatible way.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
fs/nfs/nfsroot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
index df101d9..e1578e1 100644
--- a/fs/nfs/nfsroot.c
+++ b/fs/nfs/nfsroot.c
@@ -506,7 +506,7 @@ static int __init root_nfs_get_handle(void)
if (!request.fh)
goto out;
set_sockaddr(&sin, servaddr, htons(mount_port));
- status = nfs_mount(&request);
+ status = nfs_mount(&request, NFS_MNT_PROGRAM);
if (status < 0)
printk(KERN_ERR "Root-NFS: Server returned error %d "
"while mounting %s\n", status, nfs_export_path);
--
1.7.10

View file

@ -1,241 +0,0 @@
From e85103e27b7591337d3240cf0ab2670d0ab73d52 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Wed, 7 Jan 2009 00:59:33 -0500
Subject: [PATCH] NFS: allow nfs root mount to use alternate rpc ports
Allow an nfs root mount to use alternate RPC ports for mountd and nfsd.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
[forward port to 2.6.33+]
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
fs/nfs/client.c | 10 ++++++++++
fs/nfs/internal.h | 4 +++-
fs/nfs/mount_clnt.c | 3 ++-
fs/nfs/super.c | 33 ++++++++++++++++++++++++++++++++-
include/linux/nfs_fs_sb.h | 1 +
include/linux/nfs_mount.h | 4 +++-
6 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index d25b525..b706c02 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -105,6 +105,7 @@ struct nfs_client_initdata {
const struct nfs_rpc_ops *rpc_ops;
int proto;
u32 minorversion;
+ int nfs_prog;
};
/*
@@ -123,6 +124,7 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_
goto error_0;
clp->rpc_ops = cl_init->rpc_ops;
+ clp->nfs_prog = cl_init->nfs_prog;
atomic_set(&clp->cl_count, 1);
clp->cl_cons_state = NFS_CS_INITING;
@@ -448,6 +450,9 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat
/* Match nfsv4 minorversion */
if (clp->cl_minorversion != data->minorversion)
continue;
+ if (clp->nfs_prog != data->nfs_prog)
+ continue;
+
/* Match the full socket address */
if (!nfs_sockaddr_cmp(sap, clap))
continue;
@@ -618,6 +623,10 @@ static int nfs_create_rpc_client(struct nfs_client *clp,
if (!IS_ERR(clp->cl_rpcclient))
return 0;
+ if (clp->nfs_prog)
+ nfs_program.number = clp->nfs_prog;
+ else
+ nfs_program.number = NFS_PROGRAM;
clnt = rpc_create(&args);
if (IS_ERR(clnt)) {
dprintk("%s: cannot create RPC client. Error = %ld\n",
@@ -786,6 +795,7 @@ static int nfs_init_server(struct nfs_server *server,
.addrlen = data->nfs_server.addrlen,
.rpc_ops = &nfs_v2_clientops,
.proto = data->nfs_server.protocol,
+ .nfs_prog = data->nfs_prog,
};
struct rpc_timeout timeparms;
struct nfs_client *clp;
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index e70f44b..3e2649f 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -71,6 +71,8 @@ struct nfs_parsed_mount_data {
int timeo, retrans;
int acregmin, acregmax,
acdirmin, acdirmax;
+ int nfs_prog;
+ int mount_prog;
int namlen;
unsigned int options;
unsigned int bsize;
@@ -116,7 +118,7 @@ struct nfs_mount_request {
rpc_authflavor_t *auth_flavs;
};
-extern int nfs_mount(struct nfs_mount_request *info);
+extern int nfs_mount(struct nfs_mount_request *info, int prog);
extern void nfs_umount(const struct nfs_mount_request *info);
/* client.c */
diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c
index 59047f8..0a2bd63 100644
--- a/fs/nfs/mount_clnt.c
+++ b/fs/nfs/mount_clnt.c
@@ -141,7 +141,7 @@ struct mnt_fhstatus {
*
* Uses default timeout parameters specified by underlying transport.
*/
-int nfs_mount(struct nfs_mount_request *info)
+int nfs_mount(struct nfs_mount_request *info, int m_prog)
{
struct mountres result = {
.fh = info->fh,
@@ -171,6 +171,7 @@ int nfs_mount(struct nfs_mount_request *info)
if (info->noresvport)
args.flags |= RPC_CLNT_CREATE_NONPRIVPORT;
+ mnt_program.number = m_prog;
mnt_clnt = rpc_create(&args);
if (IS_ERR(mnt_clnt))
goto out_clnt_err;
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index f9df16d..0b3bbf8 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -94,6 +94,8 @@ enum {
Opt_mountvers,
Opt_nfsvers,
Opt_minorversion,
+ Opt_mountprog,
+ Opt_nfsprog,
/* Mount options that take string arguments */
Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
@@ -160,6 +162,8 @@ static const match_table_t nfs_mount_option_tokens = {
{ Opt_nfsvers, "nfsvers=%s" },
{ Opt_nfsvers, "vers=%s" },
{ Opt_minorversion, "minorversion=%s" },
+ { Opt_mountprog, "mountprog=%s" },
+ { Opt_nfsprog, "nfsprog=%s" },
{ Opt_sec, "sec=%s" },
{ Opt_proto, "proto=%s" },
@@ -787,6 +791,8 @@ static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(unsigned int ve
data->acregmax = NFS_DEF_ACREGMAX;
data->acdirmin = NFS_DEF_ACDIRMIN;
data->acdirmax = NFS_DEF_ACDIRMAX;
+ data->nfs_prog = NFS_PROGRAM;
+ data->mount_prog = NFS_MNT_PROGRAM;
data->mount_server.port = NFS_UNSPEC_PORT;
data->nfs_server.port = NFS_UNSPEC_PORT;
data->nfs_server.protocol = XPRT_TRANSPORT_TCP;
@@ -1168,6 +1174,26 @@ static int nfs_parse_mount_options(char *raw,
goto out_invalid_value;
mnt->acdirmax = option;
break;
+ case Opt_mountprog:
+ string = match_strdup(args);
+ if (string == NULL)
+ goto out_nomem;
+ rc = strict_strtoul(string, 10, &option);
+ kfree(string);
+ if (rc != 0)
+ goto out_invalid_value;
+ mnt->mount_prog = option;
+ break;
+ case Opt_nfsprog:
+ string = match_strdup(args);
+ if (string == NULL)
+ goto out_nomem;
+ rc = strict_strtoul(string, 10, &option);
+ kfree(string);
+ if (rc != 0)
+ goto out_invalid_value;
+ mnt->nfs_prog = option;
+ break;
case Opt_actimeo:
string = match_strdup(args);
if (string == NULL)
@@ -1566,7 +1592,7 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args,
* Now ask the mount server to map our export path
* to a file handle.
*/
- status = nfs_mount(&request);
+ status = nfs_mount(&request,args->mount_prog);
if (status != 0) {
dfprintk(MOUNT, "NFS: unable to mount server %s, error %d\n",
request.hostname, status);
@@ -1739,6 +1765,7 @@ static int nfs_validate_mount_data(void *options,
{
struct nfs_mount_data *data = (struct nfs_mount_data *)options;
struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address;
+ args->nfs_prog = NFS_PROGRAM;
if (data == NULL)
goto out_no_data;
@@ -1758,6 +1785,8 @@ static int nfs_validate_mount_data(void *options,
goto out_no_sec;
case 5:
memset(data->context, 0, sizeof(data->context));
+ case 7:
+ args->nfs_prog = (data->version >= 7) ? data->nfs_prog : NFS_PROGRAM;
case 6:
if (data->flags & NFS_MOUNT_VER3) {
if (data->root.size > NFS3_FHSIZE || data->root.size == 0)
@@ -2476,6 +2505,8 @@ static int nfs4_validate_mount_data(void *options,
if (data == NULL)
goto out_no_data;
+ args->nfs_prog = NFS_PROGRAM;
+
switch (data->version) {
case 1:
if (data->host_addrlen > sizeof(args->nfs_server.address))
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index d6e10a4..585cba4 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -41,6 +41,7 @@ struct nfs_client {
u32 cl_minorversion;/* NFSv4 minorversion */
struct rpc_cred *cl_machine_cred;
+ int nfs_prog;
#ifdef CONFIG_NFS_V4
u64 cl_clientid; /* constant */
diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h
index 4499016..86beb0c 100644
--- a/include/linux/nfs_mount.h
+++ b/include/linux/nfs_mount.h
@@ -20,7 +20,7 @@
* mount-to-kernel version compatibility. Some of these aren't used yet
* but here they are anyway.
*/
-#define NFS_MOUNT_VERSION 6
+#define NFS_MOUNT_VERSION 7
#define NFS_MAX_CONTEXT_LEN 256
struct nfs_mount_data {
@@ -43,6 +43,8 @@ struct nfs_mount_data {
struct nfs3_fh root; /* 4 */
int pseudoflavor; /* 5 */
char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */
+ int nfs_prog; /* 7 */
+ int mount_prog; /* 7 */
};
/* bits in the flags field visible to user space */
--
1.7.9.1

View file

@ -1,265 +0,0 @@
# Contributor: Kiril Zyapkov <kiril.zyapkov@gmail.com>
# iMX233-OLinuXino-Maxi kernel for archlinuxarm
# basically replicates the oe-recipe
# see https://github.com/OSSystems/meta-fsl-arm-extra.git
# vim:set ts=2 sw=2 et:
buildarch=2
pkgbase="kernel26-olinuxino"
pkgname=('kernel26-olinuxino' 'kernel26-headers-olinuxino')
_kernelname=${pkgname#kernel26}
_basekernel=2.6
pkgver=${_basekernel}.35.3
pkgrel=9
makedepends=('xmlto' 'docbook-xsl' 'make' 'git' 'elftosb' 'imx-bootlets-olinuxino' 'imx-bootlets-olinuxino-ntsc')
optdepends=()
options=('!strip' '!buildflags' '!makeflags')
arch=('arm')
CARCH=arm
KARCH=arm
LDFLAGS=""
license=('GPL2')
url="https://github.com/Freescale/meta-fsl-arm/"
source=(config
NFS-Fix-nfsroot-support.patch
NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch
mx28-removecpufreq.patch
mxs-duart-use-ttyAMA-for-device-name.patch
imx233-olinuxino.patch)
md5sums=('953ddea92634bb713853f2c1b14ed130'
'e086ab0b162d292549f9bf453e07ad2e'
'ff1281a87da6f8093992ad70d23e71d2'
'c2d9dba73587fd00d990a2521428d67b'
'302ad0fe4e990c789793e25ced58f712'
'ba72c5e3ea407e6214e237323d6b467b')
__gitname="linux-2.6-imx"
__gitroot="git://git.freescale.com/imx/${__gitname}.git"
__gitbranch="imx_2.6.35_10.12.01"
__gitcommit="38bf41cc376e24c384934fbeb10770d6712e9143"
build() {
cd "$srcdir"
if [ -d $__gitname ] ; then
msg "Using existing GIT repo clone."
cd ${__gitname} && git checkout ${__gitcommit} -- .
msg "The local files are updated."
else
msg "GIT Checkout of ${__gitroot}"
git clone --depth=1 --branch=${__gitbranch} ${__gitroot} ${__gitname}
cd ${__gitname}
git checkout ${__gitcommit} -- .
fi
msg "Cleaning up the working copy..."
git clean -df
make mrproper
msg "Patching ..."
patch -Np1 -i ../NFS-Fix-nfsroot-support.patch
patch -Np1 -i ../NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch
patch -Np1 -i ../mx28-removecpufreq.patch
patch -Np1 -i ../mxs-duart-use-ttyAMA-for-device-name.patch
patch -Np1 -i ../imx233-olinuxino.patch
sed -i 's|/sbin/depmod|/bin/true|' Makefile
msg "Patching done, building the kernel."
cp ${srcdir}/config .config
make prepare
# set extraversion to pkgrel
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
#make oldconfig # using old config from previous kernel version
# Build!
make ${MAKEFLAGS} zImage modules
}
package_kernel26-olinuxino() {
pkgdesc="The Linux Kernel and modules for iMX233-OLinuXino-Maxi with PAL video output"
depends=('coreutils' 'module-init-tools')
replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
'alsa-driver' 'ieee80211' 'hostap-driver26'
'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
provides=("kernel26=${pkgver}" "linux=${pkgver}")
install=kernel26.install
KARCH=arm
cd ${srcdir}/${__gitname}
# get kernel version
_kernver="$(make kernelrelease)"
# Install zImage, System.map and the config for reference
mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot}
make INSTALL_MOD_PATH="${pkgdir}" modules_install
#cp arch/$KARCH/boot/uImage ${pkgdir}/boot/uImage
cp arch/$KARCH/boot/zImage ${pkgdir}/boot/zImage
ln -sf "${pkgdir}/boot/zImage" .
cp .config ${pkgdir}/boot/config-${_kernver}
cp System.map System.map-${_kernver}
# set correct depmod command for install
sed \
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
-i $startdir/kernel26.install
# Generate an imx233 boot image
msg "Generating PAL sdcard image ..."
ln -sf /opt/imx-bootlets-olinuxino
elftosb -z -c ./imx-bootlets-olinuxino/linux.bd -o ${pkgdir}/boot/oli-${_kernver}-pal.sb
msg "Generating NTSC sdcard image ..."
ln -sf /opt/imx-bootlets-olinuxino-ntsc
elftosb -z -c ./imx-bootlets-olinuxino-ntsc/linux.bd -o ${pkgdir}/boot/oli-${_kernver}-ntsc.sb
# remove build and source links
rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build}
# Now we call depmod...
depmod -b "$pkgdir" -F System.map "$_kernver"
# move module tree /lib -> /usr/lib
mkdir -p "${pkgdir}/usr"
mv "$pkgdir/lib" "$pkgdir/usr"
}
package_kernel26-headers-olinuxino() {
pkgdesc="Header files and scripts for building modules for kernel26 for iMX233-OLinuXino-Maxi"
provides=("kernel26-headers=${pkgver}" "linux-headers=${pkgver}")
KARCH=arm
cd ${srcdir}/${__gitname}
# get kernel version
_kernver="$(make kernelrelease)"
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
cd "${pkgdir}/usr/lib/modules/${_kernver}"
ln -sf ../../../src/linux-${_kernver} build
cd ${srcdir}/${__gitname}
install -D -m644 Makefile \
${pkgdir}/usr/src/linux-${_kernver}/Makefile
install -D -m644 kernel/Makefile \
${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
install -D -m644 .config \
${pkgdir}/usr/src/linux-${_kernver}/.config
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do
cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
done
# copy arch includes for external modules
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH
cp -a arch/$KARCH/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
# install platform- and machine-specific headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-mx23
cp -a arch/$KARCH/mach-mx23/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-mx23/
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-mxs
cp -a arch/$KARCH/plat-mxs/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-mxs/
# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
# fix permissions on scripts dir
chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
# add headers for lirc package
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo; do
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
done
# add docbook makefile
install -D -m644 Documentation/DocBook/Makefile \
${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
# add dm headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
# add inotify.h
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
# add wireless headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
# add dvb headers for external modules
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
# add dvb headers for external modules
#mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
#cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
# add dvb headers
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb
cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends
cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners
cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/
# add xfs and shmem for aufs building
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
# add headers vor virtualbox
cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
# add headers for broadcom wl
cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
# copy in Kconfig files
for i in `find . -name "Kconfig*"`; do
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
done
chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
# remove unneeded architectures
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa,x86}
}
md5sums=('477fe18ac96828b5b7238cc1ee1547e8'
'e086ab0b162d292549f9bf453e07ad2e'
'ff1281a87da6f8093992ad70d23e71d2'
'c2d9dba73587fd00d990a2521428d67b'
'302ad0fe4e990c789793e25ced58f712'
'ba72c5e3ea407e6214e237323d6b467b')

File diff suppressed because it is too large Load diff

View file

@ -1,899 +0,0 @@
From: Otavio Salvador <otavio@ossystems.com.br>
Subject: [PATCH] Include iMX233-OlinuXino support
This patch is based on imx_2.6.35_10.12.01 branch of Freescale GIT
repository and based on Raivis' original patch.
Upstream-Status: Applied
Signed-off-by: Raivis Rengelis <raivis@rrkb.lv>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
arch/arm/mach-mx23/Kconfig | 7 +
arch/arm/mach-mx23/Makefile | 1 +
arch/arm/mach-mx23/device.c | 1 +
arch/arm/mach-mx23/imx233_olinuxino.c | 96 +++++
arch/arm/mach-mx23/imx233_olinuxino.h | 29 ++
arch/arm/mach-mx23/imx233_olinuxino_pins.c | 638 ++++++++++++++++++++++++++++
arch/arm/tools/mach-types | 1 +
drivers/mmc/host/Kconfig | 8 +
drivers/mmc/host/mxs-mmc.c | 4 +
9 files changed, 785 insertions(+)
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino.c
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino.h
create mode 100644 arch/arm/mach-mx23/imx233_olinuxino_pins.c
diff --git a/arch/arm/mach-mx23/Kconfig b/arch/arm/mach-mx23/Kconfig
index 28009b0..0ebaf29 100644
--- a/arch/arm/mach-mx23/Kconfig
+++ b/arch/arm/mach-mx23/Kconfig
@@ -6,6 +6,13 @@ config MACH_MX23EVK
depends on ARCH_MX23
select USB_ARCH_HAS_EHCI
+config MACH_IMX233_OLINUXINO
+ bool "iMX233-OLinuXino low cost board"
+ depends on ARCH_MX23
+ select USB_ARCH_HAS_EHCI
+ select MMC_MXS
+ select MMC_MXS_NODETECT
+
endchoice
diff --git a/arch/arm/mach-mx23/Makefile b/arch/arm/mach-mx23/Makefile
index a5e2781..2a39dac 100644
--- a/arch/arm/mach-mx23/Makefile
+++ b/arch/arm/mach-mx23/Makefile
@@ -5,6 +5,7 @@ obj-y += pinctrl.o clock.o device.o serial.o power.o pm.o sleep.o bus_freq.o
# Board select
obj-$(CONFIG_MACH_MX23EVK) += mx23evk.o mx23evk_pins.o
+obj-$(CONFIG_MACH_IMX233_OLINUXINO) += imx233_olinuxino.o imx233_olinuxino_pins.o
obj-$(CONFIG_GENERIC_GPIO) += gpio.o
obj-$(CONFIG_MXS_RAM_FREQ_SCALING) +=emi.o
obj-$(CONFIG_MXS_UNIQUE_ID_OTP) += otp.o
diff --git a/arch/arm/mach-mx23/device.c b/arch/arm/mach-mx23/device.c
index 8352540..0f5f659 100644
--- a/arch/arm/mach-mx23/device.c
+++ b/arch/arm/mach-mx23/device.c
@@ -45,6 +45,7 @@
#include "device.h"
#include "mx23_pins.h"
#include "mx23evk.h"
+#include "imx233_olinuxino.h"
#include "mach/mx23.h"
#if defined(CONFIG_SERIAL_MXS_DUART) || \
diff --git a/arch/arm/mach-mx23/imx233_olinuxino.c b/arch/arm/mach-mx23/imx233_olinuxino.c
new file mode 100644
index 0000000..e08ccdc
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/clk.h>
+#include <linux/platform_device.h>
+#include <linux/i2c.h>
+#include <linux/spi/spi.h>
+
+#include <asm/setup.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+
+#include <mach/hardware.h>
+#include <mach/device.h>
+#include <mach/pinctrl.h>
+#include <mach/regs-ocotp.h>
+
+#include "device.h"
+#include "imx233_olinuxino.h"
+#include "mx23_pins.h"
+
+static void __init fixup_board(struct machine_desc *desc, struct tag *tags,
+ char **cmdline, struct meminfo *mi)
+{
+ mx23_set_input_clk(24000000, 24000000, 32000, 50000000);
+}
+
+#if defined(CONFIG_SND_MXS_SOC_ADC) || defined(CONFIG_SND_MXS_SOC_ADC_MODULE)
+static void __init imx233_olinuxino_init_adc(void)
+{
+ struct platform_device *pdev;
+ pdev = mxs_get_device("mxs-adc", 0);
+ if (pdev == NULL)
+ return;
+ mxs_add_device(pdev, 3);
+}
+#else
+static void __init imx233_olinuxino_init_adc(void)
+{
+
+}
+#endif
+
+static void __init imx233_olinuxino_device_init(void)
+{
+ imx233_olinuxino_init_adc();
+}
+
+
+static void __init imx233_olinuxino_init_machine(void)
+{
+ mx23_pinctrl_init();
+
+ /* Init iram allocate */
+#ifdef CONFIG_VECTORS_PHY_ADDR
+ /* reserve the first page for irq vectors table*/
+ iram_init(MX23_OCRAM_PHBASE + PAGE_SIZE, MX23_OCRAM_SIZE - PAGE_SIZE);
+#else
+ iram_init(MX23_OCRAM_PHBASE, MX23_OCRAM_SIZE);
+#endif
+
+ mx23_gpio_init();
+ imx233_olinuxino_pins_init();
+ mx23_device_init();
+ imx233_olinuxino_device_init();
+}
+
+MACHINE_START(IMX233_OLINUXINO, "iMX233-OLinuXino low cost board")
+ .phys_io = 0x80000000,
+ .io_pg_offst = ((0xf0000000) >> 18) & 0xfffc,
+ .boot_params = 0x40000100,
+ .fixup = fixup_board,
+ .map_io = mx23_map_io,
+ .init_irq = mx23_irq_init,
+ .init_machine = imx233_olinuxino_init_machine,
+ .timer = &mx23_timer.timer,
+MACHINE_END
diff --git a/arch/arm/mach-mx23/imx233_olinuxino.h b/arch/arm/mach-mx23/imx233_olinuxino.h
new file mode 100644
index 0000000..e16f28e
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __ASM_ARM_MACH_IMX233_OLINUXINO_H
+#define __ASM_ARM_MACH_IMX233_OLINUXINO_H
+
+extern void __init imx233_olinuxino_pins_init(void);
+extern int mxs_mmc_hw_init_mmc0(void);
+extern int mxs_mmc_get_wp_mmc0(void);
+extern void mxs_mmc_hw_release_mmc0(void);
+extern void mxs_mmc_cmd_pullup_mmc0(int enable);
+
+#endif /* __ASM_ARM_MACH_IMX233_OLINUXINO_H */
diff --git a/arch/arm/mach-mx23/imx233_olinuxino_pins.c b/arch/arm/mach-mx23/imx233_olinuxino_pins.c
new file mode 100644
index 0000000..fe4d372
--- /dev/null
+++ b/arch/arm/mach-mx23/imx233_olinuxino_pins.c
@@ -0,0 +1,638 @@
+/*
+ * Copyright (C) 2012 RRKB IK, Raivis Rengelis, raivis@rrkb.lv
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/irq.h>
+#include <linux/gpio.h>
+#include <linux/delay.h>
+
+#include <mach/pinctrl.h>
+
+#include "mx23_pins.h"
+
+static struct pin_desc imx233_olinuxino_fixed_pins[] = {
+ {
+ .name = "DUART.RX",
+ .id = PINID_PWM0,
+ .fun = PIN_FUN3,
+ },
+ {
+ .name = "DUART.TX",
+ .id = PINID_PWM1,
+ .fun = PIN_FUN3,
+ },
+#ifdef CONFIG_MXS_AUART1_DEVICE_ENABLE
+ {
+ .name = "AUART1.RX",
+ .id = PINID_I2C_SDA,
+ .fun = PIN_FUN3,
+ },
+ {
+ .name = "AUART1.TX",
+ .id = PINID_I2C_SCL,
+ .fun = PIN_FUN3,
+ },
+#else
+ {
+ .name = "UEXT.4",
+ .id = PINID_I2C_SDA,
+ .fun = PIN_GPIO,
+ .voltage = PAD_3_3V,
+ .strength = PAD_8MA,
+ .drive = 1,
+ },
+ {
+ .name = "UEXT.3",
+ .id = PINID_I2C_SCL,
+ .fun = PIN_GPIO,
+ .voltage = PAD_3_3V,
+ .strength = PAD_8MA,
+ .drive = 1,
+ },
+#endif
+
+#if defined(CONFIG_I2C_MXS) || \
+ defined(CONFIG_I2C_MXS_MODULE)
+ {
+ .name = "I2C_SCL",
+ .id = PINID_LCD_ENABLE,
+ .fun = PIN_FUN2,
+ .strength = PAD_4MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "I2C_SDA",
+ .id = PINID_LCD_HSYNC,
+ .fun = PIN_FUN2,
+ .strength = PAD_4MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+#else
+ {
+ .name = "UEXT.5",
+ .id = PINID_LCD_ENABLE,
+ .fun = PIN_GPIO,
+ .voltage = PAD_3_3V,
+ .strength = PAD_12MA,
+ .drive = 1,
+ },
+ {
+ .name = "UEXT.6",
+ .id = PINID_LCD_HSYNC,
+ .fun = PIN_GPIO,
+ .voltage = PAD_3_3V,
+ .strength = PAD_12MA,
+ .drive = 1,
+ },
+#endif
+#if defined(CONFIG_FB_MXS) || defined(CONFIG_FB_MXS_MODULE)
+ {
+ .name = "LCD_D00",
+ .id = PINID_LCD_D00,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D01",
+ .id = PINID_LCD_D01,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D02",
+ .id = PINID_LCD_D02,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D03",
+ .id = PINID_LCD_D03,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D04",
+ .id = PINID_LCD_D04,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D05",
+ .id = PINID_LCD_D05,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D06",
+ .id = PINID_LCD_D06,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_D07",
+ .id = PINID_LCD_D07,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_RESET",
+ .id = PINID_LCD_RESET,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_VSYNC",
+ .id = PINID_LCD_VSYNC,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_HSYNC",
+ .id = PINID_LCD_HSYNC,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_ENABLE",
+ .id = PINID_LCD_ENABLE,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "LCD_DOTCLK",
+ .id = PINID_LCD_DOTCK,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+#else
+ {
+ .name = "GPIO.35",
+ .id = PINID_LCD_D00,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.33",
+ .id = PINID_LCD_D01,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.31",
+ .id = PINID_LCD_D02,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.29",
+ .id = PINID_LCD_D03,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.27",
+ .id = PINID_LCD_D04,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.25",
+ .id = PINID_LCD_D05,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.23",
+ .id = PINID_LCD_D06,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.21",
+ .id = PINID_LCD_D07,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.14",
+ .id = PINID_LCD_RESET,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.08",
+ .id = PINID_LCD_VSYNC,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.06",
+ .id = PINID_LCD_DOTCK,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+#endif
+ {
+ .name = "GPIO.30",
+ .id = PINID_GPMI_CE0N,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.28",
+ .id = PINID_GPMI_CE1N,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.26",
+ .id = PINID_GPMI_WPN,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.24",
+ .id = PINID_GPMI_RDN,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "UEXT.9",
+ .id = PINID_GPMI_WRN,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "UEXT.10",
+ .id = PINID_GPMI_RDY0,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "UEXT.8",
+ .id = PINID_GPMI_RDY1,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.04",
+ .id = PINID_GPMI_ALE,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ .output = 1,
+ .data = 1,
+ },
+ {
+ .name = "GPIO.03",
+ .id = PINID_GPMI_CLE,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.05",
+ .id = PINID_GPMI_D07,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.07",
+ .id = PINID_GPMI_D06,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.09",
+ .id = PINID_GPMI_D05,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.11",
+ .id = PINID_GPMI_D04,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.13",
+ .id = PINID_GPMI_D03,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.15",
+ .id = PINID_GPMI_D02,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.17",
+ .id = PINID_GPMI_D01,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.19",
+ .id = PINID_GPMI_D00,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.16",
+ .id = PINID_LCD_WR,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.18",
+ .id = PINID_LCD_RS,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+ {
+ .name = "GPIO.20",
+ .id = PINID_LCD_CS,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ },
+#if defined(CONFIG_MMC_MXS_NODETECT)
+ {
+ .name = "LED1",
+ .id = PINID_SSP1_DETECT,
+ .fun = PIN_GPIO,
+ .strength = PAD_12MA,
+ .voltage = PAD_3_3V,
+ .drive = 1,
+ .output = 1,
+ .data = 1,
+ },
+#endif
+};
+
+#if defined(CONFIG_MMC_MXS) || defined(CONFIG_MMC_MXS_MODULE)
+static struct pin_desc imx233_olinuxino_mmc_pins[] = {
+ /* Configurations of SSP0 SD/MMC port pins */
+ {
+ .name = "SSP1_DATA0",
+ .id = PINID_SSP1_DATA0,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 1,
+ .drive = 1,
+ .pull = 1,
+ },
+ {
+ .name = "SSP1_DATA1",
+ .id = PINID_SSP1_DATA1,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 1,
+ .drive = 1,
+ .pull = 1,
+ },
+ {
+ .name = "SSP1_DATA2",
+ .id = PINID_SSP1_DATA2,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 1,
+ .drive = 1,
+ .pull = 1,
+ },
+ {
+ .name = "SSP1_DATA3",
+ .id = PINID_SSP1_DATA3,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 1,
+ .drive = 1,
+ .pull = 1,
+ },
+ {
+ .name = "SSP1_CMD",
+ .id = PINID_SSP1_CMD,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 1,
+ .drive = 1,
+ .pull = 1,
+ },
+ {
+ .name = "SSP1_SCK",
+ .id = PINID_SSP1_SCK,
+ .fun = PIN_FUN1,
+ .strength = PAD_8MA,
+ .voltage = PAD_3_3V,
+ .pullup = 0,
+ .drive = 1,
+ .pull = 0,
+ },
+};
+#endif
+
+static void mxs_request_pins(struct pin_desc *pins, int nr)
+{
+ int i;
+ struct pin_desc *pin;
+
+ /* configure the pins */
+ for (i = 0; i < nr; i++) {
+ pin = &pins[i];
+ if (pin->fun == PIN_GPIO)
+ {
+ gpio_request(MXS_PIN_TO_GPIO(pin->id), pin->name);
+ gpio_export(MXS_PIN_TO_GPIO(pin->id), true);
+ }
+ else
+ mxs_request_pin(pin->id, pin->fun, pin->name);
+ if (pin->drive) {
+ mxs_set_strength(pin->id, pin->strength, pin->name);
+ mxs_set_voltage(pin->id, pin->voltage, pin->name);
+ }
+ if (pin->pull)
+ mxs_set_pullup(pin->id, pin->pullup, pin->name);
+ if (pin->fun == PIN_GPIO) {
+ if (pin->output)
+ gpio_direction_output(MXS_PIN_TO_GPIO(pin->id),
+ pin->data);
+ else
+ gpio_direction_input(MXS_PIN_TO_GPIO(pin->id));
+ }
+ }
+}
+
+static void mxs_release_pins(struct pin_desc *pins, int nr)
+{
+ int i;
+ struct pin_desc *pin;
+
+ /* release the pins */
+ for (i = 0; i < nr; i++) {
+ pin = &pins[i];
+ if (pin->fun == PIN_GPIO)
+ gpio_free(MXS_PIN_TO_GPIO(pin->id));
+ else
+ mxs_release_pin(pin->id, pin->name);
+ }
+}
+
+#if defined(CONFIG_MMC_MXS) || defined(CONFIG_MMC_MXS_MODULE)
+int mxs_mmc_hw_init_mmc0(void)
+{
+ int ret = 0;
+
+ mxs_request_pins(imx233_olinuxino_mmc_pins, ARRAY_SIZE(imx233_olinuxino_mmc_pins));
+ mdelay(100);
+
+ return 0;
+}
+
+int mxs_mmc_get_wp_mmc0(void)
+{
+ return 0;
+}
+
+void mxs_mmc_hw_release_mmc0(void)
+{
+ mxs_release_pins(imx233_olinuxino_mmc_pins, ARRAY_SIZE(imx233_olinuxino_mmc_pins));
+}
+
+void mxs_mmc_cmd_pullup_mmc0(int enable)
+{
+ mxs_set_pullup(PINID_SSP1_CMD, enable, "mmc0_cmd");
+}
+#else
+int mxs_mmc_hw_init_mmc0(void)
+{
+ return 0;
+}
+
+int mxs_mmc_get_wp_mmc0(void)
+{
+}
+
+void mxs_mmc_hw_release_mmc0(void)
+{
+}
+
+void mxs_mmc_cmd_pullup_mmc0(int enable)
+{
+}
+#endif
+
+void __init imx233_olinuxino_pins_init(void)
+{
+ mxs_request_pins(imx233_olinuxino_fixed_pins, ARRAY_SIZE(imx233_olinuxino_fixed_pins));
+}
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index b969419..59367c2 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -2614,6 +2614,7 @@ qsd8x50a_st1_1 MACH_QSD8X50A_ST1_1 QSD8X50A_ST1_1 2626
qsd8x50a_st1_5 MACH_QSD8X50A_ST1_5 QSD8X50A_ST1_5 2627
bee MACH_BEE BEE 2628
mx23evk MACH_MX23EVK MX23EVK 2629
+imx233_olinuxino MACH_IMX233_OLINUXINO IMX233_OLINUXINO 4105
ap4evb MACH_AP4EVB AP4EVB 2630
stockholm MACH_STOCKHOLM STOCKHOLM 2631
lpc_h3131 MACH_LPC_H3131 LPC_H3131 2632
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 951f1fd..4d7846f 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -366,6 +366,14 @@ config MMC_MXS
If unsure, say N.
+config MMC_MXS_NODETECT
+ bool "Ignore card detection status on MXS MMC interface"
+ depends on MMC_MXS
+ help
+ This disables card presence detection in MXS MMC slot.
+ If only boot device is MMC card and/or you want to use
+ SSP_DETECT pin as GPIO, say Y here.
+
config MMC_S3C
tristate "Samsung S3C SD/MMC Card Interface support"
depends on ARCH_S3C2410
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index c8945ee..65e7fe0 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -160,8 +160,12 @@ static int mxs_mmc_get_ro(struct mmc_host *mmc)
/* Detect if card is plugged */
static inline int mxs_mmc_is_plugged(struct mxs_mmc_host *host)
{
+#if defined(CONFIG_MMC_MXS_NODETECT)
+ return 1;
+#else
u32 status = __raw_readl(host->ssp_base + HW_SSP_STATUS);
return !(status & BM_SSP_STATUS_CARD_DETECT);
+#endif
}
static void mxs_mmc_reset(struct mxs_mmc_host *host);
--
1.7.10.4

View file

@ -1,49 +0,0 @@
KERNEL_NAME=-olinuxino
KERNEL_VERSION=2.6.35-7-ARCH+
flush_kernel() {
echo "Do you want the new kernel flashed onto mmcblk0p1? [y|N] "
# something traps the last line of output, so users can't see the
# question ...
read -r shouldwe
if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then
echo ""
echo "Specify NTSC or PAL display output [N|P]: "
read -r disp
if [[ $disp =~ ^([nN][tT][sS][cC]|[nN])$ ]]; then
echo "Writing the NTSC kernel image on /dev/mmcblk0p1 ..."
dd if=/boot/oli-${KERNEL_VERSION}-ntsc.sb of=/dev/mmcblk0p1 ibs=512 seek=4 conv=sync,notrunc
fi
if [[ $disp =~ ^([pP][aA][lL]|[pP])$ ]]; then
echo "Writing the PAL kernel image on /dev/mmcblk0p1 ..."
dd if=/boot/oli-${KERNEL_VERSION}-pal.sb of=/dev/mmcblk0p1 ibs=512 seek=4 conv=sync,notrunc
fi
fi
}
## arg 1: the new package version
post_install() {
flush_kernel
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
}
## arg 1: the new package version
## arg 2: the old package version
post_upgrade() {
flush_kernel
if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then
if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then
echo "WARNING: /boot appears to be a seperate partition but is not mounted."
echo " You probably just broke your system. Congratulations."
fi
fi
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
}
# vim:set ts=2 sw=2 et:

View file

@ -1,79 +0,0 @@
From 7b781d1a67486a2ae50c174731ca1daebf381ab4 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Fri, 23 Mar 2012 13:13:49 -0300
Subject: [PATCH] ARM: mx28: Remove CPUFREQ support
When using CPUFREQ driver with the mainline U-boot, the kernel hangs.
Remove CPUFREQ support for now.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
arch/arm/configs/imx28evk_defconfig | 1 -
arch/arm/plat-mxs/Kconfig | 2 --
arch/arm/plat-mxs/clock.c | 10 ----------
3 files changed, 0 insertions(+), 13 deletions(-)
diff --git a/arch/arm/configs/imx28evk_defconfig b/arch/arm/configs/imx28evk_defconfig
index 08f6a18..0c8bc66 100644
--- a/arch/arm/configs/imx28evk_defconfig
+++ b/arch/arm/configs/imx28evk_defconfig
@@ -18,7 +18,6 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
diff --git a/arch/arm/plat-mxs/Kconfig b/arch/arm/plat-mxs/Kconfig
index 831a24b..63768f8 100644
--- a/arch/arm/plat-mxs/Kconfig
+++ b/arch/arm/plat-mxs/Kconfig
@@ -13,7 +13,6 @@ config ARCH_MX28
select MXS_ICOLL
select MXS_DMA_ENGINE
select MXS_AUART_DMA_SUPPORT
- select ARCH_HAS_CPUFREQ
---help---
Support Freescale MX28 chips
@@ -25,7 +24,6 @@ config ARCH_MX23
select MXS_ICOLL
select MXS_DMA_ENGINE
select MXS_AUART_DMA_SUPPORT
- select ARCH_HAS_CPUFREQ
---help---
Support Freescale MX23 chips
diff --git a/arch/arm/plat-mxs/clock.c b/arch/arm/plat-mxs/clock.c
index 1b98b1e..3ce7953 100644
--- a/arch/arm/plat-mxs/clock.c
+++ b/arch/arm/plat-mxs/clock.c
@@ -119,11 +119,6 @@ int clk_enable(struct clk *clk)
ret = __clk_enable(clk);
spin_unlock_irqrestore(&clockfw_lock, flags);
- if ((clk->flags & CPU_FREQ_TRIG_UPDATE)
- && (pre_usage == 0)) {
- cpufreq_trig_needed = 1;
- cpufreq_update_policy(0);
- }
return ret;
}
EXPORT_SYMBOL(clk_enable);
@@ -139,11 +134,6 @@ void clk_disable(struct clk *clk)
spin_lock_irqsave(&clockfw_lock, flags);
__clk_disable(clk);
spin_unlock_irqrestore(&clockfw_lock, flags);
- if ((clk->flags & CPU_FREQ_TRIG_UPDATE)
- && ((clk->ref & CLK_EN_MASK) == 0)) {
- cpufreq_trig_needed = 1;
- cpufreq_update_policy(0);
- }
}
EXPORT_SYMBOL(clk_disable);
--
1.7.1

View file

@ -1,42 +0,0 @@
From e0b2222000d04b43e7892148dc9892c9375de939 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Sat, 5 May 2012 15:04:24 -0300
Subject: [PATCH] mxs-duart: use ttyAMA for device name
This allow to easy configuration of u-boot avoiding divergences
between Freescale's and mainline kernels.
Upstream-Status: Inapropriate [configuration]
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
drivers/serial/mxs-duart.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/serial/mxs-duart.c b/drivers/serial/mxs-duart.c
index 64e5057..2ba0c33 100644
--- a/drivers/serial/mxs-duart.c
+++ b/drivers/serial/mxs-duart.c
@@ -665,7 +665,7 @@ static int __init duart_console_setup(struct console *co, char *options)
}
static struct console duart_console = {
- .name = "ttyAM",
+ .name = "ttyAMA",
.write = duart_console_write,
.device = uart_console_device,
.setup = duart_console_setup,
@@ -688,8 +688,8 @@ console_initcall(duart_console_init);
static struct uart_driver duart_drv = {
.owner = THIS_MODULE,
- .driver_name = "ttyAM",
- .dev_name = "ttyAM",
+ .driver_name = "ttyAMA",
+ .dev_name = "ttyAMA",
.major = SERIAL_DUART_MAJOR,
.minor = SERIAL_DUART_MINOR,
.nr = 1,
--
1.7.10