hdat: Add Venice hub ID to HDAT conversion

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
i2c: Bug fixes, clean up of the code

Fixed few bugs and clean up a lot. Renamed the state machine variables
to make more sense. A new helper 'p8_i2c_check_work' to avoid hitting
deep call stack after request complete.

Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
list: Add list_add_before

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
timer: Add scheduled timer facility

For now running off the event pollers, that will improve once we get
delayed interrupts from the SLW

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
fsp/ti: Make sure the TI area is initialized before use

Otherwise we whack things at 0 which isn't great...

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
i2c: Rework P8 i2c driver

This updates the i2c driver significantly, using a simpler state machine,
using the new timer for timeouts, and fixing a number of issues. I also
changed the Linux interface so I've changed the token number since some
builds have been done with the old code already.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
PLAT: Add i2c busses on palmetto/habanero

We add engine 1 only for now. Eventually, HostBoot will provide
the device nodes and we'll filter what Linux can access.

We expose the VPD eeprom so that the Linux AT24 driver can pick it up

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Merge branch 'i2c'
i2c: Improve operations without interrupts

We use a timer for running the state machine without interrupts. When
we get proper timers using the SLW engine, we'll be able to also reduce
the timeouts but for now, use a large (4s) per-char timeout for polled
mode as it depends on the opal poll frequency which can be very slow.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>