319-rockchip-rk3568-Fix-download-key-adc-channel.patch 721 B

123456789101112131415161718192021222324252627
  1. --- a/arch/arm/mach-rockchip/boot_mode.c
  2. +++ b/arch/arm/mach-rockchip/boot_mode.c
  3. @@ -43,6 +43,9 @@
  4. struct udevice *dev;
  5. struct uclass *uc;
  6. int ret;
  7. + const void *blob = gd->fdt_blob;
  8. + int node, channel = 1;
  9. + unsigned int chns[2];
  10. ret = uclass_get(UCLASS_ADC, &uc);
  11. if (ret)
  12. @@ -51,7 +54,13 @@
  13. ret = -ENODEV;
  14. uclass_foreach_dev(dev, uc) {
  15. if (!strncmp(dev->name, "saradc", 6)) {
  16. - ret = adc_channel_single_shot(dev->name, 1, &val);
  17. + node = fdt_node_offset_by_compatible(blob, 0, "adc-keys");
  18. + if (node >= 0) {
  19. + if (!fdtdec_get_int_array(blob, node, "io-channels", chns, 2))
  20. + channel = chns[1];
  21. + }
  22. +
  23. + ret = adc_channel_single_shot(dev->name, channel, &val);
  24. break;
  25. }
  26. }