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
Kirill Smelkov
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