1 /** 2 * Copyright © 2020 IBM Corporation 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include "device.hpp" 18 19 #include "chassis.hpp" 20 #include "system.hpp" 21 22 namespace phosphor::power::regulators 23 { 24 25 void Device::addToIDMap(IDMap& idMap) 26 { 27 // Add this device to the map 28 idMap.addDevice(*this); 29 30 // Add rails to the map 31 for (std::unique_ptr<Rail>& rail : rails) 32 { 33 idMap.addRail(*rail); 34 } 35 } 36 37 void Device::configure(System& system, Chassis& chassis) 38 { 39 // If configuration changes are defined for this device, apply them 40 if (configuration) 41 { 42 configuration->execute(system, chassis, *this); 43 } 44 45 // Configure rails 46 for (std::unique_ptr<Rail>& rail : rails) 47 { 48 rail->configure(system, chassis, *this); 49 } 50 } 51 52 } // namespace phosphor::power::regulators 53