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