Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
9aae3412
Commit
9aae3412
authored
Sep 27, 2012
by
Benjamin Herrenschmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'agust/next' into next
mpc5xxx updates from Anatolij
parents
caa1d631
9d9fd887
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
483 additions
and
9 deletions
+483
-9
Documentation/devicetree/bindings/misc/ifm-csi.txt
Documentation/devicetree/bindings/misc/ifm-csi.txt
+41
-0
arch/powerpc/boot/dts/o2d.dts
arch/powerpc/boot/dts/o2d.dts
+47
-0
arch/powerpc/boot/dts/o2d.dtsi
arch/powerpc/boot/dts/o2d.dtsi
+139
-0
arch/powerpc/boot/dts/o2d300.dts
arch/powerpc/boot/dts/o2d300.dts
+52
-0
arch/powerpc/boot/dts/o2dnt2.dts
arch/powerpc/boot/dts/o2dnt2.dts
+48
-0
arch/powerpc/boot/dts/o2i.dts
arch/powerpc/boot/dts/o2i.dts
+33
-0
arch/powerpc/boot/dts/o2mnt.dts
arch/powerpc/boot/dts/o2mnt.dts
+33
-0
arch/powerpc/boot/dts/o3dnt.dts
arch/powerpc/boot/dts/o3dnt.dts
+48
-0
arch/powerpc/include/asm/mpc52xx.h
arch/powerpc/include/asm/mpc52xx.h
+2
-0
arch/powerpc/platforms/512x/Kconfig
arch/powerpc/platforms/512x/Kconfig
+1
-0
arch/powerpc/platforms/512x/clock.c
arch/powerpc/platforms/512x/clock.c
+4
-2
arch/powerpc/platforms/512x/mpc512x_shared.c
arch/powerpc/platforms/512x/mpc512x_shared.c
+0
-6
arch/powerpc/platforms/52xx/mpc5200_simple.c
arch/powerpc/platforms/52xx/mpc5200_simple.c
+1
-0
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
+34
-1
No files found.
Documentation/devicetree/bindings/misc/ifm-csi.txt
0 → 100644
View file @
9aae3412
IFM camera sensor interface on mpc5200 LocalPlus bus
Required properties:
- compatible: "ifm,o2d-csi"
- reg: specifies sensor chip select number and associated address range
- interrupts: external interrupt line number and interrupt sense mode
of the interrupt line signaling frame valid events
- gpios: three gpio-specifiers for "capture", "reset" and "master enable"
GPIOs (strictly in this order).
- ifm,csi-clk-handle: the phandle to a node in the DT describing the sensor
clock generator. This node is usually a general purpose timer controller.
- ifm,csi-addr-bus-width: address bus width (valid values are 16, 24, 25)
- ifm,csi-data-bus-width: data bus width (valid values are 8 and 16)
- ifm,csi-wait-cycles: sensor bus wait cycles
Optional properties:
- ifm,csi-byte-swap: if this property is present, the byte swapping on
the bus will be enabled.
Example:
csi@3,0 {
compatible = "ifm,o2d-csi";
reg = <3 0 0x00100000>; /* CS 3, 1 MiB range */
interrupts = <1 1 2>; /* IRQ1, edge falling */
ifm,csi-clk-handle = <&timer7>;
gpios = <&gpio_simple 23 0 /* image_capture */
&gpio_simple 26 0 /* image_reset */
&gpio_simple 29 0>; /* image_master_en */
ifm,csi-addr-bus-width = <24>;
ifm,csi-data-bus-width = <8>;
ifm,csi-wait-cycles = <0>;
};
The base address of the used chip select is specified in the
ranges property of the parent localbus node, for example:
ranges = <0 0 0xff000000 0x01000000
3 0 0xe3000000 0x00100000>;
arch/powerpc/boot/dts/o2d.dts
0 → 100644
View file @
9aae3412
/*
*
O2D
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o2d"
;
compatible
=
"ifm,o2d"
;
memory
{
reg
=
<
0x00000000
0x08000000
>;
//
128
MB
};
localbus
{
ranges
=
<
0
0
0xfc000000
0x02000000
3
0
0xe3000000
0x00100000
>;
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x02000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
size
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
partition
@
60000
{
label
=
"kernel"
;
reg
=
<
0x00060000
0x00260000
>;
read
-
only
;
};
/*
o2d
specific
partitions
*/
partition
@
2
c0000
{
label
=
"o2d user defined"
;
reg
=
<
0x002c0000
0x01d40000
>;
};
};
};
};
arch/powerpc/boot/dts/o2d.dtsi
0 → 100644
View file @
9aae3412
/*
*
O2D
base
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"mpc5200b.dtsi"
/
{
model
=
"ifm,o2d"
;
compatible
=
"ifm,o2d"
;
memory
{
reg
=
<
0x00000000
0x04000000
>;
//
64
MB
};
soc5200
@
f0000000
{
gpio_simple
:
gpio
@
b00
{
};
timer
@
600
{
//
General
Purpose
Timer
#
gpio
-
cells
=
<
2
>;
gpio
-
controller
;
fsl
,
has
-
wdt
;
fsl
,
wdt
-
on
-
boot
=
<
0
>;
};
timer
@
610
{
#
gpio
-
cells
=
<
2
>;
gpio
-
controller
;
};
timer7
:
timer
@
670
{
};
rtc
@
800
{
status
=
"disabled"
;
};
psc
@
2000
{
//
PSC1
compatible
=
"fsl,mpc5200b-psc-spi"
,
"fsl,mpc5200-psc-spi"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
cell
-
index
=
<
0
>;
spidev
@
0
{
compatible
=
"spidev"
;
spi
-
max
-
frequency
=
<
250000
>;
reg
=
<
0
>;
};
};
psc
@
2200
{
//
PSC2
status
=
"disabled"
;
};
psc
@
2400
{
//
PSC3
status
=
"disabled"
;
};
psc
@
2600
{
//
PSC4
compatible
=
"fsl,mpc5200b-psc-uart"
,
"fsl,mpc5200-psc-uart"
;
};
psc
@
2800
{
//
PSC5
compatible
=
"fsl,mpc5200b-psc-uart"
,
"fsl,mpc5200-psc-uart"
;
};
psc
@
2
c00
{
//
PSC6
status
=
"disabled"
;
};
ethernet
@
3000
{
phy
-
handle
=
<&
phy0
>;
};
mdio
@
3000
{
phy0
:
ethernet
-
phy
@
0
{
reg
=
<
0
>;
};
};
sclpc
@
3
c00
{
compatible
=
"fsl,mpc5200-lpbfifo"
;
reg
=
<
0x3c00
0x60
>;
interrupts
=
<
3
23
0
>;
};
};
localbus
{
ranges
=
<
0
0
0xff000000
0x01000000
3
0
0xe3000000
0x00100000
>;
//
flash
device
at
LocalPlus
Bus
CS0
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x01000000
>;
bank
-
width
=
<
1
>;
device
-
width
=
<
2
>;
#
size
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
no
-
unaligned
-
direct
-
access
;
/*
common
layout
for
all
machines
*/
partition
@
0
{
label
=
"u-boot"
;
reg
=
<
0x00000000
0x00040000
>;
read
-
only
;
};
partition
@
40000
{
label
=
"env"
;
reg
=
<
0x00040000
0x00020000
>;
read
-
only
;
};
};
csi
@
3
,
0
{
compatible
=
"ifm,o2d-csi"
;
reg
=
<
3
0
0x00100000
>;
ifm
,
csi
-
clk
-
handle
=
<&
timer7
>;
gpios
=
<&
gpio_simple
23
0
/*
imag_capture
*/
&
gpio_simple
26
0
/*
imag_reset
*/
&
gpio_simple
29
0
>;
/*
imag_master_en
*/
interrupts
=
<
1
1
2
>;
/*
IRQ1
,
edge
falling
*/
ifm
,
csi
-
addr
-
bus
-
width
=
<
24
>;
ifm
,
csi
-
data
-
bus
-
width
=
<
8
>;
ifm
,
csi
-
wait
-
cycles
=
<
0
>;
};
};
};
arch/powerpc/boot/dts/o2d300.dts
0 → 100644
View file @
9aae3412
/*
*
O2D300
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o2d300"
;
compatible
=
"ifm,o2d"
;
localbus
{
ranges
=
<
0
0
0xfc000000
0x02000000
3
0
0xe3000000
0x00100000
>;
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x02000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
size
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
partition
@
40000
{
label
=
"env_1"
;
reg
=
<
0x00040000
0x00020000
>;
read
-
only
;
};
partition
@
60000
{
label
=
"env_2"
;
reg
=
<
0x00060000
0x00020000
>;
read
-
only
;
};
partition
@
80000
{
label
=
"kernel"
;
reg
=
<
0x00080000
0x00260000
>;
read
-
only
;
};
/*
o2d300
specific
partitions
*/
partition
@
2e0000
{
label
=
"o2d300 user defined"
;
reg
=
<
0x002e0000
0x01d20000
>;
};
};
};
};
arch/powerpc/boot/dts/o2dnt2.dts
0 → 100644
View file @
9aae3412
/*
*
O2DNT2
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o2dnt2"
;
compatible
=
"ifm,o2d"
;
memory
{
reg
=
<
0x00000000
0x08000000
>;
//
128
MB
};
localbus
{
ranges
=
<
0
0
0xfc000000
0x02000000
3
0
0xe3000000
0x00100000
>;
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x02000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
size
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
partition
@
60000
{
label
=
"kernel"
;
reg
=
<
0x00060000
0x00260000
>;
read
-
only
;
};
/*
o2dnt2
specific
partitions
*/
partition
@
2
c0000
{
label
=
"o2dnt2 user defined"
;
reg
=
<
0x002c0000
0x01d40000
>;
};
};
};
};
arch/powerpc/boot/dts/o2i.dts
0 → 100644
View file @
9aae3412
/*
*
O2I
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o2i"
;
compatible
=
"ifm,o2d"
;
localbus
{
flash
@
0
,
0
{
partition
@
60000
{
label
=
"kernel"
;
reg
=
<
0x00060000
0x00260000
>;
read
-
only
;
};
/*
o2i
specific
partitions
*/
partition
@
2
c0000
{
label
=
"o2i user defined"
;
reg
=
<
0x002c0000
0x00d40000
>;
};
};
};
};
arch/powerpc/boot/dts/o2mnt.dts
0 → 100644
View file @
9aae3412
/*
*
O2MNT
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o2mnt"
;
compatible
=
"ifm,o2d"
;
localbus
{
flash
@
0
,
0
{
partition
@
60000
{
label
=
"kernel"
;
reg
=
<
0x00060000
0x00260000
>;
read
-
only
;
};
/*
add
o2mnt
specific
partitions
*/
partition
@
2
c0000
{
label
=
"o2mnt user defined"
;
reg
=
<
0x002c0000
0x00d40000
>;
};
};
};
};
arch/powerpc/boot/dts/o3dnt.dts
0 → 100644
View file @
9aae3412
/*
*
O3DNT
Device
Tree
Source
*
*
Copyright
(
C
)
2012
DENX
Software
Engineering
*
Anatolij
Gustschin
<
agust
@
denx
.
de
>
*
*
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
.
*/
/
include
/
"o2d.dtsi"
/
{
model
=
"ifm,o3dnt"
;
compatible
=
"ifm,o2d"
;
memory
{
reg
=
<
0x00000000
0x04000000
>;
//
64
MB
};
localbus
{
ranges
=
<
0
0
0xfc000000
0x01000000
3
0
0xe3000000
0x00100000
>;
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x01000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
size
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
partition
@
60000
{
label
=
"kernel"
;
reg
=
<
0x00060000
0x00260000
>;
read
-
only
;
};
/*
o3dnt
specific
partitions
*/
partition
@
2
c0000
{
label
=
"o3dnt user defined"
;
reg
=
<
0x002c0000
0x00d40000
>;
};
};
};
};
arch/powerpc/include/asm/mpc52xx.h
View file @
9aae3412
...
...
@@ -307,6 +307,7 @@ struct mpc52xx_lpbfifo_request {
size_t
size
;
size_t
pos
;
/* current position of transfer */
int
flags
;
int
defer_xfer_start
;
/* What to do when finished */
void
(
*
callback
)(
struct
mpc52xx_lpbfifo_request
*
);
...
...
@@ -323,6 +324,7 @@ struct mpc52xx_lpbfifo_request {
extern
int
mpc52xx_lpbfifo_submit
(
struct
mpc52xx_lpbfifo_request
*
req
);
extern
void
mpc52xx_lpbfifo_abort
(
struct
mpc52xx_lpbfifo_request
*
req
);
extern
void
mpc52xx_lpbfifo_poll
(
void
);
extern
int
mpc52xx_lpbfifo_start_xfer
(
struct
mpc52xx_lpbfifo_request
*
req
);
/* mpc52xx_pic.c */
extern
void
mpc52xx_init_irq
(
void
);
...
...
arch/powerpc/platforms/512x/Kconfig
View file @
9aae3412
...
...
@@ -2,6 +2,7 @@ config PPC_MPC512x
bool "512x-based boards"
depends on 6xx
select FSL_SOC
select FB_FSL_DIU
select IPIC
select PPC_CLOCK
select PPC_PCI_CHOICE
...
...
arch/powerpc/platforms/512x/clock.c
View file @
9aae3412
...
...
@@ -54,14 +54,16 @@ static DEFINE_MUTEX(clocks_mutex);
static
struct
clk
*
mpc5121_clk_get
(
struct
device
*
dev
,
const
char
*
id
)
{
struct
clk
*
p
,
*
clk
=
ERR_PTR
(
-
ENOENT
);
int
dev_match
=
0
;
int
id_match
=
0
;
int
dev_match
;
int
id_match
;
if
(
dev
==
NULL
||
id
==
NULL
)
return
clk
;
mutex_lock
(
&
clocks_mutex
);
list_for_each_entry
(
p
,
&
clocks
,
node
)
{
dev_match
=
id_match
=
0
;
if
(
dev
==
p
->
dev
)
dev_match
++
;
if
(
strcmp
(
id
,
p
->
name
)
==
0
)
...
...
arch/powerpc/platforms/512x/mpc512x_shared.c
View file @
9aae3412
...
...
@@ -191,8 +191,6 @@ mpc512x_valid_monitor_port(enum fsl_diu_monitor_port port)
static
struct
fsl_diu_shared_fb
__attribute__
((
__aligned__
(
8
)))
diu_shared_fb
;
#if defined(CONFIG_FB_FSL_DIU) || \
defined(CONFIG_FB_FSL_DIU_MODULE)
static
inline
void
mpc512x_free_bootmem
(
struct
page
*
page
)
{
__ClearPageReserved
(
page
);
...
...
@@ -220,7 +218,6 @@ void mpc512x_release_bootmem(void)
}
diu_ops
.
release_bootmem
=
NULL
;
}
#endif
/*
* Check if DIU was pre-initialized. If so, perform steps
...
...
@@ -323,15 +320,12 @@ void __init mpc512x_setup_diu(void)
}
}
#if defined(CONFIG_FB_FSL_DIU) || \
defined(CONFIG_FB_FSL_DIU_MODULE)
diu_ops
.
get_pixel_format
=
mpc512x_get_pixel_format
;
diu_ops
.
set_gamma_table
=
mpc512x_set_gamma_table
;
diu_ops
.
set_monitor_port
=
mpc512x_set_monitor_port
;
diu_ops
.
set_pixel_clock
=
mpc512x_set_pixel_clock
;
diu_ops
.
valid_monitor_port
=
mpc512x_valid_monitor_port
;
diu_ops
.
release_bootmem
=
mpc512x_release_bootmem
;
#endif
}
void
__init
mpc512x_init_IRQ
(
void
)
...
...
arch/powerpc/platforms/52xx/mpc5200_simple.c
View file @
9aae3412
...
...
@@ -52,6 +52,7 @@ static void __init mpc5200_simple_setup_arch(void)
static
const
char
*
board
[]
__initdata
=
{
"anonymous,a4m072"
,
"anon,charon"
,
"ifm,o2d"
,
"intercontrol,digsy-mtc"
,
"manroland,mucmc52"
,
"manroland,uc101"
,
...
...
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
View file @
9aae3412
...
...
@@ -170,7 +170,8 @@ static void mpc52xx_lpbfifo_kick(struct mpc52xx_lpbfifo_request *req)
out_be32
(
lpbfifo
.
regs
+
LPBFIFO_REG_CONTROL
,
bit_fields
);
/* Kick it off */
out_8
(
lpbfifo
.
regs
+
LPBFIFO_REG_PACKET_SIZE
,
0x01
);
if
(
!
lpbfifo
.
req
->
defer_xfer_start
)
out_8
(
lpbfifo
.
regs
+
LPBFIFO_REG_PACKET_SIZE
,
0x01
);
if
(
dma
)
bcom_enable
(
lpbfifo
.
bcom_cur_task
);
}
...
...
@@ -421,6 +422,38 @@ int mpc52xx_lpbfifo_submit(struct mpc52xx_lpbfifo_request *req)
}
EXPORT_SYMBOL
(
mpc52xx_lpbfifo_submit
);
int
mpc52xx_lpbfifo_start_xfer
(
struct
mpc52xx_lpbfifo_request
*
req
)
{
unsigned
long
flags
;
if
(
!
lpbfifo
.
regs
)
return
-
ENODEV
;
spin_lock_irqsave
(
&
lpbfifo
.
lock
,
flags
);
/*
* If the req pointer is already set and a transfer was
* started on submit, then this transfer is in progress
*/
if
(
lpbfifo
.
req
&&
!
lpbfifo
.
req
->
defer_xfer_start
)
{
spin_unlock_irqrestore
(
&
lpbfifo
.
lock
,
flags
);
return
-
EBUSY
;
}
/*
* If the req was previously submitted but not
* started, start it now
*/
if
(
lpbfifo
.
req
&&
lpbfifo
.
req
==
req
&&
lpbfifo
.
req
->
defer_xfer_start
)
{
out_8
(
lpbfifo
.
regs
+
LPBFIFO_REG_PACKET_SIZE
,
0x01
);
}
spin_unlock_irqrestore
(
&
lpbfifo
.
lock
,
flags
);
return
0
;
}
EXPORT_SYMBOL
(
mpc52xx_lpbfifo_start_xfer
);
void
mpc52xx_lpbfifo_abort
(
struct
mpc52xx_lpbfifo_request
*
req
)
{
unsigned
long
flags
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment