Lines Matching refs:ps
78 static int pl022_is_supported(struct pl022_spi_slave *ps) in pl022_is_supported() argument
81 if ((readw(ps->base + SSP_PID0) == 0x22) && in pl022_is_supported()
82 (readw(ps->base + SSP_PID1) == 0x10) && in pl022_is_supported()
83 ((readw(ps->base + SSP_PID2) & 0xf) == 0x04) && in pl022_is_supported()
84 (readw(ps->base + SSP_PID3) == 0x00)) in pl022_is_supported()
93 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_probe() local
95 ps->base = ioremap(plat->addr, plat->size); in pl022_spi_probe()
96 ps->freq = plat->freq; in pl022_spi_probe()
99 if (!pl022_is_supported(ps)) in pl022_spi_probe()
103 writew(SSP_CR0_BIT_MODE(8), ps->base + SSP_CR0); in pl022_spi_probe()
104 writew(DFLT_PRESCALE, ps->base + SSP_CPSR); in pl022_spi_probe()
109 static void flush(struct pl022_spi_slave *ps) in flush() argument
112 while (readw(ps->base + SSP_SR) & SSP_SR_MASK_RNE) in flush()
113 readw(ps->base + SSP_DR); in flush()
114 } while (readw(ps->base + SSP_SR) & SSP_SR_MASK_BSY); in flush()
120 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_claim_bus() local
124 reg = readw(ps->base + SSP_CR1); in pl022_spi_claim_bus()
126 writew(reg, ps->base + SSP_CR1); in pl022_spi_claim_bus()
128 flush(ps); in pl022_spi_claim_bus()
136 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_release_bus() local
139 flush(ps); in pl022_spi_release_bus()
142 reg = readw(ps->base + SSP_CR1); in pl022_spi_release_bus()
144 writew(reg, ps->base + SSP_CR1); in pl022_spi_release_bus()
153 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_xfer() local
180 if (readw(ps->base + SSP_SR) & SSP_SR_MASK_TNF) { in pl022_spi_xfer()
182 writew(value, ps->base + SSP_DR); in pl022_spi_xfer()
186 if (readw(ps->base + SSP_SR) & SSP_SR_MASK_RNE) { in pl022_spi_xfer()
187 value = readw(ps->base + SSP_DR); in pl022_spi_xfer()
195 if (readw(ps->base + SSP_SR) & SSP_SR_MASK_RNE) { in pl022_spi_xfer()
196 value = readw(ps->base + SSP_DR); in pl022_spi_xfer()
213 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_set_speed() local
217 u32 rate = ps->freq; in pl022_spi_set_speed()
250 writew(best_cpsr, ps->base + SSP_CPSR); in pl022_spi_set_speed()
251 cr0 = readw(ps->base + SSP_CR0); in pl022_spi_set_speed()
252 writew(cr0 | (best_scr << SSP_SCR_SHFT), ps->base + SSP_CR0); in pl022_spi_set_speed()
259 struct pl022_spi_slave *ps = dev_get_priv(bus); in pl022_spi_set_mode() local
262 reg = readw(ps->base + SSP_CR0); in pl022_spi_set_mode()
268 writew(reg, ps->base + SSP_CR0); in pl022_spi_set_mode()