-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi Simon,
On 15.12.2015 19:58, Simon Glass wrote: > Hi Matheusz, > > On 10 December 2015 at 14:41, Mateusz Kulikowski > <mateusz.kulikow...@gmail.com> wrote: [...] >> + >> +/** >> + * struct dm_spmi_ops - SPMI device I/O interface >> + * >> + * Should be implemented by UCLASS_SPMI device drivers. The standard >> + * device operations provides the I/O interface for it's childs. >> + * >> + * @read: read register >> + * @write: write register > > You should describe the args also. OK > > What is different between this and I2C? Could you use that uclass? It > seems to have an additional address value (pid)- is that right? That's a difficult question, as my knowledge about this bus is based only on drivers/SoC documentation/speculation (bus spec is not public :() At wiring level it looks exactly like multi-master I2C On logical level: - - Each bus can have several slaves (up to 16). - - Each slave can have several peripherals (up to 256), - - Each peripheral can have up to 256 registers (I think each is 8-bit wide). - - Each peripheral have 2 ID registers (type/subtype) that can be used for probing PM8916 implements two slaves (but for some reason in Linux they are presented as 2 sibling nodes on SPMI bus). But this is device perspective. On SoC side, implementation is different and I fully don't understand all rationale behind it. SoC has some kind of arbiter with 127 channels (2x - separate for reads called "observers" and separate for writers). Each peripheral (not slave) has assigned single channel that I have to map in probe(). This means that (as far as I understand) there can be no more than 127 peripherals on single bus. Weird think is that while doing reads/writes I have to use not only channel #, but also full slave/peripheral/register address. Perhaps my driver oversimplified SPMI, or maybe SPMI is just I2C, using some simple protocol to charge royalty fees ;) > > If you do end up with a new uclass, please add a sandbox driver for it > and a test. OK Thanks, Mateusz -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJWce82AAoJELvtohmVtQzBLUIH/1NX6eAd+eh+HTTdntsni109 yQKMJVPEE17znTtcYgW2hpgWLqUa9aZ6n97hWMiWF7N+3879kWJYLTgj2uFBiVgl nXS8DFdfE7BQlzwVrGLIoaIXC7Jx7w3O/+9k7XsTaU2QcX7E+rWjyj/Y88Uq8oen M/MdtU2eYY/SggdMd99dEn305LrhRpXhDx0qgPTwGGb7BPwB2Vfrvm7mUrXMGTTY GMbiKsNuiYzNdXGz65gmZ6fHHQM6Gmm5Lh5GYftMnn0qQA6D8PcDm8h+it1eqoW3 t1VpCmCp7k6eGzM6m+scwFHu0mCeGeYhYD+vRZIbxX0lu5UWIUuakVdjpJmn9Ig= =iZjm -----END PGP SIGNATURE----- _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot