Commit 5b471dee99a9dab381110060054e6b52e87f210a
1 parent
c6150aaf2f
Exists in
v2017.01-smarct4x
and in
37 other branches
power_spi.c: Rewrite pmic_reg function
The pmic_spi_free function isn't ever used, and as the frameworks stand today, cannot be, so remove it. Integrate the probe function into pmic_reg as it's not really a "probe" today. Finally, add an err label for the common failure cases. Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Stefano Babic <sbabic@denx.de> Signed-off-by: Tom Rini <trini@ti.com> Acked-by: Stefano Babic <sbabic@denx.de>
Showing 1 changed file with 10 additions and 23 deletions Side-by-side Diff
drivers/power/power_spi.c
... | ... | @@ -17,27 +17,14 @@ |
17 | 17 | |
18 | 18 | static struct spi_slave *slave; |
19 | 19 | |
20 | -void pmic_spi_free(struct spi_slave *slave) | |
21 | -{ | |
22 | - if (slave) | |
23 | - spi_free_slave(slave); | |
24 | -} | |
25 | - | |
26 | -struct spi_slave *pmic_spi_probe(struct pmic *p) | |
27 | -{ | |
28 | - return spi_setup_slave(p->bus, | |
29 | - p->hw.spi.cs, | |
30 | - p->hw.spi.clk, | |
31 | - p->hw.spi.mode); | |
32 | -} | |
33 | - | |
34 | 20 | static u32 pmic_reg(struct pmic *p, u32 reg, u32 *val, u32 write) |
35 | 21 | { |
36 | 22 | u32 pmic_tx, pmic_rx; |
37 | 23 | u32 tmp; |
38 | 24 | |
39 | 25 | if (!slave) { |
40 | - slave = pmic_spi_probe(p); | |
26 | + slave = spi_setup_slave(p->bus, p->hw.spi.cs, p->hw.spi.clk, | |
27 | + p->hw.spi.mode); | |
41 | 28 | |
42 | 29 | if (!slave) |
43 | 30 | return -1; |
44 | 31 | |
45 | 32 | |
... | ... | @@ -54,25 +41,25 @@ |
54 | 41 | tmp = cpu_to_be32(pmic_tx); |
55 | 42 | |
56 | 43 | if (spi_xfer(slave, pmic_spi_bitlen, &tmp, &pmic_rx, |
57 | - pmic_spi_flags)) { | |
58 | - spi_release_bus(slave); | |
59 | - return -1; | |
60 | - } | |
44 | + pmic_spi_flags)) | |
45 | + goto err; | |
61 | 46 | |
62 | 47 | if (write) { |
63 | 48 | pmic_tx = p->hw.spi.prepare_tx(reg, val, 0); |
64 | 49 | tmp = cpu_to_be32(pmic_tx); |
65 | 50 | if (spi_xfer(slave, pmic_spi_bitlen, &tmp, &pmic_rx, |
66 | - pmic_spi_flags)) { | |
67 | - spi_release_bus(slave); | |
68 | - return -1; | |
69 | - } | |
51 | + pmic_spi_flags)) | |
52 | + goto err; | |
70 | 53 | } |
71 | 54 | |
72 | 55 | spi_release_bus(slave); |
73 | 56 | *val = cpu_to_be32(pmic_rx); |
74 | 57 | |
75 | 58 | return 0; |
59 | + | |
60 | +err: | |
61 | + spi_release_bus(slave); | |
62 | + return -1; | |
76 | 63 | } |
77 | 64 | |
78 | 65 | int pmic_reg_write(struct pmic *p, u32 reg, u32 val) |