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
16c10b3b
Commit
16c10b3b
authored
Jun 04, 2018
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'spi-4.17' into spi-4.18 for the merge window
parents
29e795ca
0921e11e
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
12 deletions
+35
-12
drivers/spi/spi-bcm-qspi.c
drivers/spi/spi-bcm-qspi.c
+18
-10
drivers/spi/spi-bcm2835aux.c
drivers/spi/spi-bcm2835aux.c
+5
-0
drivers/spi/spi-cadence.c
drivers/spi/spi-cadence.c
+8
-0
drivers/spi/spi-sh-msiof.c
drivers/spi/spi-sh-msiof.c
+4
-2
No files found.
drivers/spi/spi-bcm-qspi.c
View file @
16c10b3b
...
@@ -488,7 +488,7 @@ static int bcm_qspi_bspi_set_mode(struct bcm_qspi *qspi,
...
@@ -488,7 +488,7 @@ static int bcm_qspi_bspi_set_mode(struct bcm_qspi *qspi,
static
void
bcm_qspi_enable_bspi
(
struct
bcm_qspi
*
qspi
)
static
void
bcm_qspi_enable_bspi
(
struct
bcm_qspi
*
qspi
)
{
{
if
(
!
has_bspi
(
qspi
)
||
(
qspi
->
bspi_enabled
)
)
if
(
!
has_bspi
(
qspi
))
return
;
return
;
qspi
->
bspi_enabled
=
1
;
qspi
->
bspi_enabled
=
1
;
...
@@ -503,7 +503,7 @@ static void bcm_qspi_enable_bspi(struct bcm_qspi *qspi)
...
@@ -503,7 +503,7 @@ static void bcm_qspi_enable_bspi(struct bcm_qspi *qspi)
static
void
bcm_qspi_disable_bspi
(
struct
bcm_qspi
*
qspi
)
static
void
bcm_qspi_disable_bspi
(
struct
bcm_qspi
*
qspi
)
{
{
if
(
!
has_bspi
(
qspi
)
||
(
!
qspi
->
bspi_enabled
)
)
if
(
!
has_bspi
(
qspi
))
return
;
return
;
qspi
->
bspi_enabled
=
0
;
qspi
->
bspi_enabled
=
0
;
...
@@ -517,16 +517,19 @@ static void bcm_qspi_disable_bspi(struct bcm_qspi *qspi)
...
@@ -517,16 +517,19 @@ static void bcm_qspi_disable_bspi(struct bcm_qspi *qspi)
static
void
bcm_qspi_chip_select
(
struct
bcm_qspi
*
qspi
,
int
cs
)
static
void
bcm_qspi_chip_select
(
struct
bcm_qspi
*
qspi
,
int
cs
)
{
{
u32
data
=
0
;
u32
rd
=
0
;
u32
wr
=
0
;
if
(
qspi
->
curr_cs
==
cs
)
return
;
if
(
qspi
->
base
[
CHIP_SELECT
])
{
if
(
qspi
->
base
[
CHIP_SELECT
])
{
data
=
bcm_qspi_read
(
qspi
,
CHIP_SELECT
,
0
);
rd
=
bcm_qspi_read
(
qspi
,
CHIP_SELECT
,
0
);
data
=
(
data
&
~
0xff
)
|
(
1
<<
cs
);
wr
=
(
rd
&
~
0xff
)
|
(
1
<<
cs
);
bcm_qspi_write
(
qspi
,
CHIP_SELECT
,
0
,
data
);
if
(
rd
==
wr
)
return
;
bcm_qspi_write
(
qspi
,
CHIP_SELECT
,
0
,
wr
);
usleep_range
(
10
,
20
);
usleep_range
(
10
,
20
);
}
}
dev_dbg
(
&
qspi
->
pdev
->
dev
,
"using cs:%d
\n
"
,
cs
);
qspi
->
curr_cs
=
cs
;
qspi
->
curr_cs
=
cs
;
}
}
...
@@ -753,8 +756,13 @@ static int write_to_hw(struct bcm_qspi *qspi, struct spi_device *spi)
...
@@ -753,8 +756,13 @@ static int write_to_hw(struct bcm_qspi *qspi, struct spi_device *spi)
dev_dbg
(
&
qspi
->
pdev
->
dev
,
"WR %04x
\n
"
,
val
);
dev_dbg
(
&
qspi
->
pdev
->
dev
,
"WR %04x
\n
"
,
val
);
}
}
mspi_cdram
=
MSPI_CDRAM_CONT_BIT
;
mspi_cdram
=
MSPI_CDRAM_CONT_BIT
;
if
(
has_bspi
(
qspi
))
mspi_cdram
&=
~
1
;
else
mspi_cdram
|=
(
~
(
1
<<
spi
->
chip_select
)
&
mspi_cdram
|=
(
~
(
1
<<
spi
->
chip_select
)
&
MSPI_CDRAM_PCS
);
MSPI_CDRAM_PCS
);
mspi_cdram
|=
((
tp
.
trans
->
bits_per_word
<=
8
)
?
0
:
mspi_cdram
|=
((
tp
.
trans
->
bits_per_word
<=
8
)
?
0
:
MSPI_CDRAM_BITSE_BIT
);
MSPI_CDRAM_BITSE_BIT
);
...
...
drivers/spi/spi-bcm2835aux.c
View file @
16c10b3b
...
@@ -184,6 +184,11 @@ static irqreturn_t bcm2835aux_spi_interrupt(int irq, void *dev_id)
...
@@ -184,6 +184,11 @@ static irqreturn_t bcm2835aux_spi_interrupt(int irq, void *dev_id)
struct
bcm2835aux_spi
*
bs
=
spi_master_get_devdata
(
master
);
struct
bcm2835aux_spi
*
bs
=
spi_master_get_devdata
(
master
);
irqreturn_t
ret
=
IRQ_NONE
;
irqreturn_t
ret
=
IRQ_NONE
;
/* IRQ may be shared, so return if our interrupts are disabled */
if
(
!
(
bcm2835aux_rd
(
bs
,
BCM2835_AUX_SPI_CNTL1
)
&
(
BCM2835_AUX_SPI_CNTL1_TXEMPTY
|
BCM2835_AUX_SPI_CNTL1_IDLE
)))
return
ret
;
/* check if we have data to read */
/* check if we have data to read */
while
(
bs
->
rx_len
&&
while
(
bs
->
rx_len
&&
(
!
(
bcm2835aux_rd
(
bs
,
BCM2835_AUX_SPI_STAT
)
&
(
!
(
bcm2835aux_rd
(
bs
,
BCM2835_AUX_SPI_STAT
)
&
...
...
drivers/spi/spi-cadence.c
View file @
16c10b3b
...
@@ -313,6 +313,14 @@ static void cdns_spi_fill_tx_fifo(struct cdns_spi *xspi)
...
@@ -313,6 +313,14 @@ static void cdns_spi_fill_tx_fifo(struct cdns_spi *xspi)
while
((
trans_cnt
<
CDNS_SPI_FIFO_DEPTH
)
&&
while
((
trans_cnt
<
CDNS_SPI_FIFO_DEPTH
)
&&
(
xspi
->
tx_bytes
>
0
))
{
(
xspi
->
tx_bytes
>
0
))
{
/* When xspi in busy condition, bytes may send failed,
* then spi control did't work thoroughly, add one byte delay
*/
if
(
cdns_spi_read
(
xspi
,
CDNS_SPI_ISR
)
&
CDNS_SPI_IXR_TXFULL
)
usleep_range
(
10
,
20
);
if
(
xspi
->
txbuf
)
if
(
xspi
->
txbuf
)
cdns_spi_write
(
xspi
,
CDNS_SPI_TXD
,
*
xspi
->
txbuf
++
);
cdns_spi_write
(
xspi
,
CDNS_SPI_TXD
,
*
xspi
->
txbuf
++
);
else
else
...
...
drivers/spi/spi-sh-msiof.c
View file @
16c10b3b
...
@@ -567,14 +567,16 @@ static int sh_msiof_spi_setup(struct spi_device *spi)
...
@@ -567,14 +567,16 @@ static int sh_msiof_spi_setup(struct spi_device *spi)
/* Configure native chip select mode/polarity early */
/* Configure native chip select mode/polarity early */
clr
=
MDR1_SYNCMD_MASK
;
clr
=
MDR1_SYNCMD_MASK
;
set
=
MDR1_
TRMD
|
TMDR1_PCON
|
MDR1_
SYNCMD_SPI
;
set
=
MDR1_SYNCMD_SPI
;
if
(
spi
->
mode
&
SPI_CS_HIGH
)
if
(
spi
->
mode
&
SPI_CS_HIGH
)
clr
|=
BIT
(
MDR1_SYNCAC_SHIFT
);
clr
|=
BIT
(
MDR1_SYNCAC_SHIFT
);
else
else
set
|=
BIT
(
MDR1_SYNCAC_SHIFT
);
set
|=
BIT
(
MDR1_SYNCAC_SHIFT
);
pm_runtime_get_sync
(
&
p
->
pdev
->
dev
);
pm_runtime_get_sync
(
&
p
->
pdev
->
dev
);
tmp
=
sh_msiof_read
(
p
,
TMDR1
)
&
~
clr
;
tmp
=
sh_msiof_read
(
p
,
TMDR1
)
&
~
clr
;
sh_msiof_write
(
p
,
TMDR1
,
tmp
|
set
);
sh_msiof_write
(
p
,
TMDR1
,
tmp
|
set
|
MDR1_TRMD
|
TMDR1_PCON
);
tmp
=
sh_msiof_read
(
p
,
RMDR1
)
&
~
clr
;
sh_msiof_write
(
p
,
RMDR1
,
tmp
|
set
);
pm_runtime_put
(
&
p
->
pdev
->
dev
);
pm_runtime_put
(
&
p
->
pdev
->
dev
);
p
->
native_cs_high
=
spi
->
mode
&
SPI_CS_HIGH
;
p
->
native_cs_high
=
spi
->
mode
&
SPI_CS_HIGH
;
p
->
native_cs_inited
=
true
;
p
->
native_cs_inited
=
true
;
...
...
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