1.1 --- a/pkg/landfall-examples/letux400_i2c/letux400_i2c.cc Wed Jan 06 00:46:11 2021 +0100
1.2 +++ b/pkg/landfall-examples/letux400_i2c/letux400_i2c.cc Wed Jan 06 23:54:31 2021 +0100
1.3 @@ -210,7 +210,7 @@
1.4
1.5 printf("Written: %d\n", nwritten);
1.6
1.7 - do
1.8 + for (int i = 0; i < 3; i++)
1.9 {
1.10 /* Issue selection of device register 0. */
1.11
1.12 @@ -232,6 +232,24 @@
1.13
1.14 rtc_datetime(buf);
1.15
1.16 + /* Read from the power controller at 0x28. */
1.17 +
1.18 + buf[0] = 0xdb;
1.19 + nwritten = jz4730_i2c_write(i2c0, 0x28, buf, 1);
1.20 + printf("Written: %d\n", nwritten);
1.21 + nread = jz4730_i2c_read(i2c0, 0x28, buf, 1);
1.22 + printf("Read: %d\n", nread);
1.23 +
1.24 + printf("Voltage level: %1.3f\n", buf[0] * 36235 / 1000000.0);
1.25 +
1.26 + buf[0] = 0xd9;
1.27 + nwritten = jz4730_i2c_write(i2c0, 0x28, buf, 1);
1.28 + printf("Written: %d\n", nwritten);
1.29 + nread = jz4730_i2c_read(i2c0, 0x28, buf, 1);
1.30 + printf("Read: %d\n", nread);
1.31 +
1.32 + printf("Charger connected: %s\n", buf[0] & 1 ? "yes" : "no");
1.33 +
1.34 /* Scan the bus. */
1.35
1.36 printf("Scan I2C0...\n");
1.37 @@ -239,7 +257,12 @@
1.38
1.39 sleep(5);
1.40 }
1.41 - while(1);
1.42 +
1.43 + /* Issue a shutdown request. */
1.44 +
1.45 + buf[0] = 0xd8; buf[1] = 1;
1.46 + nwritten = jz4730_i2c_write(i2c0, 0x28, buf, 2);
1.47 + printf("Written: %d\n", nwritten);
1.48
1.49 /* Detach from the interrupt. */
1.50