140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace serial_interface 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class SignalType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous Rs232, 13853c0dc5SEd Tanous Rs485, 14853c0dc5SEd Tanous }; 15853c0dc5SEd Tanous 16*d1a3caa4SChandramohan Harkude enum class BitRate{ 17*d1a3caa4SChandramohan Harkude Invalid, 18*d1a3caa4SChandramohan Harkude BitRate1200, 19*d1a3caa4SChandramohan Harkude BitRate2400, 20*d1a3caa4SChandramohan Harkude BitRate4800, 21*d1a3caa4SChandramohan Harkude BitRate9600, 22*d1a3caa4SChandramohan Harkude BitRate19200, 23*d1a3caa4SChandramohan Harkude BitRate38400, 24*d1a3caa4SChandramohan Harkude BitRate57600, 25*d1a3caa4SChandramohan Harkude BitRate115200, 26*d1a3caa4SChandramohan Harkude BitRate230400, 27*d1a3caa4SChandramohan Harkude }; 28*d1a3caa4SChandramohan Harkude 29853c0dc5SEd Tanous enum class Parity{ 30853c0dc5SEd Tanous Invalid, 31853c0dc5SEd Tanous None, 32853c0dc5SEd Tanous Even, 33853c0dc5SEd Tanous Odd, 34853c0dc5SEd Tanous Mark, 35853c0dc5SEd Tanous Space, 36853c0dc5SEd Tanous }; 37853c0dc5SEd Tanous 38*d1a3caa4SChandramohan Harkude enum class DataBits{ 39*d1a3caa4SChandramohan Harkude Invalid, 40*d1a3caa4SChandramohan Harkude DataBits5, 41*d1a3caa4SChandramohan Harkude DataBits6, 42*d1a3caa4SChandramohan Harkude DataBits7, 43*d1a3caa4SChandramohan Harkude DataBits8, 44*d1a3caa4SChandramohan Harkude }; 45*d1a3caa4SChandramohan Harkude 46*d1a3caa4SChandramohan Harkude enum class StopBits{ 47*d1a3caa4SChandramohan Harkude Invalid, 48*d1a3caa4SChandramohan Harkude StopBits1, 49*d1a3caa4SChandramohan Harkude StopBits2, 50*d1a3caa4SChandramohan Harkude }; 51*d1a3caa4SChandramohan Harkude 52853c0dc5SEd Tanous enum class FlowControl{ 53853c0dc5SEd Tanous Invalid, 54853c0dc5SEd Tanous None, 55853c0dc5SEd Tanous Software, 56853c0dc5SEd Tanous Hardware, 57853c0dc5SEd Tanous }; 58853c0dc5SEd Tanous 59853c0dc5SEd Tanous enum class PinOut{ 60853c0dc5SEd Tanous Invalid, 61853c0dc5SEd Tanous Cisco, 62853c0dc5SEd Tanous Cyclades, 63853c0dc5SEd Tanous Digi, 64853c0dc5SEd Tanous }; 65853c0dc5SEd Tanous 66*d1a3caa4SChandramohan Harkude enum class ConnectorType{ 67*d1a3caa4SChandramohan Harkude Invalid, 68*d1a3caa4SChandramohan Harkude RJ45, 69*d1a3caa4SChandramohan Harkude RJ11, 70*d1a3caa4SChandramohan Harkude DB9Female, 71*d1a3caa4SChandramohan Harkude DB9Male, 72*d1a3caa4SChandramohan Harkude DB25Female, 73*d1a3caa4SChandramohan Harkude DB25Male, 74*d1a3caa4SChandramohan Harkude USB, 75*d1a3caa4SChandramohan Harkude mUSB, 76*d1a3caa4SChandramohan Harkude uUSB, 77*d1a3caa4SChandramohan Harkude }; 78*d1a3caa4SChandramohan Harkude 79853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SignalType, { 80853c0dc5SEd Tanous {SignalType::Invalid, "Invalid"}, 81853c0dc5SEd Tanous {SignalType::Rs232, "Rs232"}, 82853c0dc5SEd Tanous {SignalType::Rs485, "Rs485"}, 83853c0dc5SEd Tanous }); 84853c0dc5SEd Tanous 85*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(BitRate, { 86*d1a3caa4SChandramohan Harkude {BitRate::Invalid, "Invalid"}, 87*d1a3caa4SChandramohan Harkude {BitRate::BitRate1200, "1200"}, 88*d1a3caa4SChandramohan Harkude {BitRate::BitRate2400, "2400"}, 89*d1a3caa4SChandramohan Harkude {BitRate::BitRate4800, "4800"}, 90*d1a3caa4SChandramohan Harkude {BitRate::BitRate9600, "9600"}, 91*d1a3caa4SChandramohan Harkude {BitRate::BitRate19200, "19200"}, 92*d1a3caa4SChandramohan Harkude {BitRate::BitRate38400, "38400"}, 93*d1a3caa4SChandramohan Harkude {BitRate::BitRate57600, "57600"}, 94*d1a3caa4SChandramohan Harkude {BitRate::BitRate115200, "115200"}, 95*d1a3caa4SChandramohan Harkude {BitRate::BitRate230400, "230400"}, 96*d1a3caa4SChandramohan Harkude }); 97*d1a3caa4SChandramohan Harkude 98853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Parity, { 99853c0dc5SEd Tanous {Parity::Invalid, "Invalid"}, 100853c0dc5SEd Tanous {Parity::None, "None"}, 101853c0dc5SEd Tanous {Parity::Even, "Even"}, 102853c0dc5SEd Tanous {Parity::Odd, "Odd"}, 103853c0dc5SEd Tanous {Parity::Mark, "Mark"}, 104853c0dc5SEd Tanous {Parity::Space, "Space"}, 105853c0dc5SEd Tanous }); 106853c0dc5SEd Tanous 107*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(DataBits, { 108*d1a3caa4SChandramohan Harkude {DataBits::Invalid, "Invalid"}, 109*d1a3caa4SChandramohan Harkude {DataBits::DataBits5, "5"}, 110*d1a3caa4SChandramohan Harkude {DataBits::DataBits6, "6"}, 111*d1a3caa4SChandramohan Harkude {DataBits::DataBits7, "7"}, 112*d1a3caa4SChandramohan Harkude {DataBits::DataBits8, "8"}, 113*d1a3caa4SChandramohan Harkude }); 114*d1a3caa4SChandramohan Harkude 115*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(StopBits, { 116*d1a3caa4SChandramohan Harkude {StopBits::Invalid, "Invalid"}, 117*d1a3caa4SChandramohan Harkude {StopBits::StopBits1, "1"}, 118*d1a3caa4SChandramohan Harkude {StopBits::StopBits2, "2"}, 119*d1a3caa4SChandramohan Harkude }); 120*d1a3caa4SChandramohan Harkude 121853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, { 122853c0dc5SEd Tanous {FlowControl::Invalid, "Invalid"}, 123853c0dc5SEd Tanous {FlowControl::None, "None"}, 124853c0dc5SEd Tanous {FlowControl::Software, "Software"}, 125853c0dc5SEd Tanous {FlowControl::Hardware, "Hardware"}, 126853c0dc5SEd Tanous }); 127853c0dc5SEd Tanous 128853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PinOut, { 129853c0dc5SEd Tanous {PinOut::Invalid, "Invalid"}, 130853c0dc5SEd Tanous {PinOut::Cisco, "Cisco"}, 131853c0dc5SEd Tanous {PinOut::Cyclades, "Cyclades"}, 132853c0dc5SEd Tanous {PinOut::Digi, "Digi"}, 133853c0dc5SEd Tanous }); 134853c0dc5SEd Tanous 135*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(ConnectorType, { 136*d1a3caa4SChandramohan Harkude {ConnectorType::Invalid, "Invalid"}, 137*d1a3caa4SChandramohan Harkude {ConnectorType::RJ45, "RJ45"}, 138*d1a3caa4SChandramohan Harkude {ConnectorType::RJ11, "RJ11"}, 139*d1a3caa4SChandramohan Harkude {ConnectorType::DB9Female, "DB9 Female"}, 140*d1a3caa4SChandramohan Harkude {ConnectorType::DB9Male, "DB9 Male"}, 141*d1a3caa4SChandramohan Harkude {ConnectorType::DB25Female, "DB25 Female"}, 142*d1a3caa4SChandramohan Harkude {ConnectorType::DB25Male, "DB25 Male"}, 143*d1a3caa4SChandramohan Harkude {ConnectorType::USB, "USB"}, 144*d1a3caa4SChandramohan Harkude {ConnectorType::mUSB, "mUSB"}, 145*d1a3caa4SChandramohan Harkude {ConnectorType::uUSB, "uUSB"}, 146*d1a3caa4SChandramohan Harkude }); 147*d1a3caa4SChandramohan Harkude 148853c0dc5SEd Tanous } 149853c0dc5SEd Tanous // clang-format on 150