adi,adg792a.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Bindings for Analog Devices ADG792A/G Triple 4:1 Multiplexers
  2. Required properties:
  3. - compatible : "adi,adg792a" or "adi,adg792g"
  4. - #mux-control-cells : <0> if parallel (the three muxes are bound together
  5. with a single mux controller controlling all three muxes), or <1> if
  6. not (one mux controller for each mux).
  7. * Standard mux-controller bindings as described in mux-controller.txt
  8. Optional properties for ADG792G:
  9. - gpio-controller : if present, #gpio-cells below is required.
  10. - #gpio-cells : should be <2>
  11. - First cell is the GPO line number, i.e. 0 or 1
  12. - Second cell is used to specify active high (0)
  13. or active low (1)
  14. Optional properties:
  15. - idle-state : if present, array of states that the mux controllers will have
  16. when idle. The special state MUX_IDLE_AS_IS is the default and
  17. MUX_IDLE_DISCONNECT is also supported.
  18. States 0 through 3 correspond to signals A through D in the datasheet.
  19. Example:
  20. /*
  21. * Three independent mux controllers (of which one is used).
  22. * Mux 0 is disconnected when idle, mux 1 idles in the previously
  23. * selected state and mux 2 idles with signal B.
  24. */
  25. &i2c0 {
  26. mux: mux-controller@50 {
  27. compatible = "adi,adg792a";
  28. reg = <0x50>;
  29. #mux-control-cells = <1>;
  30. idle-state = <MUX_IDLE_DISCONNECT MUX_IDLE_AS_IS 1>;
  31. };
  32. };
  33. adc-mux {
  34. compatible = "io-channel-mux";
  35. io-channels = <&adc 0>;
  36. io-channel-names = "parent";
  37. mux-controls = <&mux 2>;
  38. channels = "sync-1", "", "out";
  39. };
  40. /*
  41. * Three parallel muxes with one mux controller, useful e.g. if
  42. * the adc is differential, thus needing two signals to be muxed
  43. * simultaneously for correct operation.
  44. */
  45. &i2c0 {
  46. pmux: mux-controller@50 {
  47. compatible = "adi,adg792a";
  48. reg = <0x50>;
  49. #mux-control-cells = <0>;
  50. idle-state = <1>;
  51. };
  52. };
  53. diff-adc-mux {
  54. compatible = "io-channel-mux";
  55. io-channels = <&adc 0>;
  56. io-channel-names = "parent";
  57. mux-controls = <&pmux>;
  58. channels = "sync-1", "", "out";
  59. };