[Armadeus-commitlog] armadeus/u-boot branch, opos6ul-2018.05, updated. 1c14d7f084088e86d5cc274bd7d
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2021-11-15 14:55:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus/u-boot".
The branch, opos6ul-2018.05 has been updated
via 1c14d7f084088e86d5cc274bd7daed1c859c2f2c (commit)
via 344581ed1838a750c78f04cb1e4853ba98b7c4e4 (commit)
via 9d3e79255eb2ed618aa42e1f92fd333ae4480a31 (commit)
via e5b4eb3b940d884397d49880f8c3eb410ac8bc33 (commit)
via c9e619725734835c0dcc9d880fa004b82075743e (commit)
from 9fee3d277442ab9ad9ed83c59c96aca01e1d3b30 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1c14d7f084088e86d5cc274bd7daed1c859c2f2c
Author: Marek Vasut <ma...@de...>
Date: Wed Feb 3 17:53:57 2021 +0100
spi: imx: Implement set_speed
The set_speed() callback should configure the bus speed, make it so.
Signed-off-by: Marek Vasut <ma...@de...>
Cc: Stefano Babic <sb...@de...>
Reviewed-by: Jagan Teki <ja...@am...>
Reviewed-by: Bin Meng <bme...@gm...>
(cherry picked from commit c1d264e84e92a637b73a0db7be7e973fee816ccd)
Sébastien Szymanski: dev_get_plat -> dev_get_platdata
commit 344581ed1838a750c78f04cb1e4853ba98b7c4e4
Author: Heiko Schocher <hs...@de...>
Date: Sun May 26 12:15:47 2019 +0200
spi: imx: work with cs greater 0
currently spi mxc driver can only handle cs 0.
Allow it to handle also cs > 0.
Signed-off-by: Heiko Schocher <hs...@de...>
(cherry picked from commit 7a3faf31a7c2db55494b6af782b7a6cc7e7e8fe2)
commit 9d3e79255eb2ed618aa42e1f92fd333ae4480a31
Author: Heiko Schocher <hs...@de...>
Date: Sun May 26 12:15:46 2019 +0200
spi: imx: remove doubled pointer from mxc_spi_probe
in mxc_spi_probe() plat and mxcs pointer are created:
struct mxc_spi_slave *plat = bus->platdata;
struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
which have the same value. Remove plat pointer.
Signed-off-by: Heiko Schocher <hs...@de...>
(cherry picked from commit 2b849e1f742c645518be81841cf9c325c839ccc3)
commit e5b4eb3b940d884397d49880f8c3eb410ac8bc33
Author: Michael Trimarchi <mi...@am...>
Date: Wed Jun 20 22:51:18 2018 +0200
spi: mxc_spi: Fix chipselect on DM_SPI driver uclass
CS GPIO activation low/high is determinated by the device tree
so we don't need to take in accoung in cs_activate and cs_deactivate
Signed-off-by: Michael Trimarchi <mi...@am...>
Reviewed-by: Peng Fan <pen...@nx...>
Reviewed-by: Jagan Teki <ja...@op...>
(cherry picked from commit 34ad74914140dc6060b56a27641c686e86d7a9a4)
commit c9e619725734835c0dcc9d880fa004b82075743e
Author: Michael Trimarchi <mi...@am...>
Date: Wed Jun 20 22:51:17 2018 +0200
spi: mxc: Fix compilation problem of DM_SPI class driver
drivers/spi/mxc_spi.c:507: undefined reference to `dev_get_addr'
linux-ld.bfd: BFD (GNU Binutils) 2.29.1 assertion fail elf32-arm.c:9509
Signed-off-by: Michael Trimarchi <mi...@am...>
Reviewed-by: Fabio Estevam <fab...@nx...>
Reviewed-by: Peng Fan <pen...@nx...>
Reviewed-by: Jagan Teki <ja...@op...>
(cherry picked from commit 618e8e20c23a367bea3484b68694374bc86cdb03)
-----------------------------------------------------------------------
Summary of changes:
drivers/spi/mxc_spi.c | 82 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 57 insertions(+), 25 deletions(-)
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index b77129cc31..2dece24148 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -38,6 +38,8 @@ __weak int board_spi_cs_gpio(unsigned bus, unsigned cs)
#define CONFIG_SYS_SPI_MXC_WAIT (CONFIG_SYS_HZ/100) /* 10 ms */
#endif
+#define MAX_CS_COUNT 4
+
struct mxc_spi_slave {
struct spi_slave slave;
unsigned long base;
@@ -50,6 +52,8 @@ struct mxc_spi_slave {
unsigned int max_hz;
unsigned int mode;
struct gpio_desc ss;
+ struct gpio_desc cs_gpios[MAX_CS_COUNT];
+ struct udevice *dev;
};
static inline struct mxc_spi_slave *to_mxc_spi_slave(struct spi_slave *slave)
@@ -59,22 +63,38 @@ static inline struct mxc_spi_slave *to_mxc_spi_slave(struct spi_slave *slave)
static void mxc_spi_cs_activate(struct mxc_spi_slave *mxcs)
{
- if (CONFIG_IS_ENABLED(DM_SPI)) {
- dm_gpio_set_value(&mxcs->ss, mxcs->ss_pol);
- } else {
- if (mxcs->gpio > 0)
- gpio_set_value(mxcs->gpio, mxcs->ss_pol);
- }
+#if defined(CONFIG_DM_SPI)
+ struct udevice *dev = mxcs->dev;
+ struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
+
+ u32 cs = slave_plat->cs;
+
+ if (!dm_gpio_is_valid(&mxcs->cs_gpios[cs]))
+ return;
+
+ dm_gpio_set_value(&mxcs->cs_gpios[cs], 1);
+#else
+ if (mxcs->gpio > 0)
+ gpio_set_value(mxcs->gpio, mxcs->ss_pol);
+#endif
}
static void mxc_spi_cs_deactivate(struct mxc_spi_slave *mxcs)
{
- if (CONFIG_IS_ENABLED(DM_SPI)) {
- dm_gpio_set_value(&mxcs->ss, !(mxcs->ss_pol));
- } else {
- if (mxcs->gpio > 0)
- gpio_set_value(mxcs->gpio, !(mxcs->ss_pol));
- }
+#if defined(CONFIG_DM_SPI)
+ struct udevice *dev = mxcs->dev;
+ struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
+
+ u32 cs = slave_plat->cs;
+
+ if (!dm_gpio_is_valid(&mxcs->cs_gpios[cs]))
+ return;
+
+ dm_gpio_set_value(&mxcs->cs_gpios[cs], 0);
+#else
+ if (mxcs->gpio > 0)
+ gpio_set_value(mxcs->gpio, !(mxcs->ss_pol));
+#endif
}
u32 get_cspi_div(u32 div)
@@ -492,28 +512,35 @@ void spi_release_bus(struct spi_slave *slave)
static int mxc_spi_probe(struct udevice *bus)
{
- struct mxc_spi_slave *plat = bus->platdata;
struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
int node = dev_of_offset(bus);
const void *blob = gd->fdt_blob;
int ret;
+ int i;
- if (gpio_request_by_name(bus, "cs-gpios", 0, &plat->ss,
- GPIOD_IS_OUT)) {
- dev_err(bus, "No cs-gpios property\n");
- return -EINVAL;
+ ret = gpio_request_list_by_name(bus, "cs-gpios", mxcs->cs_gpios,
+ ARRAY_SIZE(mxcs->cs_gpios), 0);
+ if (ret < 0) {
+ pr_err("Can't get %s gpios! Error: %d", bus->name, ret);
+ return ret;
}
- plat->base = dev_get_addr(bus);
- if (plat->base == FDT_ADDR_T_NONE)
- return -ENODEV;
+ for (i = 0; i < ARRAY_SIZE(mxcs->cs_gpios); i++) {
+ if (!dm_gpio_is_valid(&mxcs->cs_gpios[i]))
+ continue;
- ret = dm_gpio_set_value(&plat->ss, !(mxcs->ss_pol));
- if (ret) {
- dev_err(bus, "Setting cs error\n");
- return ret;
+ ret = dm_gpio_set_dir_flags(&mxcs->cs_gpios[i],
+ GPIOD_IS_OUT | GPIOD_ACTIVE_LOW);
+ if (ret) {
+ dev_err(bus, "Setting cs %d error\n", i);
+ return ret;
+ }
}
+ mxcs->base = devfdt_get_addr(bus);
+ if (mxcs->base == FDT_ADDR_T_NONE)
+ return -ENODEV;
+
mxcs->max_hz = fdtdec_get_int(blob, node, "spi-max-frequency",
20000000);
@@ -534,6 +561,8 @@ static int mxc_spi_claim_bus(struct udevice *dev)
struct mxc_spi_slave *mxcs = dev_get_platdata(dev->parent);
struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
+ mxcs->dev = dev;
+
return mxc_spi_claim_bus_internal(mxcs, slave_plat->cs);
}
@@ -544,7 +573,10 @@ static int mxc_spi_release_bus(struct udevice *dev)
static int mxc_spi_set_speed(struct udevice *bus, uint speed)
{
- /* Nothing to do */
+ struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
+
+ mxcs->max_hz = speed;
+
return 0;
}
hooks/post-receive
--
armadeus/u-boot
|